Ffmpeg avcodec/avformat文件中的帧数

Ffmpeg avcodec/avformat文件中的帧数,ffmpeg,Ffmpeg,我需要知道如何使用avcodec/avformat查找视频文件中的总帧数 我有一个项目,我正在从其他人那里学习,他们使用ffmpeg库对视频流进行解码。我需要改进一些功能来逐帧查找,因此我的第一个任务是简单地计算文件中的总帧数。AVStream.nb_frames似乎是一个合理的查看位置,但对于我尝试过的所有视频文件,这始终是0。从AVFormatContex.duration中推断总帧数是最好的方法吗?找到确切帧数的唯一方法是全部检查并计数。我曾多次担心这一点,尝试了许多不同的工具(包括ffm

我需要知道如何使用avcodec/avformat查找视频文件中的总帧数


我有一个项目,我正在从其他人那里学习,他们使用ffmpeg库对视频流进行解码。我需要改进一些功能来逐帧查找,因此我的第一个任务是简单地计算文件中的总帧数。AVStream.nb_frames似乎是一个合理的查看位置,但对于我尝试过的所有视频文件,这始终是0。从AVFormatContex.duration中推断总帧数是最好的方法吗?

找到确切帧数的唯一方法是全部检查并计数。我曾多次担心这一点,尝试了许多不同的工具(包括ffmpeg),并且读了很多书。对不起,一般情况下没有别的办法。有些格式就是不存储这些信息,所以你必须计数。

是从AVFormatContext.duration计算帧数的好方法,还是像nb_frames一样不可靠?这是一种好方法,但当你实际解码时,不要期望解码准确的帧数。视频越长,偏差可能越大。还请记住,搜索可能同样脆弱——除非您有一个索引(或者是通过预先循环文件自行创建的,或者是由容器格式提供的),否则说“我需要帧号96215”几乎是不可能的