从专用数据中查找SPS和PPS



我有一个web服务,它为我提供了包含H.264 NAL单元的容器的自定义格式。我想使用自定义的MediaStreamSource在silverlight中通过MediaElement播放它们。

根据这篇文章,我需要设置专用编解码器数据。Web服务为我提供configCodec,但格式为base64(看起来像"AUIAHv/hABhnQsAe2gMg7+IhAAADAAEAAAMAMo8WLqABAARozgvI")

所以,在其他平台(iOS、Android)中,我所需要的只是设置为编解码器的额外数据属性。

codec->extra-data = info;

但在Windows Phone中,我应该提供类似0000000 1[SPS]0000000 1[PPS]的信息。那么,有人能告诉我如何解析web服务提供的私人数据,从中获取SPS和PPS值吗?

解码为十六进制的数据是:

0x01 0x42 0x00 0x1E 0xFF 
0xE1 
0x00 0x18 (SPS length in bytes)
0x67 0x42 0xC0 0x1E 0xDA 0x03 0x20 0xEF (SPS...)
0xE2 0x21 0x00 0x00 0x03 0x00 0x01 0x00 
0x00 0x03 0x00 0x32 0x8F 0x16 0x2E 0xA0 (...SPS)
0x01 
0x00 0x04 (PPS length in bytes)
0x68 0xCE 0x0B 0xC8 (PPS)

我不知道这个结构到底是什么,它在rfom的哪里,但SPS和PPS肯定在上面。

最新更新