您的位置:首页 > 其它

EasyDarwin不能保存HLS列表的解决方案

2016-03-31 11:58 351 查看

官网:

easydarwin.org

安装过程

http://doc.easydarwin.org/EasyDarwin/README/

安装客户端,iVMS-4200 客户端,并运行。

在设备管理里,添加到已管理设备中。记下 IP,用户名,密码。能在主预览中进行预览。

编译: EasyDarwin\WinNTSupport\EasyDarwin.sln

修改 Debug\easydarwin.xml其中的

<MODULE NAME="QTSSAdminModule" >

<PREF NAME="http_port" TYPE="UInt16" >8088</PREF>

如果发现有 easydarwin.xml –d 这个文件,删之 。

如果没有“easydarwin.xml” 这个文件,则从上面Copy到 Debug文件夹中。

运行: EasyDarwin\WinNTSupport\Debug\EasyDarwin.exe –d –c easydarwin.xml

打开 http://localhost:8088/

增加 HLS 直播

rtsp://admin:1qazxsw2@192.168.11.201

Play

可以使用 vlc player 来播放 HLS

部署

1. 路径不能不中文。
2. 安装好摄像头
3. 配置IIS 到 D:\MyApp\EasyDarwin-master\EasyDarwin\WinNTSupport\Debug\Movies
4. 配置IIS 到D:\MyApp\EasyDarwin-master\EasyDarwin\WinNTSupport\Debug\Movies\ab_Saved
5. 如果发现有 easydarwin.xml –d 这个文件,删之 。
6. 运行 D:\MyApp\中小微\EasyDarwin\EasyDarwin\WinNTSupport\Debug\exe.bat
7. 运行 D:\MyApp\HR2\PowerSetNetApp\ExecApp\ Set_EasyDarwin_Hls.bat 添加 HLS 列表。
8. D:\MyApp\HR2\PowerSetNetApp\ExecApp\bin\Debug>ExecApp.exe -RecvTsMovie -PathName "D:\MyApp\EasyDarwin-master\EasyDarwin\WinNTSupport\Debug\Movies\ab"

问题:

Hls不能保存列表,解决方案已给出: http://www.pfeng.org/archives/857
但是不太好用。作者给出了原理。自己写了一个

解决方案:

核心代码:

namespace ExecApp
{
/// <summary>
/// 保存 EasyDarwin 的 HLS 中的列表
/// </summary>
public class HlsSaveHandler : ICommandHandler
{
public string Host { get; set; }
public string Name { get; set; }
public string Url { get; set; }

public HlsSaveHandler(CmdArgs args) { args.ToModel(this); }

public string Do()
{
if (this.Name.HasValue() == false)
{
return "请提供 Name 参数";
}
if (this.Url.HasValue() == false)
{
return "请提供 Url 参数";
}
var ssid = "";
MyNet.HttpPost(this.Host + "/login.html", o =>
{
o.Headers["Cookie"] = "language0=0";
o.ContentType = "application/x-www-form-urlencoded";

return "name=admin&password=admin";
}, o =>
{
if (o.StatusCode != System.Net.HttpStatusCode.Redirect) return;
ssid = o.Headers["Set-Cookie"].AsString().MySplit(';').First();
});

if (ssid.HasValue() == false) return "登录失败";

MyNet.HttpPost(this.Host + "/api/addHLSList", o =>
{
o.ContentType = "Content-Type:application/x-www-form-urlencoded; charset=UTF-8";
o.Headers["Cookie"] = "language0=0; " + ssid;
return string.Format(@"n1={0}&n2={1}&n3=0", this.Name, HttpUtility.UrlEncode(this.Url));
});

return "";
}
}
}


调用:

bin\debug\ExecApp -HlsSave -Host "http://localhost:8088" -Name ab -Url "rtsp://admin:1qazxsw2@192.168.11.201"

可以写一个Bat,循环调用。

程序下载地址:http://files.cnblogs.com/files/newsea/ExecApp.rar
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: