我有网络服务,它为我提供包含H.264 NAL单位的容器的自定义格式。 我想使用自定义MediaStreamSource通过Silverlight中的MediaElement播放它们。
根据this文章,我需要设置私有编解码器数据。 Web服务为我提供了configCodec,但是采用base64格式(看起来像“AUIAHv / hABhnQsAe2gMg7 + IhAAADAAEAAAMAMo8WLqABAARozgvI”)
所以,在其他平台(iOS,Android)中我只需要设置编解码器的额外数据属性。
codec->extra-data = info;
但是在Windows Phone中我应该提供00000001 [SPS] 00000001 [PPS]这样的信息。 那么,有人可以告诉我如何解析从Web服务提供的私有数据以从中获取SPS和PPS值吗?
答案 0 :(得分:2)
您的数据解码为十六进制是:
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肯定在它上面。