====== 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.