Esempio n. 1
0
        /// <summary>
        /// 处理Dvr信息
        /// </summary>
        /// <param name="dvrVideo"></param>
        /// <param name="rs"></param>
        /// <returns></returns>
        public static bool OnDvr(DvrVideo dvrVideo)
        {
            try
            {
                dvrVideo.Deleted    = false;
                dvrVideo.Undo       = false;
                dvrVideo.UpdateTime = DateTime.Now;
                var onPublishList =
                    FastUsefulApis.GetOnPublishMonitorListByDeviceId(dvrVideo.Device_Id !, out ResponseStruct rs);
                var ret = onPublishList.FindLast(x => x.Client_Id == dvrVideo.Client_Id);
                if (ret != null)
                {
                    dvrVideo.ClientIp    = ret.MonitorIp;
                    dvrVideo.MonitorType = ret.MonitorType;
                    dvrVideo.RecordDate  = DateTime.Now.ToString("yyyy-MM-dd");
                }

                SrsManager srs = SystemApis.GetSrsManagerInstanceByDeviceId(dvrVideo.Device_Id !);
                dvrVideo.Url = ":" + srs.Srs.Http_server !.Listen +
                               dvrVideo.VideoPath !.Replace(srs.Srs.Http_server.Dir !, "");
                lock (Common.LockDbObjForDvrVideo)
                {
                    OrmService.Db.Insert(dvrVideo).ExecuteAffrows();
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("存DVR错误:" + ex.Message);
            }

            return(true);
        }
Esempio n. 2
0
        /// <summary>
        /// 初始化SRS实例
        /// </summary>
        public static void init_SrsServer()
        {
            LogWriter.WriteLog("初始化Srs服务器实例...");
            DirectoryInfo  dir = new DirectoryInfo(WorkPath);
            ResponseStruct rs;
            bool           ret = false;

            foreach (FileInfo file in dir.GetFiles())
            {
                if (file.Extension.Trim().ToLower().Equals(".conf")) //找到配置文件
                {
                    SrsManager sm = new SrsManager();
                    ret = sm.SRS_Init(file.FullName, out rs);
                    string rsStr = JsonHelper.ToJson(rs);
                    if (!ret)
                    {
                        LogWriter.WriteLog("初始化SRS配置失败...ConfigPath:" + file.FullName, rsStr, ConsoleColor.Yellow);
                    }
                    else
                    {
                        LogWriter.WriteLog("初始化SRS成功...ConfigPath:" + file.FullName, rsStr);
                        SrsManagers.Add(sm);
                    }
                }
            }


            if (SrsManagers.Count == 0)
            {
                LogWriter.WriteLog("没有的到Srs实例配置文件,系统将自动创建一个Srs实例配置文件");
                SrsManager sm = new SrsManager();
                ret = sm.CreateSrsManager(out rs);
                string rsStr = JsonHelper.ToJson(rs);
                if (!ret)
                {
                    LogWriter.WriteLog("创建SRS实例失败...:", rsStr, ConsoleColor.Yellow);
                }
                else
                {
                    LogWriter.WriteLog("初始化SRS成功...ConfigPath:" + sm.SrsConfigPath, rsStr);
                    SrsManagers.Add(sm);
                }
            }
        }
Esempio n. 3
0
 /// <summary>
 /// 刷新并向磁盘写入SRS实例的配置文件
 /// </summary>
 /// <param name="sm"></param>
 /// <param name="rs"></param>
 /// <returns></returns>
 public static bool RefreshSrsObject(SrsManager sm, out ResponseStruct rs)
 {
     SrsConfigBuild.Build(sm.Srs, sm.SrsConfigPath);
     LogWriter.WriteLog("重写Srs配置文件刷新Srs实例...", sm.Srs.ConfFilePath !);
     return(sm.Reload(out rs));
 }
Esempio n. 4
0
        static void Main(string[] args)
        {
            string stream =
                "{\"code\":0,\"server\":87846,\"data\":{\"ok\":true,\"now_ms\":1591068638439,\"self\":{\"version\":\"4.0.23\",\"pid\":29282,\"ppid\":1,\"argv\":\"/root/StreamNode/srs -c /root/StreamNode/22364bc4-5134-494d-8249-51d06777fb7f.conf\",\"cwd\":\"/root/StreamNode\",\"mem_kbyte\":71448,\"mem_percent\":0.00,\"cpu_percent\":0.09,\"srs_uptime\":214},\"system\":{\"cpu_percent\":0.02,\"disk_read_KBps\":0,\"disk_write_KBps\":0,\"disk_busy_percent\":0.00,\"mem_ram_kbyte\":16266040,\"mem_ram_percent\":0.06,\"mem_swap_kbyte\":8257532,\"mem_swap_percent\":0.00,\"cpus\":8,\"cpus_online\":8,\"uptime\":162062.71,\"ilde_time\":1275660.46,\"load_1m\":0.12,\"load_5m\":0.22,\"load_15m\":0.19,\"net_sample_time\":1591068632439,\"net_recv_bytes\":0,\"net_send_bytes\":0,\"net_recvi_bytes\":458866896997,\"net_sendi_bytes\":218579639053,\"srs_sample_time\":1591068638439,\"srs_recv_bytes\":447805521,\"srs_send_bytes\":33944,\"conn_sys\":55,\"conn_sys_et\":29,\"conn_sys_tw\":10,\"conn_sys_udp\":4,\"conn_srs\":10}}}";
            var a = JsonHelper.FromJson <SrsSystemInfo>(stream);

            Console.WriteLine(a.ToString());
            Console.WriteLine("Hello World!");
            Console.WriteLine(AppDomain.CurrentDomain.BaseDirectory);
            Console.WriteLine(JsonHelper.ToJson(SystemApis.GetSystemInfo()));
            Common.init_SrsServer();
            Common.startServers();
            List <string> srsdevidlist = SystemApis.GetAllSrsManagerDeviceId();

            Console.WriteLine(JsonHelper.ToJson(srsdevidlist));
            foreach (var s in srsdevidlist)
            {
                Console.WriteLine(JsonHelper.ToJson(SystemApis.GetSrsManagerInstanceByDeviceId(s)));
            }

            if (srsdevidlist.Count > 0)
            {
                SrsManager srsm = SystemApis.GetSrsManagerInstanceByDeviceId(srsdevidlist[0]);

                string d = "www.test1cn.tyz";

                Console.WriteLine("pid:" + srsm.IsRunning);
                ResponseStruct    rs;
                SrsvHostConfClass vhost = VhostApis.GetVhostTemplate(VhostIngestInputType.Stream, out rs);
                vhost.VhostDomain = d;
                VhostApis.SetVhost(srsm.SrsDeviceId, vhost, out rs);
                Rtc rtc = new Rtc();
                rtc.Bframe  = "known";
                rtc.Enabled = true;
                VhostRtcApis.SetVhostRtc(srsm.SrsDeviceId, d, rtc, out rs);
                Dvr dvr = new Dvr();
                dvr.Enabled  = true;
                dvr.Dvr_path = "/dvr/path/";
                VhostDvrApis.SetVhostDvr(srsm.SrsDeviceId, d, dvr, out rs);
                Hds hds = new Hds();
                hds.Enabled    = true;
                hds.Hds_window = 50;

                VhostHdsApis.SetVhostHds(srsm.SrsDeviceId, d, hds, out rs);
                SrtServerApis.DeleteSrtServer(srsm.SrsDeviceId, out rs);
                SrsSrtServerConfClass srt = new SrsSrtServerConfClass();
                srt = SrtServerApis.GetSrtServerTemplate(out rs);

                srt.Enabled = true;
                SrtServerApis.SetSrtServer(srsm.SrsDeviceId, srt, out rs);

                VhostApis.DeleteVhostByDomain(srsm.SrsDeviceId, "__defaultvhost__", out rs);
                VhostRtcApis.DeleteVhostRtc(srsm.SrsDeviceId, d, out rs);
                VhostHdsApis.DeleteVhostHds(srsm.SrsDeviceId, d, out rs);

                SrsConfigBuild.Build(srsm.Srs, srsm.SrsConfigPath);
                if (srsm.IsRunning)
                {
                    bool ret = srsm.Reload(out rs);
                }
            }
        }