Ich habe einen Befehl verwendet wie:
ffmpeg -i video.avi -i audio.mp3 -vcodec codec -acodec codec output_video.avi -newaudio
in der neuesten Version zum Hinzufügen neuer Audiospur zu Video (nicht zum Mischen).
Aber ich habe das ffmpeg auf die neueste Version aktualisiert ( ffmpeg Version git-2012-06-16-809d71d ) und jetzt funktioniert der Parameter -newaudio
nicht.
Sagen Sie mir bitte, wie ich meinem Video mit ffmpeg
neues Audio hinzufügen kann (nicht mischen).
ffmpeg -i video.avi -i audio.mp3 -codec copy -shortest output.avi
-map
-Option nicht angeben, wird die standardmäßige stream selection verwendet. Dies funktioniert, wenn Ihr Videoeingang kein Audio hat.-codec copy
für stream copy verwendet (keine Neucodierung; Qualität bleibt erhalten und ist schnell).-shortest
-Option macht output.avi
genauso lang wie die kürzeste Eingabe.Wenn Ihre Ausgabe den Originalformaten nicht gefällt oder Sie das Format ändern möchten, können Sie die Encoder angeben:
ffmpeg -i video.avi -i audio.mp3 -c:v libx264 -c:a libvorbis -shortest output.mkv
Manchmal liefert die Standard-Stream-Auswahl nicht das gewünschte Ergebnis. In diesem Beispiel hat video.mp4
Video und audio und audio.m4a
nur Audio. Verwenden Sie -map
, um Video aus video.mp4
und Audio aus audio.m4a
auszuwählen:
ffmpeg -i video.mp4 -i audio.m4a -map 0:v -map 1:a -c copy -shortest output.mp4
-map 0:v
- Wählen Sie aus der Eingabe 0
(die erste Eingabe, die video.mp4
ist) den v
ideo-Stream (s) aus.-map 1:a
- Wählen Sie aus der Eingabe 1
(die zweite Eingabe, die audio.m4a
ist) den a
udio-Stream (s) aus.Nehmen Sie das Video von video.webm
und verwenden Sie den amerge-Filter , um das Audio von video.webm
und audio.oga
zu kombinieren:
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
Sie können den Filter anullsrc verwenden, um einen stillen Audiostream zu erstellen. Mit dem Filter können Sie das gewünschte Kanallayout (Mono, Stereo, 5.1 usw.) und die Samplerate auswählen.
ffmpeg -i video.mp4 -f lavfi -i anullsrc=channel_layout=stereo:sample_rate=44100 \
-c:v copy -shortest output.mp4
mp3 musik in wav
ffmpeg -i music.mp3 music.wav
wird auf Video gekürzt
ffmpeg -i music.wav -ss 0 -t 37 musicshort.wav
mischen Sie Musik und Video
ffmpeg -i musicshort.wav -i movie.avi final_video.avi
Wenn das Eingangsvideo mehrere Audiospuren enthält und Sie eine weitere hinzufügen müssen, verwenden Sie den folgenden Befehl:
ffmpeg -i input_video_with_audio.avi -i new_audio.ac3 -map 0 -map 1 -codec copy output_video.avi
-map 0
bedeutet das Kopieren (Include) aller Streams aus der ersten Eingabedatei (input_video_with_audio.avi
) und -map 1
bedeutet, dass alle Streams (in diesem Fall einer) aus der zweiten Eingabedatei (new_audio.ac3
) eingeschlossen werden.
Keine dieser Lösungen funktionierte für mich. Mein ursprüngliches Audio wurde überschrieben oder es wurde ein Fehler wie "Speicherzuordnung fehlgeschlagen" mit dem komplexeren "amerge" -Beispiel angezeigt. Es scheint, ich brauchte -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
Für mich hat nichts ganz funktioniert (ich glaube, das lag daran, dass mein .mp4-Video-Eingang kein Audio hatte), also fand ich, dass dies für mich funktioniert hat:
ffmpeg -i input_video.mp4 -i balipraiavid.wav -map 0:v:0 -map 1:a:0 output.mp4
Wenn Sie eine alte Version von FFMPEG verwenden und das Upgrade nicht möglich ist, können Sie Folgendes tun:
ffmpeg -i PATH/VIDEO_FILE_NAME.mp4 -i PATH/AUDIO_FILE_NAME.mp3 -vcodec copy -shortest DESTINATION_PATH/NEW_VIDEO_FILE_NAME.mp4
Beachten Sie, dass ich -vcodec verwendet habe.