FFmpeg-Amerge-Filter - Weiter mit dem längsten Audiostream

FFmpeg-Amerge-Filter - Weiter mit dem längsten Audiostream

Ich habe ein Video, das bereits über einen Audiostream verfügt. Ich habe eine weitere m4aDatei, die ich mit dem bereits vorhandenen Audiostream im Video zusammenführen möchte.

Die m4aDatei ist etwa 10 Sekunden kürzer als der andere Audiostream und lautFFmpegDokumente:

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

verwandte Informationen