如何使用SilverLight播放H264流?

use*_*961 7 silverlight video-streaming h.264 smooth-streaming ms-media-foundation

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

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

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

编辑:H264的MPEG2VIDEOINFO值:

H264的MPEG2VIDEOINFO值

sza*_*ary 9

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