6

我有一个想用 SilverLight 播放的 H264 流(IIS - 平滑流)。显然 SilverLight 可以做到,但怎么做呢?

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

此外,我可以提供流和所需的任何其他信息。H264 编码器是 Media Foundation (MFT) 中的一种。工作的 VC-1 也是如此(尽管不可能为流畅的流式传输创建相等的块,因为强制插入关键帧会使视频不稳定。

编辑:H264 的 MPEG2VIDEOINFO 值:

H264 的 MPEG2VIDEOINFO 值

4

2 回答 2

9

只是一个猜测。根据您的问题 18009152。我猜您正在使用附件 b 比特流格式对 h.264 进行编码。根据评论,您不能告诉编码器使用 AVCC 格式。因此,您必须手动执行此转换(附件 B 不会在 ISO 容器中工作)。您可以通过在 AVC 流中查找开始代码来完成此操作。起始码为 3 或 4 个字节(0x000001、0x00000001)。您可以通过定位下一个起始码或流的结尾来获得 NALU 的长度。剥离起始代码(扔掉它)并在其位置以 32 位整数大端写入 NALU 的大小。然后将此数据写入容器。为了清楚起见,这是对来自编码器的视频帧执行的。额外的数据是一个单独的步骤,您似乎已经弄清楚了(NALUSizeLength 除外)。

于 2013-08-12T19:47:42.270 回答
-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 它将帮助您解决可能出现的其他问题。

于 2013-08-07T17:24:26.083 回答