【问题标题】:How can I play H.264 RTSP video in Windows 8 Metro C# XAML app?如何在 Windows 8 Metro C# XAML 应用程序中播放 H.264 RTSP 视频?
【发布时间】:2012-10-11 05:52:47
【问题描述】:

我有一台设备可以从以下 URL 提供 H.264 视频流: rtsp://192.168.0.10:554/videoservice

由于这是实时视频,我不需要对其进行控制(暂停、倒带等),只需播放即可。 MediaElement 或其他标准类是否支持此功能,我是否需要 Smooth Streaming Client SDK 之类的东西,还是比我想象的要复杂得多?

更新: 我下载了微软的Player Framework,但这也不能播放流。我在有关 RTSP 的示例中找不到任何内容。

更新: 我使用Wireshark 来比较VLC Media Player(有效)与MediaElement 和Player Framework 发送的数据包,它们似乎都没有使用RTSP 协议。相反,他们将WPAD 数据包发送到不同的地址,即使我提供了源的IP 地址。为什么这是必要的?有什么办法可以关闭这种行为?

【问题讨论】:

    标签: c# windows-8 h.264 rtsp


    【解决方案1】:

    见帖子here。您需要将数据包装在 MPEG-4 Part 14 容器中,然后将它们传递给MediaElement.SetSource。看来您不能仅使用记录在案的 API 来执行此操作。以下是链接中的重要信息:

    我们不支持 RTP,而是支持 MPEG-4 Part 14 容器格式。 您需要编写我们自己的源代码才能解析数据 将其直接传递给 Microsoft 解码器。此时我们没有 有关如何编写自定义源并从中加载的任何示例 您的 Metro 风格应用。不幸的是,不可能简单地使用 文档来弄清楚如何做到这一点。我一直在说话 和斯坦一起,我们正试图弄清楚我们如何以及何时可以制作 此信息可用。一旦有这些信息 我会在我的博客http://blogs.msdn.com/mediasdkstuff/上公布。

    Here 是支持的视频格式列表。

    还有一个示例here 说明如何扩展媒体类,其中可能有一个示例说明如何执行与您所要求的类似的事情。

    还有一个类似的例子here

    【讨论】:

    • 您有什么具体要添加到我的答案中的吗?
    • 不,只是对 Microsoft 让支持 RTSP 变得如此困难感到沮丧。这比我现在有时间做的工作要多得多,所以我不得不搁置这个项目。
    猜你喜欢
    • 1970-01-01
    • 2012-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多