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

官网:

easydarwin.org

安装过程

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

  1. 安装客户端,iVMS-4200 客户端,并运行。
  2. 在设备管理里,添加到已管理设备中。记下 IP,用户名,密码。能在主预览中进行预览。
  3. 编译: EasyDarwinWinNTSupportEasyDarwin.sln
  4. 修改 Debugeasydarwin.xml其中的

<MODULE NAME="QTSSAdminModule" >

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

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

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

运行: EasyDarwinWinNTSupportDebugEasyDarwin.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:MyAppEasyDarwin-masterEasyDarwinWinNTSupportDebugMovies
4. 配置IIS 到D:MyAppEasyDarwin-masterEasyDarwinWinNTSupportDebugMoviesab_Saved
5. 如果发现有 easydarwin.xml –d 这个文件,删之 。
6. 运行 D:MyApp中小微EasyDarwinEasyDarwinWinNTSupportDebugexe.bat
7. 运行 D:MyAppHR2PowerSetNetAppExecApp Set_EasyDarwin_Hls.bat 添加 HLS 列表。
8. D:MyAppHR2PowerSetNetAppExecAppinDebug>ExecApp.exe -RecvTsMovie -PathName "D:MyAppEasyDarwin-masterEasyDarwinWinNTSupportDebugMoviesab"

问题:

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 "";
        }
    }
}

调用:


bindebugExecApp -HlsSave -Host "http://localhost:8088" -Name ab -Url "rtsp://admin:1qazxsw2@192.168.11.201"

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

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

原文地址:https://www.cnblogs.com/newsea/p/5340626.html