我正在转换一个文件,下面是输出。这个问题有一个部分的答案here,所以我问的是它没有涵盖的部分。我调整了终端的宽度以保留输出历史
[olpc@laptop ~] ffmpeg -i input -c:a copy -s 384x216 output
ffmpeg version N-68778-g5c7227b Copyright (c) 2000-2014 the FFmpeg developers
built on Dec 29 2014 22:12:54 with gcc 4.9.2 (GCC)
...
frame=2 fps=0.0 q=0.0 size= 0kB time=00:00:00.00 bitrate= 0.0kbits/s
frame=3 fps=2.0 q=0.0 size= 0kB time=00:00:00.00 bitrate= 0.0kbits/s
frame=5 fps=2.4 q=0.0 size= 0kB time=00:00:00.00 bitrate= 0.0kbits/s
frame=8 fps=2.9 q=0.0 size= 0kB time=00:00:00.00 bitrate= 0.0kbits/s
frame=10 fps=2.8 q=0.0 size= 0kB time=00:00:00.00 bitrate= 0.0kbits/s
frame=12 fps=2.9 q=0.0 size= 0kB time=00:00:00.00 bitrate= 0.0kbits/s
frame=13 fps=2.8 q=0.0 size= 0kB time=00:00:00.02 bitrate= 16.5kbits/s
frame=16 fps=3.1 q=0.0 size= 0kB time=00:00:00.48 bitrate= 0.8kbits/s
frame=19 fps=3.2 q=0.0 size= 0kB time=00:00:00.48 bitrate= 0.8kbits/s
frame=21 fps=3.2 q=0.0 size= 0kB time=00:00:00.48 bitrate= 0.8kbits/s
...
frame=687 fps=0.6 q=29.0 size= 1245kB time=00:00:22.84 bitrate= 446.5kbits/s
frame=688 fps=0.6 q=29.0 size= 1246kB time=00:00:22.84 bitrate= 446.7kbits/s
frame=689 fps=0.6 q=29.0 size= 1248kB time=00:00:22.84 bitrate= 447.5kbits/s
frame=690 fps=0.6 q=29.0 size= 1249kB time=00:00:22.84 bitrate= 447.8kbits/s
frame=691 fps=0.6 q=29.0 size= 1249kB time=00:00:22.84 bitrate= 448.0kbits/s
frame=692 fps=0.6 q=29.0 size= 1251kB time=00:00:22.84 bitrate= 448.7kbits/s
frame=693 fps=0.6 q=29.0 size= 1252kB time=00:00:22.84 bitrate= 448.8kbits/s
frame=694 fps=0.6 q=29.0 size= 1253kB time=00:00:22.84 bitrate= 449.1kbits/s
frame=695 fps=0.6 q=29.0 size= 1254kB time=00:00:22.84 bitrate= 449.7kbits/s
frame=696 fps=0.6 q=29.0 size= 1255kB time=00:00:22.84 bitrate= 449.9kbits/s
frame=697 fps=0.6 q=29.0 size= 1256kB time=00:00:22.84 bitrate= 450.2kbits/s
frame=698 fps=0.6 q=29.0 size= 1256kB time=00:00:22.84 bitrate= 450.3kbits/s
frame=699 fps=0.6 q=29.0 size= 1258kB time=00:00:22.84 bitrate= 451.0kbits/s
frame=699 fps=0.6 q=29.0 size= 1258kB time=00:00:22.87 bitrate= 450.5kbits/s
frame=701 fps=0.6 q=29.0 size= 1261kB time=00:00:23.31 bitrate= 443.1kbits/s第二个片段花了20秒:每行1秒,直到最后一行,最后一行在显示之前花了6秒。此模式在整个文件长度内重复出现。我的理解是,视频中每15帧就有一个控制帧,当没有控制帧时,视频以1fps的速度处理。
现在,我的问题是:time指的是什么?它似乎指的是视频中的时间,但为什么它在前13帧静止不动,然后缓慢上升0.03秒,然后跳跃0.44秒?
另外,bitrate如何从0.0跳到16.5,再回到0.8?(以上各行每隔一秒更新一次)。我的意思是,如果在7秒后比特率是16.5kbit/s,那么它肯定至少更新了105.5kbit。这意味着,即使它在下一秒没有处理任何东西,在下一(8)秒之后,比特率将至少是13.2kbit/s。
最后,q代表什么?
发布于 2020-01-07 18:10:32
部分答案:
bitrate的计算公式为(文件大小)/(进入视频的时间量)。当进入文件的时间为0时,上面的值是未定义的,因此比特率被列为0.0kbits/sec。
因此,当读取文件的时间为0.02秒时,输出文件大小必须为(16.5kbit/s) *(0.02s)=0.33kbit,因此仍四舍五入为size=0kB。但是,当在下一次迭代中读取文件的时间为0.48秒时,则0.33kbit / 0.48秒= 0.7kbits/s。这意味着在第13帧和第16帧之间,输出文件的大小确实会增加,因为输出速度现在为0.8kbits / s。
现在,为什么它在跳到0.48秒之前跳跃了0.02秒,这让我难以理解。也许其他人可以回答这个问题。
https://stackoverflow.com/questions/59625164
复制相似问题