FFmpeg amerge 濾鏡 - 繼續最長的音訊串流

FFmpeg amerge 濾鏡 - 繼續最長的音訊串流

我的影片已有 1 個音訊串流。我有另一個m4a檔案想要與視訊中已有的音訊串流合併。

m4a檔案比其他音訊串流短約 10 秒,並且根據FFmpeg文件:

如果輸入的持續時間不同,輸出將以最短的時間停止。

但我希望它繼續使用較長的音訊串流(但仍然將兩個串流合併為一個。

這是我正在使用的當前命令,一旦最短的音訊串流完成,它就會停止音訊:

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

是否可以只用一個 FFmpeg 指令來完成我想做的事情?

答案1

如果已知第二個輸入的音訊串流較短,您可以填滿其長度,以便第一個輸入變得更短。

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

相關內容