• 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

  • 相关阅读:
    流行技术博客站点收录
    session过期后自动跳转到登陆页
    《AngularJS》--指令的相互调用
    java socker编程
    20189307《网络攻防》第十一周作业
    20189307《网络攻防》第十周作业
    20189307《网络攻防》第九周作业
    20189307《网络攻防》第八周作业
    20189307《网络攻防》第七周作业
    20189307《网络攻防》第六周作业
  • 原文地址:https://www.cnblogs.com/newsea/p/5340626.html
Copyright © 2020-2023  润新知