每秒帧数概念细节

时间:2014-02-25 09:21:56

标签: ffmpeg libavcodec libavformat

我是新手,并试图了解ffmpeg / video背后的概念。

FPS表示每秒帧数,例如

25fps -> 25 frames captured in a second

从显示器上看

25 frames need to be displayed in a second.
如果我错了,请纠正我?

现在我已经在ffmpeg中编写了一个简单的视频播放器来显示。我读 av_read_frame()的帧,如果fps是25,那么

 av_read_frame()

每秒返回25帧?我该如何联系呢?

1 个答案:

答案 0 :(得分:1)

读写操作不必遵守相关流的数据速率。相反,它们会尽快发生而不会有任何延迟。毕竟,如果您对文件进行转码,您通常不会以100%的回放速度进行转换,更有可能您希望快速完成,只需阅读,编写,编码等即可。

任何生成内容的源都有兴趣对其进行适当的时间标记,附加帧速率和单个时间戳,以便回放可以准确地再现流,包括相对于其他流(“lipsync”)。

任何演示系统都有兴趣在考虑时间戳的情况下提供数据,在必要时添加延迟和空闲时间,以便播放准确。

介于两者之间的所有其他内容,包括av_read_frame,只关心不丢失附加到数据的时间,并且没有任何延迟执行(如果av_read_frame每秒返回的帧数尽可能多)。