Ich habe ein Video, das bereits über einen Audiostream verfügt. Ich habe eine weitere m4a
Datei, die ich mit dem bereits vorhandenen Audiostream im Video zusammenführen möchte.
Die m4a
Datei ist etwa 10 Sekunden kürzer als der andere Audiostream und lautFFmpeg
Dokumente:
Wenn die Eingaben nicht die gleiche Dauer haben, wird die Ausgabe mit der kürzesten beendet.
Ich möchte aber, dass der längere Audiostream fortgesetzt wird (die beiden Streams aber trotzdem zu einem zusammengeführt werden).
Hier ist der Befehl, den ich derzeit verwende und der die Audiowiedergabe einfach stoppt, sobald der kürzeste Audiostream zu Ende ist:
ffmpeg -i input.mp4 -i shorteraudio.m4a -filter_complex "[0:v]scale=-2:720,format=yuv420p[v];[0:a]amerge=inputs=2[a]" -map [v] -map [a] output.mp4
Ist es möglich, das, was ich möchte, mit nur einem FFmpeg-Befehl zu tun?
Antwort1
Wenn bekannt ist, dass der zweite Eingang einen kürzeren Audiostream hat, können Sie seine Länge auffüllen, sodass der erste kürzer wird.
ffmpeg -i input.mp4 -i shorteraudio.m4a -filter_complex "[0:v]scale=-2:720,format=yuv420p[v];[1:a]apad[a1];[0:a][a1]amerge=inputs=2[a]" -map [v] -map [a] output.mp4