以下ffmpeg命令工作正常,但它会减少超过-t持续时间:
ffmpeg -ss 00:00:05 -t 49 -i 1.wav -ss 00:00:05 -t 400 -i 2.wav -ss 00:00:05 -t 49 -i 3.wav -filter_complex "[0:0][1:0][2:0]concat=n=3:v=0:a=1[outa]" -map "[outa]" output.mp3
在此示例中,2.wav文件的长度为00:05:09,我们要求接下来的400秒。超出的时间(在此示例中为96秒)将从输出文件中删除,而我的客户并不希望这样。
额外的时间应该是96秒的沉默。 ffmpeg有这样的能力还是总能消除额外的时间?
答案 0 :(得分:1)
使用
ffmpeg -ss 00:00:05 -t 49 -i 1.wav -ss 00:00:05 -t 400 -i 2.wav -ss 00:00:05 -t 49 -i 3.wav
-filter_complex "[1]apad,atrim=0:400[1a];[0][1a][2]concat=n=3:v=0:a=1" output.mp3
中间文件末尾添加了无声填充。修剪过滤器使其持续400秒。结果然后送到concat。
应用于输入的 -t 400
意味着从输入中读取大量数据。如果那个数量不存在,那么ffmpeg将尽可能多地读取。