Muxen von Audio über Video mit Ffmpeg

Muxen von Audio über Video mit Ffmpeg

Ich habe also jede Menge Tests durchgeführt, schaffe es aber immer noch nicht, mit ffmpeg Audio über Video zu multiplexen und kann nicht herausfinden, wo mein Fehler liegt. Ich wäre also für Hilfe sehr dankbar.

Ich habe dieses Video. Video herunterladen

Und wenn ich ffmpeg -i ausführe, erhalte ich Folgendes.

 Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, smpte170m/smpte170m/bt709), 366x662 [SAR 1:1 DAR 183:331], 755 kb/s, 24 fps, 24 tbr, 90k tbn, 180k tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 105 kb/s (default)

Also streamen 0:0

Und ich habe dieses Audiostück. Audio-Download

und wenn ich ffmpeg ausführe, bekomme ich Folgendes.

Stream #0:0: Audio: mp3, 44100 Hz, stereo, s16p, 277 kb/s
Stream #0:1: Video: png, rgb24, 400x400, 90k tbr, 90k tbn, 90k tbc

Ich möchte also mein Audio 0:0 kopieren, um das Video-Audio 0:1 zu ersetzen, ohne die gesamte Datei neu zu kodieren.

ffmpeg -i testing.mp4 -i rkelly.mp3 -c copy -map 0:1 -map 0:0 -shortest out3.mp4 

Antwort1

Die erste Zahl in der -mapOption ist der Index der Eingabedatei. Wenn Sie also 0zweimal verwenden, verwenden Sie nur testing.mp4.

Versuchen Sie stattdessen Folgendes:

ffmpeg -i testing.mp4 -i rkelly.mp3 -c copy -map 0:v:0 -map 1:a:0 -shortest out3.mp4 

Hier 0:v:0wird der erste Videostream der ersten Eingabedatei und 1:a:0der erste Audiostream der zweiten Eingabedatei ausgewählt. Im Prinzip :0ist dies für Ihre Dateien nicht erforderlich, aber es schadet nicht, es dort zu haben, wenn mehrere Video-/Audiospuren vorhanden sind.

Sehen Sie sich dieFFmpeg-Wiki-Eintrag zur -mapOptionfür mehr.

verwandte Informationen