我使用libavcodec进行视频处理。
AVStream->r_frame_rate
的文档说
Real base framerate of the stream.
This is the lowest framerate with which all timestamps can be
represented accurately (it is the least common multiple of all
framerates in the stream). Note, this value is just a guess!
我尝试了几个mp4和avi视频(25fps)和r_frame_rate
总是如我所料25.所以,我想理解为什么文档说...is just a guess!
如果我总是得到精确的fps?什么时候改变?
答案 0 :(得分:1)
许多容器,尤其是流容器(例如mpeg-ts)不记录帧速率。许多容器允许可变帧率视频。 ffmpeg尝试通过查看前几秒和计算帧来确定帧速率。但是,如果帧速率在整个流中发生变化或变化,则r_frame_rate可能会变得不准确。
因此,r_frame_rate是一个很好的信息用途。但最好分别查看每个帧的PTS。