silverlight - 如何使用 SilverLight 播放 H264 流?

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

我有一个 H264 流(IIS - 平滑流),我想用 SilverLight 播放。显然 SilverLight 可以做到,但如何做到呢?
注意:SilverLight 可以播放 VC-1 流,但不能播放 H264。此外,我可以提供流和所需的任何其他信息。 H264 编码器是 Media Foundation (MFT) 中的一种。同样适用于 VC-1 的工作(虽然不可能为流畅的流媒体创建相等的块,因为强制关键帧插入会使视频抖动。编辑:H264 的 MPEG2VIDEOINFO 值:MPEG2VIDEOINFO values for H264

最佳答案

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

关于silverlight - 如何使用 SilverLight 播放 H264 流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18045560/

相关文章:

c# - 遍历所有颜色?

silverlight - WP7 NavigationService.Navigate传递指针而不使用全局变量?

windows - 使用 NVENC 的 FFmpeg 硬件加速产生半绿输出视频

java - FFmpeg Javacv - 延迟问题

3d - x264/ffmpeg 中的 h.264 MVC 3D 支持

c# - 不足以阻止在 WP7 ListBox 中滚动

silverlight - 打开 XAML 文件时 Visual Studio 2010 崩溃

php - HTML5 域锁定?

c++ - 从 C++ 的图像流中创建 Qml 视频

android - 直接从服务器在android中播放视频