我想在Texture2D
上播放RTSP视频流。该流来自IP摄像机,并使用H.264、MJPEG或MPEG4进行编码。
我知道VLC的库,ffmpeg,直接放映,媒体基金会等等,但是我如何将它们与Mono的开发联系起来?
发布于 2014-03-11 06:03:52
这可不是件小事。基本上,如果您想要播放选项,或者使用现有的流解决方案,您需要构建一个支持RTP和RTSP的流服务器;ffmpeg有一个,但不幸的是,它不能在Windows上工作。如果您计划使用ffmpeg,您还需要使用本机代码动态库连接,我不确定是否所有版本都支持它。
构建流服务器需要做大量的工作,但这并不难。首先,您需要了解用于数据传输的RTP和用于协商和播放选项的RTSP。
您可以通过套接字、嗅探或相机SDK提供的数据包读取数据包。一旦获得数据包(通常作为char*
的blob和length
缓冲区提供),您需要首先将数据包分割为UDP、RTP/RTSP和RTP有效负载。一旦提取了RTP有效载荷,您就可以将其传递到ffmpeg解码器,该解码器将返回通常编码为RGBA的解码图像,到了那里后,您需要将图像数据放入中,并将其传递到纹理中。
如果这听起来太费劲了,有一个开源库可以帮你做这件事,这叫做live555 --注意,我对它不太了解,但它可以完成任务。
发布于 2014-06-29 02:46:00
https://gamedev.stackexchange.com/questions/71735
复制