影响持续时间的“-r”参数

影响持续时间的“-r”参数

从此文件开始:

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 静态循环视频的情况下,持续时间可能会很长)。

相关内容