web-dev-qa-db-fra.com

Comment mixer et lire plusieurs pistes audio à partir d'un fichier vidéo?

J'ai un fichier vidéo (dans un conteneur mkv) avec plusieurs pistes audio (aid=1,2,...). En utilisant mplayer ou mpv, comment puis-je lire deux pistes audio simultanément (idéalement, pouvoir régler le volume de chaque piste séparément)?

J'ai découvert le pont de filtre audio --af=lavfi vers libavfilter et le filtre amix, mais je ne parviens pas à rassembler correctement la syntaxe. Par exemple, quand j'essaie

 mpv --af=lavfi='[amix=inputs=2]'

Je reçois un message d'erreur indiquant qu'il n'y a pas assez d'entrées pour amix.

1
Kerrek SB

Pour plusieurs entrées ou sorties, utilisez --lavfi-complex. Cet exemple provient de man mpv:

mpv --lavfi-complex='[aid1][aid2]amix[ao]' input.mkv
  • Une étiquette de la forme aidN sélectionne la piste audio N comme entrée (par exemple, aid1).
  • Une étiquette nommée ao sera connectée à la sortie audio.

Exemple avec filtre de volume :

mpv --lavfi-complex='[aid1]volume=0.5[vol1];[aid2]volume=3dB[vol2];[vol1][vol2]amix[ao]' input.mkv
2
llogan