簡體   English   中英

如何使用SilverLight播放H264流?

[英]How to play H264 stream with SilverLight?

我有一個H264流(IIS - 流暢的流),我想與SilverLight一起玩。 顯然SilverLight可以做到,但是怎么做?

注意:
SilverLight可以播放VC-1流,但H264不能播放。

此外,我可以提供流和所需的任何其他信息。 H264編碼器是Media Foundation(MFT)中的編碼器。 VC-1的工作方式也是如此(盡管無法為平滑流創建相同的塊,因為強制關鍵幀插入會導致視頻不穩定。

編輯:H264的MPEG2VIDEOINFO值:

H264的MPEG2VIDEOINFO值

只是一個猜測。 基於您的問題18009152.我猜您使用annexb比特流格式編碼h.264。 根據評論,你不能告訴編碼器使用AVCC格式。 因此,您必須手動執行此轉換(附錄B不適用於ISO容器)。 您可以通過在AVC流中查找起始代碼來執行此操作。 起始碼為3或4個字節(0x000001,0x00000001)。 通過查找下一個起始代碼或流的結尾,可以獲得NALU的長度。 剝離起始代碼(扔掉它)並在其位置寫入32位整數大端的NALU的大小。 然后將此數據寫入容器。 需要明確的是,這是在編碼器出來的視頻幀上執行的。 額外的數據是一個單獨的步驟,看起來你大部分已經弄明白了(除了NALUSizeLength)。 因為我們使用4字節整數來寫NALU大小,所以必須將NALUSizeLength設置為4。

Silverlight 3可以播放H264文件。 為此使用MediaStreamSource

這是界面描述: http//msdn.microsoft.com/en-us/library/system.windows.media.mediastreamsource(v = vs95).aspx

此外,此博客條目與H264播放Silverlight 3相關: http//nonsenseinbasic.blogspot.ru/2011/05/silverlights-mediastreamsource-some.html它將幫助您解決可能出現的其他問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM