2012-08-22 57 views
1

我有網絡服務,它提供了我自定義的容器格式,其中包含H.264 NAL單元。 我想通過使用自定義MediaStreamSource的silverlight中的MediaElement播放它們。從私人數據中查找SPS和PPS

根據this文章我需要設置私有編解碼器數據。 Web服務提供了我configCodec但Base64格式(看起來像「AUIAHv/hABhnQsAe2gMg7 + IhAAADAAEAAAMAMo8WLqABAARozgvI」)

因此,在其他平臺(iOS版和Android)我需要設置爲編解碼器的額外數據屬性。

codec->extra-data = info; 

但是在Windows Phone中,我應該提供像00000001 [SPS] 00000001 [PPS]這樣的信息。 那麼,有人能告訴我如何解析從Web服務提供的私人數據,以獲得SPS和PPS值?

回答

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肯定就可以了。

+0

可以解釋一下嗎?或者,也許給我提供一個關於這個解析信息的鏈接? –

+1

在MPEG-4 Part 10規範中描述了SPS和PPS。 「0x67」是NAL單元類型7(SPS)。類型8是PPS。長度字節合理匹配。還要別的嗎?確切的數據結構取決於你從何處取得,你說「Web服務提供給我......」。 –

相關問題