GNU/Linux >> Tutoriels Linux >  >> Linux

FFmpeg ne copie pas tous les flux audio

FFmpeg a l'option de mapper tous les flux à la sortie, vous devez utiliser l'option -map 0 pour mapper tous les flux de l'entrée à la sortie.

En ligne complète, cela pourrait ressembler à :

ffmpeg -i in.mp4 -c copy -map 0 out.mp4

Pour plus d'informations, consultez la documentation sur la sélection de flux et le -map option.


Apparemment, c'est une question populaire, donc je poste ma solution en tant que réponse (était auparavant une réponse de commentaire) afin que les autres puissent la voir.

J'ai réussi à trouver la syntaxe correcte à partir de ce ticket. La syntaxe correcte est :

ffmpeg -i in.mp4 -vcodec copy -c:a copy -map 0:0 -map 0:1 -map 0:2 out.mp4

Cela copiera les 3 flux.


OK, j'ai lu assez profondément dans le ffmpeg page de manuel et j'ai trouvé ceci qui devrait être utile :

Notez qu'actuellement, chaque flux de sortie ne peut contenir que des canaux d'un seul flux d'entrée ; vous ne pouvez pas par exemple utiliser "-map_channel" topick plusieurs canaux audio d'entrée contenus dans différents flux (du même fichier ou de fichiers différents) et les fusionner en un seul flux de sortie. Il n'est donc pas possible actuellement, par exemple, de transformer deux flux mono distincts en un seul flux stéréo. Cependant, il est possible de diviser un flux stéréo en deux flux mono à un seul canal.

Si vous avez besoin de cette fonctionnalité, une solution de contournement possible consiste à utiliser le amergefilter. Par exemple, si vous avez besoin de fusionner un média (ici input.mkv) avec 2 flux audio mono en un seul flux audio stéréo (et conserver le flux vidéo), vous pouvez utiliser la commande suivante :

ffmpeg -i input.mkv -filter_complex "[0:1] [0:2] amerge" -c:a pcm_s16le -c:v copy output.mkv

Vous voudrez peut-être lire et expérimenter les instructions de la page de manuel sur man ffmpeg-filters pour comprendre à quel niveau de complexité vous vous embarquez pour nommer les canaux et le résultat attendu.

[Edit:Comme Mulvya l'a noté, cela répond à une question, mais ce n'était pas tout à fait la question de l'affiche originale.]


Linux
  1. Trouver tout [nom de fichier].mp4 et renommer [nom de fichier].audio ?

  2. Comment trouver tous les fichiers qui ne contiennent pas de chaîne de texte ?

  3. Linux - Comment diffuser une vidéo locale sur une webcam à l'aide de Ffmpeg ?

  4. Linux - Pourquoi Rsync sur Linux ne conserve pas tous les horodatages (heure de création) ?

  5. Le moteur audio Qt n'est pas dans le Sdk Ubuntu ?

Comment utiliser FFMpeg pour effectuer une conversion audio simple

Audio Linux - seuls les haut-parleurs ou le microphone sont disponibles, pas les deux

Les commandes FFmpeg les plus utiles pour la conversion audio et vidéo

sox :commande introuvable

Pourquoi Bash est-il partout (dans la plupart sinon toutes les distributions Linux) ?

Comment échanger les premier et deuxième flux audio dans un MKV dans un système basé sur Linux ?