如何使用SilverLight播放H264流?

时间:2013-08-04 17:25:28

标签: silverlight video-streaming h.264 ms-media-foundation smooth-streaming

我有一个H264流(IIS - 流畅的流媒体),我想与SilverLight一起玩。显然SilverLight可以做到,但是怎么做?

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

另外,我可以提供一个流和所需的任何其他信息。 H264编码器是Media Foundation(MFT)中的编码器。同样适用于VC-1(虽然无法为平滑流创建相同的块,因为强制关键帧插入会导致视频不稳定。

编辑:H264的MPEG2VIDEOINFO值:< / b>

MPEG2VIDEOINFO values for H264

2 个答案:

答案 0 :(得分:8)

只是一个猜测。基于您的问题18009152.我猜您使用annexb比特流格式编码h.264。根据评论,你不能告诉编码器使用AVCC格式。因此,您必须手动执行此转换(附录B不适用于ISO容器)。您可以通过在AVC流中查找起始代码来执行此操作。起始码为3或4个字节(0x000001,0x00000001)。通过查找下一个起始代码或流的结尾,可以获得NALU的长度。剥离起始代码(扔掉它)并在其位置写入32位整数大端的NALU的大小。然后将此数据写入容器。需要明确的是,这是在编码器出来的视频帧上执行的。额外的数据是一个单独的步骤,看起来你大部分已经弄明白了(除了NALUSizeLength)。因为我们使用4字节整数来写NALU大小,所以必须将NALUSizeLength设置为4。

答案 1 :(得分:-2)

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

以下是界面说明:http://msdn.microsoft.com/en-us/library/system.windows.media.mediastreamsource(v=vs.95).aspx

此外,此博客条目与H264播放Silverlight 3相关:http://nonsenseinbasic.blogspot.ru/2011/05/silverlights-mediastreamsource-some.html 它将帮助您解决可能出现的其他问题。