Media Foundation的H264编码器中的SPS和PPS(又名dwSequenceHeader)

use*_*961 0 video-encoding h.264 smooth-streaming ms-media-foundation

我正在使用Media Foundation(MFT)的H264编码器.
我从中提取了SPS和PPS,因为我需要它来进行流畅的流式传输.
MSDN表示在每个NALU之前出现的长度字段使用的字节数1, 2, or 4.这都是网络字节顺序.如您所见,缓冲区中的前4个字节是0, 0, 0, 1.如果我们应用任何可能的长度,我们什么都得不到.如果用于长度的字节数是1,则长度为零,如果为2,则长度再次为零.如果是4,那么第一个NALU的长度是1?!而且,这不正确.
有谁知道我应该如何解释这个SPS和PPS连接在一起?

提取SPS + PPS

Rom*_* R. 5

这里的答案很简单:数据有效并根据附件B格式化,前缀为起始码00 00 00 01而非行程长度编码.

H.264 extradata(部分)解释 - 用于假人

附件B格式

在这种格式中,每个NAL前面都有一个四字节的起始码:0x00 0x00 0x00 0x01因此,为了知道NAL的起始位置和停止位置,你需要读取比特流的每个字节,寻找这些起始码,如果您需要在此格式和其他格式之间进行转换,这可能会很痛苦.

有关H.264规范的更多详细信息- 可免费下载.第326页以"附录B - 字节流格式"开头.