![](/img/trans.png)
[英]How to use MediaStreamSource to play h264 frames coming from a matroska file?
[英]How to play H264 stream with SilverLight?
我有一個H264流(IIS - 流暢的流),我想與SilverLight一起玩。 顯然SilverLight可以做到,但是怎么做?
注意:
SilverLight可以播放VC-1流,但H264不能播放。
此外,我可以提供流和所需的任何其他信息。 H264編碼器是Media Foundation(MFT)中的編碼器。 VC-1的工作方式也是如此(盡管無法為平滑流創建相同的塊,因為強制關鍵幀插入會導致視頻不穩定。
編輯: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.