阅读H264 SPS&使用libavformat API的PPS NAL字节

时间:2013-06-24 15:43:36

标签: ffmpeg h.264 libavformat

如何阅读H264 SPS&使用libavformat API的PPS NAL字节?

我尝试使用“av_read_frame(input_avFormatContext,& avPkt)”API从.mp4视频(编解码器是h264)文件中将视频数据读取到“AVPacket”结构。

我将avPkt->数据转储到文件中。但第一帧读取是IDR帧。

使用“ffmpeg -i video.mp4 video.h264”生成的文件将包含SPS& PPS在IDR开始之前开始。

我想从.mp4文件中提取原始的.h264视频,并将其转储到SPS,PPS,IDR,P1,P2 ...顺序中。

我希望使用libavformat API以编程方式完成此任务。

有什么想法吗?

感谢。

1 个答案:

答案 0 :(得分:3)

在mp4-container(mkv中)PPS / SPS与全局标题中的帧数据分开存储。要从libav * API访问它们,您需要在AVStream的AVCodecContext中查找与所需视频流相关的extradata字段。此外,extradata可以采用与标准H.264 NAL不同的格式,因此请参阅MP4容器规格以获取格式说明。