如何在Windows 8 Metro C#XAML应用程序中播放H.264 RTSPvideo?

我有一个设备,提供来自URL的H.264video流,如:rtsp://192.168.0.10:554 / videoservice

由于这是实时video,我不需要能够控制它(暂停,倒带等),只需播放。 这是否受MediaElement或其他标准类的支持,我是否需要像Smooth Streaming Client SDK这样的东西,还是比我想象的要复杂得多?

更新:我下载了微软的播放器框架,但这也没有播放流。 我在RTSP的例子中找不到任何东西。

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

请看这里的post。 您需要将数据包装在MPEG-4 Part 14容器中,然后将它们传递给MediaElement.SetSource 。 看来你只能使用记录的API来做到这一点。 以下是链接中的重要信息:

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

以下是支持的video格式列表。

这里还有一个例子,说明如何扩展媒体类,这可能有一个例子,说明如何做一些类似于你所要求的事情。

这里有一个类似的例子。