从此文件开始:
Input #0, flac, from 'alfa.flac':
Duration: 00:02:52.48, bitrate: 503 kb/s
Stream #0:0: Audio: flac, 44100 Hz, stereo, s16
运行此命令会产生类似的输出持续时间,但编码速度很慢:
$ time ffmpeg -loop 1 -i bravo.jpg -i alfa.flac -shortest slow.mp4
frame= 4371 fps= 46 q=-1.0 Lsize= 4497kB time=00:02:54.76 bitrate= 210.8kbits/s
real 1m34.318s
user 0m0.000s
sys 0m0.015s
我可以降低输入帧速率,从而显著加快编码速度,但现在持续时间相当偏差:
$ time ffmpeg -loop 1 -r 1 -i bravo.jpg -i alfa.flac -shortest fast.mp4
frame= 232 fps= 31 q=-1.0 Lsize= 2860kB time=00:03:50.00 bitrate= 101.9kbits/s
real 0m7.566s
user 0m0.000s
sys 0m0.015s
我可以更改我的命令以使编码速度合适而不影响持续时间吗?
答案1
替换-shortest
为-t 2:52.48
(即所需持续时间)。
不幸的是,-shortest
并不完全准确,因为它只在内部缓冲区边界上停止(在 1 fps 静态循环视频的情况下,持续时间可能会很长)。