168 votes

ffmpeg - remplacer l'audio dans la vidéo

Comment remplacer l'audio d'un fichier vidéo par un fichier audio en utilisant ffmpeg ?

J'imagine que la commande ressemble à :

ffmpeg -i v.mp4 -i a.wav -MAGIC video-new.mp4

C'est très similaire à Comment remplacer un flux audio dans un fichier vidéo par plusieurs flux audio ? mais cette question traite de plusieurs pistes audio, ce qui la complique beaucoup, et ne permet pas de savoir quelle partie de la solution est suffisante pour un simple échange d'audio.

251voto

qubodup Points 6806

Vous voudrez copier le flux vidéo sans le ré-encoder pour gagner beaucoup de temps, mais ré-encoder l'audio pourrait aider à éviter les incompatibilités :

ffmpeg -i v.mp4 -i a.wav -c:v copy -map 0:v:0 -map 1:a:0 new.mp4

-map 0:v:0 fait correspondre le premier (indice 0 ) du flux vidéo de l'entrée au premier (indice 0 ) dans la sortie.

-map 1:a:0 fait correspondre le second (indice 1 ) du flux audio de l'entrée au premier (indice 0 ) dans la sortie.

Si l'audio est plus long que la vidéo, vous devrez ajouter -shortest avant le nom du fichier de sortie.

Si vous ne spécifiez pas de codec audio, un codec fonctionnel sera automatiquement sélectionné. Vous pouvez en spécifier un en ajoutant par exemple -c:a libvorbis après -c:v copy . Vous pouvez également utiliser -c copy pour éviter de ré-encoder l'audio, mais cela a conduit à des problèmes de compatibilité et de synchronisation dans mon passé.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X