你能在没有解码的情况下在h264视频中找到关键帧(I帧)吗?即它是在包中吗?

时间:2012-01-18 18:34:34

标签: mpeg-4

我需要知道是否可以找到I帧而不必先解码它。我想在AVPacket中有一些标志,但我看不出有一个。

感谢。

2 个答案:

答案 0 :(得分:3)

通过查找适当的标题代码,您当然可以找到I帧的位置。如果您解析序列,可以从开始代码中找到它。

H.264比特流分为称为NAL单元的部分。这些单元在它们之前有24位代码0x000001用于同步。在此之后,将有一个独特的起始代码,对应于图片的开始,以及基于此类型的图片类型,您可以决定哪个帧。

答案 1 :(得分:0)

是的,你可以从AVPacket获得关键帧,这个结构中有一个成员' flags'。您可以通过pkt.flags获取值,对于Key-frame,该值将为1,0,否则为0。