FFMPEG读取关键帧

问题描述

| 我正在尝试编写一个C ++程序,该程序将使用ffmpeg从视频文件中读取关键帧。 到目前为止,我设法使用
av_read_frame
获取所有帧,您依次读取 一帧一帧。 但是我在使用ѭ1时遇到了一些问题(如果我是正确的话),这应该可以解决关键帧的问题。
int av_seek_frame(AVFormatContext *s,int stream_index,int64_t timestamp,int flags);
我有
FormatContext
,但依次只获取所有关键帧的其他正确参数是什么? 还有其他我可以使用的功能吗? 谢谢 编辑:在ѭ0中,我正在获取AVPacket,可以用来获取帧数据,但是如何使用av_seek_frame获取数据包? 解决方案:好的,在AVFrame-> key_frame中有一个简单的布尔值。如果关键帧为真     

解决方法

        av_seek_frame可以在视频文件中搜索特定的时间戳。它包含4个参数:指向AVFormatContext的指针,流索引,要搜索的时间戳和用于选择方向和搜索模式的标志。 然后,函数将搜索给定时间戳记之前的第一个关键帧。 查看该功能的文档以获取更多信息。