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

官网:

easydarwin.org

安装过程

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

  1. 安装客户端,iVMS-4200 客户端,并运行。
  2. 在设备管理里,添加到已管理设备中。记下 IP,用户名,密码。能在主预览中进行预览。
  3. 编译: EasyDarwin\WinNTSupport\EasyDarwin.sln
  4. 修改 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

  1. 打开 http://localhost:8088/
  2. 增加 HLS 直播

rtsp://admin:1qazxsw2@192.168.11.201

  1. 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,循环调用。

 

程序下载地址:https://files.cnblogs.com/files/newsea/ExecApp.rar

posted @ 2016-03-31 11:58  NewSea  阅读(1817)  评论(0编辑  收藏  举报