Ich habe ein Projekt, das das Zusammenführen einer Videodatei mit einer anderen Audiodatei erfordert. Die erwartete Ausgabe ist eine Videodatei, die sowohl das Audio vom tatsächlichen Video als auch die zusammengeführte Audiodatei enthält. Die Länge der ausgegebenen Videodatei entspricht der Größe der tatsächlichen Videodatei.
Gibt es einen einzigen FFMPEG-Befehl, um dies mit den Parametern copy und -map zu erreichen?
Das Videoformat, das ich verwenden werde, ist entweder flv oder mp4 Und das Audiodateiformat wird mp3
seinEs kann auch ohne Map erreicht werden.
ffmpeg -i video.mp4 -i audio.mp3 output.mp4
Wenn Sie möchten, dass die Ausgabe.mp4 stoppt, sobald eine der Eingaben stoppt (Audio / Video) dann benutze
-shortest
Zum Beispiel: ffmpeg -i video.mp4 -i audio.mp3 -shortest output.mp4
Dadurch wird sichergestellt, dass der Ausgang stoppt, sobald einer der Eingänge abgeschlossen ist.
Da Sie gefragt haben, dass Sie es mit Karte machen wollen. so machen Sie es:
ffmpeg -i video.mp4 -i audio.mp3 -map 0:0 -map 1:0 -shortest output.mp4
Da Sie nun das Audio der Videodatei beibehalten möchten, sollten Sie in Betracht ziehen, audio.mp3
und video.mp4
zusammenzuführen. Dies sind die Schritte:
ffmpeg -i video.mp4 1.mp3
ffmpeg -i audio.mp3 -i 1.mp3 -filter_complex amerge -c:a libmp3lame -q:a 4 audiofinal.mp3
ffmpeg -i video.mp4 -an videofinal.mp4
ffmpeg -i videofinal.mp4 -i audiofinal.mp3 -shortest final.mp4
Hinweis: In der neuesten Version von ffmpeg werden Sie nur dazu aufgefordert, '-strict-2' zu verwenden, für den Fall, dass dies dann verwendet wird:
ffmpeg -i videofinal.mp4 -i audiofinal.mp3 -shortest -strict -2 final.mp4
hoffe das hilft.
**
**
Anwendungsfall:
Angenommen,
Schritte:
1) Audio aus dem Video extrahieren
%Vor%test.mp4 - Ihre Datei
2) Verbinden Sie audio.mp3 und 1.mp3
%Vor%audiofinal.mp3 - Audio mit Musik
3) Audio vom Original löschen
%Vor%example-nosound.mkv - Ihr Video ohne Audio
4) Mit dem richtigen Audio zusammenführen
%Vor%final.wmv - dein perfektes Video.