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 -map
Option ist der Index der Eingabedatei. Wenn Sie also 0
zweimal 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:0
wird der erste Videostream der ersten Eingabedatei und 1:a:0
der erste Audiostream der zweiten Eingabedatei ausgewählt. Im Prinzip :0
ist 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 -map
Optionfür mehr.