2013-06-24 69 views
0

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

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

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

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

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

我想使用libavformat API以编程方式完成此操作。

有什么想法吗?

谢谢。

回答

2

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

相关问题