J'ai utilisé une commande comme:
ffmpeg -i video.avi -i audio.mp3 -vcodec codec -acodec codec output_video.avi -newaudio
dans la dernière version pour ajouter une nouvelle piste audio à la vidéo (pas mélanger).
Mais j'ai mis à jour le ffmpeg à la dernière version ( ffmpeg version git-2012-06-16-809d71d ) et maintenant dans cette version le paramètre -newaudio
ne fonctionne pas.
Dites-moi s'il vous plaît comment je peux ajouter un nouveau son à ma vidéo (pas mélanger) en utilisant ffmpeg
.
ffmpeg -i video.avi -i audio.mp3 -codec copy -shortest output.avi
-map
utilisera la sélection par défaut stream . Cela fonctionnera si votre entrée vidéo n’a pas d’audio.-codec copy
to stream copy (pas de réencodage; la qualité est préservée et elle est rapide).-shortest
donnera à output.avi
la même durée que l'entrée la plus courte.Si votre sortie n'apprécie pas les formats d'origine ou si vous souhaitez modifier les formats, vous pouvez spécifier les encodeurs:
ffmpeg -i video.avi -i audio.mp3 -c:v libx264 -c:a libvorbis -shortest output.mkv
Parfois, la sélection de flux par défaut ne vous donnera pas le résultat souhaité. Dans cet exemple, video.mp4
possède une vidéo et audio et audio.m4a
n’a que de l’audio. Utilisez -map
pour choisir la vidéo à partir de video.mp4
et l'audio à partir de audio.m4a
:
ffmpeg -i video.mp4 -i audio.m4a -map 0:v -map 1:a -c copy -shortest output.mp4
-map 0:v
- À partir de l'entrée 0
(la première entrée, qui est video.mp4
), choisissez le ou les flux v
ideo.-map 1:a
- Dans l'entrée 1
(la deuxième entrée, qui est audio.m4a
), choisissez le ou les flux a
udio.Prenez une vidéo à partir de video.webm
et utilisez le filtre amerge pour combiner l’audio à partir de video.webm
et audio.oga
:
ffmpeg -i video.webm -i audio.oga -filter_complex \
"[0:a][1:a]amerge=inputs=2[a]" \
-map 0:v -map "[a]" -c:v copy -c:a libvorbis -ac 2 -shortest out.webm
Vous pouvez utiliser le filtre anullsrc pour créer un flux audio silencieux. Le filtre vous permet de choisir la disposition des canaux souhaitée (mono, stéréo, 5.1, etc.) et la fréquence d'échantillonnage.
ffmpeg -i video.mp4 -f lavfi -i anullsrc=channel_layout=stereo:sample_rate=44100 \
-c:v copy -shortest output.mp4
musique mp3 au wav
ffmpeg -i music.mp3 music.wav
tronquer pour s'adapter à la vidéo
ffmpeg -i music.wav -ss 0 -t 37 musicshort.wav
mélanger musique et vidéo
ffmpeg -i musicshort.wav -i movie.avi final_video.avi
Si la vidéo d'entrée comporte plusieurs pistes audio et que vous devez en ajouter une, utilisez la commande suivante:
ffmpeg -i input_video_with_audio.avi -i new_audio.ac3 -map 0 -map 1 -codec copy output_video.avi
-map 0
signifie copier (inclure) tous les flux du premier fichier d'entrée (input_video_with_audio.avi
) et -map 1
signifie d'inclure tous les flux (ici un) du deuxième fichier d'entrée (new_audio.ac3
).
Aucune de ces solutions n'a vraiment fonctionné pour moi. Mon audio d'origine était écrasé ou une erreur du type "échec de mappage de la mémoire" avec l'exemple plus complexe 'amerge' était en cours. Il semble que j'avais besoin de -filter_complex amix.
ffmpeg -i videowithaudioyouwanttokeep.mp4 -i audiotooverlay.mp3 -vcodec copy -filter_complex amix -map 0:v -map 0:a -map 1:a -shortest -b:a 144k out.mkv
Rien n’a vraiment fonctionné pour moi (je pense que c’est parce que mon fichier vidéo au format .mp4 n’avait aucun son) alors j’ai trouvé que cela fonctionnait pour moi:
ffmpeg -i input_video.mp4 -i balipraiavid.wav -map 0:v:0 -map 1:a:0 output.mp4
Si vous utilisez une ancienne version de FFMPEG et que vous ne pouvez pas effectuer de mise à niveau, vous pouvez procéder comme suit:
ffmpeg -i PATH/VIDEO_FILE_NAME.mp4 -i PATH/AUDIO_FILE_NAME.mp3 -vcodec copy -shortest DESTINATION_PATH/NEW_VIDEO_FILE_NAME.mp4
Notez que j'ai utilisé -vcodec