it-swarm.com.de

Wie füge ich mit ffmpeg ein neues Audio hinzu (mischt es nicht)?

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

108
Vetalll

Audio zu Video hinzufügen: Stream-Kopie

ffmpeg -i video.avi -i audio.mp3 -codec copy -shortest output.avi
  • Wenn Sie die -map-Option nicht angeben, wird die standardmäßige stream selection verwendet. Dies funktioniert, wenn Ihr Videoeingang kein Audio hat.
  • In diesem Beispiel wird -codec copy für stream copy verwendet (keine Neucodierung; Qualität bleibt erhalten und ist schnell).
  • Die -shortest-Option macht output.avi genauso lang wie die kürzeste Eingabe.

Audio zu Video hinzufügen: neu codieren

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

So wählen Sie manuell bestimmte Streams aus

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 video-Stream (s) aus.
  • -map 1:a - Wählen Sie aus der Eingabe 1 (die zweite Eingabe, die audio.m4a ist) den audio-Stream (s) aus.

Mischen/Kombinieren von zwei Audioeingängen zu einem

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

Stille Audio erzeugen

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

Siehe auch

230
llogan

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
19
jwilson

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.

12
user2513149

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
2
Tod

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

0
Alexandre Doré

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.

0
Waqleh