如何使用 libavformat API 读取 H264 SPS 和 PPS NAL 字节?
我尝试使用“av_read_frame(input_avFormatContext, &avPkt)” API 从 .mp4 视频(编解码器为 h264)文件将视频数据读取到“AVPacket”结构。
我将 avPkt->data 转储到文件中。但读取的第一个帧是 IDR 帧。
使用“ffmpeg -i video.mp4 video.h264”生成的文件将在 IDR 启动之前的开头包含 SPS 和 PPS。
我想从 .mp4 文件中提取原始 .h264 视频并将其转储为 SPS、PPS、IDR、P1、P2... 顺序。
我想使用 libavformat API 以编程方式完成此操作。
有什么想法吗?
Thanks.
在 mp4 容器(也包括 mkv)中,PPS/SPS 与全局标头中的帧数据分开存储。要从 libav* API 访问它们,您需要在 AVStream 的 AVCodecContext 中查找与所需视频流相关的额外数据字段。此外,额外数据的格式可能与标准 H.264 NAL 不同,因此请参阅 MP4 容器规范以获取格式描述。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)