8

我有一个设备,它从如下 URL 提供 H.264 视频流:rtsp://192.168.0.10:554/videoservice

由于这是实时视频,我不需要控制它(暂停、倒带等),只需播放即可。这是否由MediaElement或其他标准类支持,我是否需要平滑流客户端 SDK之类的东西,或者这比我想象的要复杂得多?

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

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

4

1 回答 1

8

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

我们不支持 RTP,而是支持 MPEG-4 Part 14 容器格式。您将需要编写我们自己的源代码,以便能够解析数据并将其直接传递给 Microsoft 解码器。目前,我们没有任何关于如何编写自定义源代码并从您的 Metro 风格应用程序加载它的示例。不幸的是,不可能简单地使用文档来弄清楚如何做到这一点。我一直在与 Stan 交谈,我们正试图弄清楚如何以及何时可以提供这些信息。一旦这些信息可用,我将在我的博客http://blogs.msdn.com/mediasdkstuff/上公布。

以下是支持的视频格式列表。

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

这里有一个类似的例子。

于 2012-10-31T19:43:04.877 回答