====== Combiner une piste audio et une piste vidéo ======
===== Cas d'utilisation =====
Je dispose d'une video sous forme de deux fichiers : l'un pour la piste audio, l'autre pour la piste vidéo.
Je souhaite les fusionner dans un seul fichier vidéo en limitant les ré-encodages.
==== Sous-cas ====
Je souhaitais télécharger une vidéo sur Youtube. Malheureusement, elle n'était pas proposée sous un format audio-vidéo qui me convenait. En revanche, elle était proposée sous forme de téléchargement séparés, avec le format que je voulais. J'ai donc effectué les 2 téléchargements qui m'ont donné deux fichiers.
===== Solution =====
sources :
* [[https://superuser.com/questions/277642/how-to-merge-audio-and-video-file-in-ffmpeg|How to merge audio and video file in ffmpeg]]
* [[https://stackoverflow.com/questions/36449885/write-seekable-aac-audio-stream-into-mp4-file-with-ffmpeg|Write seekable AAC audio stream into MP4 file with FFMPEG]]
==== Sans réencodage audio ====
Pour que ce soit possible il faut les formats audio et vidéo soient compatibles avec le type de fichier qu'on veut produire. La commande //ffprobe// est une alliée sûre pour savoir ce que votre fichier a dans le ventre…
ffprobe mon-fichier.ext
L'assemblage se fait avec //ffmpeg// :
ffmpeg -i video.mp4 -i audio.m4a -c:v copy -c:a copy output.mp4
"-c:v" et "-c:a" permettent de définir le codec utilisé pour le réencodage. "copy" indique un codec fictif qui signifie qu'on ne transcode pas.
==== Avec ré-encodage ====
ffmpeg -i video.mp4 -i audio.wav -c:v copy -c:a aac output.mp4
Dans ce cas, on ré-encode (avec pertes) le fichier d'entrée du format //wav/pcm// au format //aac// pour s'assurer que le flux audio du fichier de sortie //mp4// est compatible avec le conteneur mp4.