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

par*_*y72 8 c# rtsp h.264 windows-8

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

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

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

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

N_A*_*N_A 8

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

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

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

还有一个例子这里的如何延长这可能对如何做类似你所要求的东西的例子媒体类.

还有一个类似的例子在这里.

  • 不,只是感到沮丧,因为微软很难支持RTSP.这比我现在的时间更多,所以我将不得不搁置这个项目. (2认同)