Je souhaite fusionner un fichier audio (format .wav ou .au) avec un fichier vidéo (format .mp4).
S'il vous plaît, suggérez-moi comment y parvenir. Je souhaite fusionner ces fichiers dans un nouveau fichier vidéo .mp4. Une commande ffmpeg serait la bienvenue.
Voir cet exemple, tiré de cette entrée de blog mais mis à jour pour une syntaxe plus récente. Ce devrait être quelque chose à l'effet de:
ffmpeg -i video.mp4 -i audio.wav \
-c:v copy -c:a aac -strict experimental output.mp4
Ici, nous supposons que le fichier vidéo ne contient pas encore de flux audio et que vous souhaitez avoir le même format de sortie (ici, MP4) en tant que format d'entrée.
La commande ci-dessus convertit l'audio, car les MP4 ne peuvent pas transporter de flux audio PCM. Vous pouvez utiliser tout autre codec audio souhaité si vous le souhaitez. Voir le Guide d'encodage AAC pour plus d'informations.
Si votre flux audio ou vidéo est plus long, vous pouvez ajouter l'option -shortest
pour que ffmpeg arrête l'encodage une fois qu'un fichier se termine.
Si votre conteneur de sortie peut gérer (presque) n'importe quel codec - comme MKV -, vous pouvez simplement copier les flux audio et vidéo:
ffmpeg -i video.mp4 -i audio.wav -c copy output.mkv
Si votre vidéo d'entrée contient déjà de l'audio et que vous souhaitez la remplacer, vous devez indiquer à ffmpeg le flux audio à utiliser:
ffmpeg -i video.mp4 -i audio.wav \
-c:v copy -c:a aac -strict experimental \
-map 0:v:0 -map 1:a:0 output.mp4
L'option map
fait que ffmpeg utilise uniquement le premier flux vidéo de la première entrée et le premier flux audio de la deuxième entrée du fichier de sortie.
Depuis que je ne suis pas autorisé à écrire des commentaires à la première réponse avec ma réputation, un addenda ici, car j'ai eu ce problème lors de l'encodage de webms.
Si votre flux audio est par exemple plus long que le flux vidéo , vous devez le couper ou sinon vous aurez la dernière image vidéo en tant qu'image fixe et audio en cours d'exécution.
Pour couper un flux, vous pouvez utiliser -ss [hh: mm: ss] -t [ss] avant chacun des -i "fichier.ext".
- ss [...] définira le point de départ pour couper
- t [...] définira la longueur du segment en secondes
Exemple:
ffmpeg.exe -ss 00:00:10 -t 5 -i "video.mp4" -ss 0:00:01 -t 5 -i "music.m4a" -map 0:v:0 -map 1:a:0 -y out.mp4
-ouverture de la commande promt (windows + r -> cmd-> enter)
-Alors allez dans le dossier où vous avez un fichier audio et vidéo
appliquer cette cmd
ffmpeg -i "videoFile.mp4" -i "audioFile.mp3" -shortest outPutFile.mp4
Entrez .... vous obtiendrez un nouveau fichier nommé outPutFime.mp4 (un fichier fusionné audio et vidéo)
Cela a fonctionné pour moi:
ffmpeg.exe -i AudioT.m4a -i VideoT.mp4 -acodec copy -vcodec copy muxed.mp4
Essayez d’utiliser mencoder (oui, c’est basé sur ffmpeg, mais on ne sait jamais). J'utilise l'argument -audiofile
. J'utilise généralement ffmpeg, cependant, alors prenez ce conseil avec une pincée de sel.
Et, si vous utilisez Windows, Mediacoder (qui n’est plus du tout open source) fonctionne ... c’est une interface pour beaucoup d’encodeurs GNU et quelques non-libres.