web-dev-qa-db-fra.com

Comment ajouter un fichier audio (aac ou mp3) à un fichier vidéo MP4?

J'ai un fichier vidéo mp4 créé à partir d'images et je voudrais y ajouter du son mp3. Je ne suis pas du tout familier avec le montage vidéo, mais lisez quelque part où le son aac est préféré, alors j'ai le son sous forme d'aac également.

La forme préférée du résultat est également mp4 ou flv. Mon système d'exploitation est Ubuntu (Saucy Salamander).

J'ai beaucoup cherché sur Google pour avconv et mencoder en essayant de transformer les exemples trouvés en mon cas sans aucun succès.

Serez-vous assez gentil avec l'un de vous, experts, pour me laisser un exemple en ligne de commande, comment puis-je le faire?

7
user2469202

Cela dépend un peu de la façon dont vos flux sont mappés dans le fichier mp4. Quelque chose comme ça devrait marcher:

ffmpeg -i video.mp4 -i audio.aac -map 0:0 -map 1:0 -vcodec copy -acodec copy newvideo.mp4

Habituellement, le flux de vidéos est mappé en tant que premier flux dans le conteneur.
S'il n'est pas mappé en tant que premier flux, modifiez le mappage:

ffmpeg -i video.mp4 -i audio.aac -map 0:1 -map 1:0 -vcodec copy -acodec copy newvideo.mp4

Pour savoir comment les flux de votre fichier vidéo ont été mappés, vous pouvez utiliser mediainfoname__, qui se trouve dans les référentiels Ubuntu standard de nos jours.

Si nous décomposons la ligne de commande ici, cela fonctionne comme ceci:

-i video.mp4  -> first media file
-i audio.aac  -> second media file
-map 0:1      -> use the second stream from the first mediafile
-map 1:0      -> use the first stream from the second mediafile
-vcodec copy  -> leave the video as is
-acodec copy  -> leave the audio as is
newvideo      -> resulting videofile

Assurez-vous que les fichiers audio et vidéo ont la même durée. Tous les joueurs n'acceptent pas les pistes avec des différences de durée énormes.

Sachez que avconvet ffmpegsont presque identiques. En fait, cette commande utilisant avconv fonctionne également comme la même commande utilisant ffmpeg:

avconv -i video.mp4 -i audio.aac -map 0:0 -map 1:0 -vcodec copy -acodec copy newvideo.mp4  

le programme avconv appartient au projet Libav, une branche du projet FFmpeg. Vous pouvez également ignorer en toute sécurité le message d'erreur suivant:

*** THIS PROGRAM IS DEPRECATED ***
This program is only provided for compatibility and will be removed in a future release. Please use avconv instead.

Une alternative pour le multiplexage de fichiers au format MP4 est MP4Box dans le package gpacname__.

14
thom