wowza streaming c#HTTP get livestreamrecord方法

时间:2014-07-31 09:06:57

标签: c# http wowza

您好我需要一些帮助,通过http url c#calls,

进行livestreamrecord录音

我可以使用以下方式开始和停止流录制:

http://[username]:[password]@[wowza-ip-address]:8086/livestreamrecord?app=live&streamname=myStream&action=startRecording

直接将其输入浏览器或从代码重定向我的网页时,但当我尝试在网页上的c#中执行相同操作时,没有任何反应。

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://[username]:[password]@[wowza-ip-address]:8086/livestreamrecord?app=live&streamname=myStream&action=startRecording);
    request.Method = "GET";
    request.Proxy = new WebProxy("[wowza-ip-address]", 8086);
    request.Credentials = new NetworkCredential("[username]", "[password]");        
    request.ContentType = "application/x-www-form-urlencoded";

    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
    Stream stm = response.GetResponseStream();

当我第一次尝试设置时,我不断收到401个未经授权的错误,上面的代码不久就抛出,但现在我被卡住了,因为没有错误被抛出,仍然没有开始录制。

响应返回:

<html><head><title>Wowza Streaming Engine 4 Perpetual Edition 4.0.1 build10615</title></head><body>Wowza Streaming Engine 4 Perpetual Edition 4.0.1 build10615</body></html>

表示未到达livestreamrecord页面。

2 个答案:

答案 0 :(得分:1)

解决了这个问题,他们在请求中进行了302重定向,产生了401未经授权的响应。添加:

request.AllowAutoRedirect = false;

并删除:

request.Proxy = new WebProxy("[wowza-ip-address]", 8086);

解决了这个问题。

使用Proxy,它没有抛出错误但也没有记录。删除代理允许记录命令工作,但抛出401响应,然后通过将AllowAutoRedirect设置为false来解析。

答案 1 :(得分:0)

检查您是否启用了wowza rest api

启用Wowza REST-API 要在现有Wowza服务器中启用Wowza REST-API,请转到Wowza [install_dir] /conf/Server.xml的安装目录并添加以下代码段:

<RESTInterface>
                       <Enable>true</Enable>
                       <IPAddress>*</IPAddress>
                       <Port>8087</Port>
                       <!-- none, basic, digest-->
                       <AuthenticationMethod>none</AuthenticationMethod>
                       <DiagnosticURLEnable>true</DiagnosticURLEnable>
                       <SSLConfig>
                               <Enable>false</Enable>
                               <KeyStorePath></KeyStorePath>
                               <KeyStorePassword></KeyStorePassword>
                               <KeyStoreType>JKS</KeyStoreType>
                               <SSLProtocol>TLS</SSLProtocol>
                               <Algorithm>SunX509</Algorithm>
                               <CipherSuites></CipherSuites>
                               <Protocols></Protocols>
                       </SSLConfig>
                       <IPWhiteList>*</IPWhiteList>
                       <IPBlackList></IPBlackList>
                       <EnableXMLFile>false</EnableXMLFile>
                       <DocumentationServerEnable>true</DocumentationServerEnable>
                       <DocumentationServerPort>8089</DocumentationServerPort>
                       <!-- none, basic, digest-->
                       <DocumentationServerAuthenticationMethod>none</DocumentationServerAuthenticationMethod>
                       <Properties>
                               <Property>
                                       <Name>restUserHTTPHeaders</Name>
                                       <Value>Access-Control-Allow-Origin:*|Access-Control-Allow-Methods:OPTIONS,GET,PUT,DELETE,POST|Access-Control-Allow-Headers:Content-Type</Value>
                               </Property>
                       </Properties>
               </RESTInterface>
  1. 确保此处的API端口设置为8087,但在您的示例中为8086

  2. <IPWhiteList>*</IPWhiteList> - 表示允许来自任何IP的API调用