我是新手,并试图了解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帧?我该如何联系呢?
答案 0 :(得分:1)
读写操作不必遵守相关流的数据速率。相反,它们会尽快发生而不会有任何延迟。毕竟,如果您对文件进行转码,您通常不会以100%的回放速度进行转换,更有可能您希望快速完成,只需阅读,编写,编码等即可。
任何生成内容的源都有兴趣对其进行适当的时间标记,附加帧速率和单个时间戳,以便回放可以准确地再现流,包括相对于其他流(“lipsync”)。
任何演示系统都有兴趣在考虑时间戳的情况下提供数据,在必要时添加延迟和空闲时间,以便播放准确。
介于两者之间的所有其他内容,包括av_read_frame
,只关心不丢失附加到数据的时间,并且没有任何延迟执行(如果av_read_frame
每秒返回的帧数尽可能多)。