将rtsp流转换为http流

时间:2012-08-04 04:23:16

标签: c#

在c#中有可能rtsp视频流使用“System.net.httpwebrequest”,如果不是plz告诉我另一种选择。    //从

下载文件的URL
        string basepath = @"rtsp://ip.worldonetv.com:1935/live/ ";

        // the path to write the file to

        //            string sFilePathToWriteFileTo = "d:\\Download";



        // first, we need to get the exact size (in bytes) of the file we are downloading

        Uri url = new Uri(basepath);

        System.Net.HttpWebRequest request = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(url);

        System.Net.HttpWebResponse response = (System.Net.HttpWebResponse)request.GetResponse();

        response.Close();

2 个答案:

答案 0 :(得分:1)

您可以使用我的库制定RtspRequests。

然后,您可以对RtspRequest进行base64编码,并将其作为正文添加到HttpRequest中。

添加content-length标题,该标题等于正文中base64编码的rtsp请求的长度。

将标题rtsp/x-tunneled添加到HttpRequest,然后将其发送。

你应该找回一个包含base64编码的RtspResponse的主体的HttpResponse。

Base64解码HttpResponse的Body,然后使用我库中的RtspResponse类来解析它。

图书馆是@ http://net7mma.codeplex.com/

还有一个代码项目文章@ http://www.codeproject.com/Articles/507218/Managed-Media-Aggregation-using-Rtsp-and-Rtp

如果您还需要其他信息,请告诉我们!

答案 1 :(得分:0)

没有标准的C#库可以做到这一点。您甚至无法使用各种.NET DirectShow包装器来完成它。我只是让一位同事花了一个月的时间来解决这个问题,最后他在GStreamer上编写了自己的C#包装器。如果您计划显示视频,最简单的选择是嵌入VLC ActiveX控件。