Parade Series - RTSP Cron (To Be Continued)

scheduleMain.cmd by Administrator

@D:
@CD D:\Conda\cron
:: =============================================================================
@schtasks /delete /tn "ParadingCam" /f
:: =============================================================================
@schtasks /create /sc hourly /mo 1 /st 00:00:05 /tn "ParadingCam" /tr "D:\Conda\parading\main.cmd"
:: =============================================================================

Hourly Stat

D:\Conda\parading\nginx-rtmp\html\data>tree
文件夹 PATH 列表
卷序列号为 BA16-BF79
D:.
└─10.10.20.234
    └─2024
        └─02
            ├─22
            │  ├─09
            │  ├─...
            │  └─23
            └─23
                ├─00
                ├─...
                ├─18
                └─19
@gfind . -name *.m3u8 | awk -F '/' '{ print "{\"server\":\""$2"\",\"date\":\""$3"-"$4"-"$5"\",\"hour\":\""$6"\",\"play\":\"/"$3"/"$4"/"$5"/"$6"/"$7"\"}" }' | jq -s "."

[
  {
    "server": "10.10.20.234",
    "date": "2024-02-22",
    "hour": "09",
    "play": "/2024/02/22/09/playlist.m3u8"
  },
  {
    "server": "10.10.20.234",
    "date": "2024-02-22",
    "hour": "10",
    "play": "/2024/02/22/10/playlist.m3u8"
  },
  ......
  {
    "server": "10.10.20.234",
    "date": "2024-02-23",
    "hour": "19",
    "play": "/2024/02/23/19/playlist.m3u8"
  }
]

scheduleStat.cmd by Administrator

@D:
@CD D:\Conda\cron
:: =============================================================================
@schtasks /delete /tn "ParadingStat" /f
:: =============================================================================
@schtasks /create /sc hourly /mo 1 /st 00:01:05 /tn "ParadingStat" /tr "D:\Conda\parading\stat.cmd"
:: =============================================================================

在这里插入图片描述

下载:DashLite UI Templates

下载:DOS命令封装服务工具

Sqlite3 nvr store ETL [ from tmp_store_log to sys_store_log ]

DROP TABLE IF EXISTS tmp_store_log;
CREATE TABLE tmp_store_log (
	ID        INTEGER PRIMARY KEY AUTOINCREMENT,
	Server    VARCHAR(16),
	Date      VARCHAR(16),
	Hour      VARCHAR(2),
	Play      VARCHAR(32),
	Duration  VARCHAR(16),
	DateInput DATETIME
);

DROP TABLE IF EXISTS sys_store_log;
CREATE TABLE sys_store_log (
	ID        INTEGER PRIMARY KEY AUTOINCREMENT,
	Server    VARCHAR(16),
	Date      VARCHAR(16),
	Hour      VARCHAR(2),
	Play      VARCHAR(32),
	Duration  VARCHAR(16),
	DateInput DATETIME
);
c:\Conda\parading-cam>sqlite3 store\nvr.db
SQLite version 3.33.0 2020-08-14 13:23:32
Enter ".help" for usage hints.
sqlite> .table
sys_store_log    tmp_store_log
sqlite>
sqlite> select * from sqlite_master where type = "table";
table|tmp_store_log|tmp_store_log|2|CREATE TABLE tmp_store_log (
  ID        INT          NOT NULL,
  Server    VARCHAR(16),
  Date      VARCHAR(16),
  Hour      VARCHAR(2),
  Play      VARCHAR(32),
  Duration  VARCHAR(16),
  DateInput DATETIME,
  PRIMARY KEY (ID)
)
table|sys_store_log|sys_store_log|6|CREATE TABLE sys_store_log (
  ID        INT          NOT NULL,
  Server    VARCHAR(16),
  Date      VARCHAR(16),
  Hour      VARCHAR(2),
  Play      VARCHAR(32),
  Duration  VARCHAR(16),
  DateInput DATETIME,
  PRIMARY KEY (ID)
)
sqlite>

NVR-ETL-Hourly T+0

@SET NVRDAT=store\nvr.db
@SET TMPSQL=store\tmp\%TTSS%.sql

@ECHO DELETE FROM tmp_store_log WHERE 1=1; > %TMPSQL%
@gfind nginx-rtmp\html\data -name *.m3u8 | awk -F '/' '{ print "INSERT INTO tmp_store_log(ID,Server,Date,Hour,Play,Duration,DateInput) VALUES ((SELECT IFNULL(MAX(ID), 0) + 1 FROM tmp_store_log), \""$2"\",\""$3"-"$4"-"$5"\",\""$6"\",\"/"$3"/"$4"/"$5"/"$6"/"$7"\", \"\", DATETIME(\"NOW\", \"LOCALTIME\"));" }' >> %TMPSQL%
@ECHO.
@ECHO NVR-ETL from %TMPSQL% to %NVRDAT%

@sqlite3 %NVRDAT% < %TMPSQL%
c:\Conda\parading-cam>etl-t0.cmd
========================================================================
NVR-ETL from store\tmp\1708846769.sql to store\nvr.db
------------------------------------------------------------------------

c:\Conda\parading-cam>sqlite3 store\nvr.db
SQLite version 3.33.0 2020-08-14 13:23:32
Enter ".help" for usage hints.
sqlite> select * from tmp_store_log;
1|10.10.20.234|2024-02-22|09|/2024/02/22/09/playlist.m3u8||2024-02-25 15:42:51
2|10.10.20.234|2024-02-22|10|/2024/02/22/10/playlist.m3u8||2024-02-25 15:42:51
3|10.10.20.234|2024-02-22|11|/2024/02/22/11/playlist.m3u8||2024-02-25 15:42:51
4|10.10.20.234|2024-02-22|12|/2024/02/22/12/playlist.m3u8||2024-02-25 15:42:51
5|10.10.20.234|2024-02-22|13|/2024/02/22/13/playlist.m3u8||2024-02-25 15:42:51
sqlite> .exit

NVR-ETL-Hourly T+1

INSERT INTO sys_store_log
SELECT NULL, 
       tm.Server,
       tm.Date,
	   tm.Hour,
	   tm.Play,
	   tm.Duration,
	   DATETIME("NOW", "LOCALTIME")
  FROM tmp_store_log tm
 WHERE 1=1
   AND NOT EXISTS (
	   SELECT tn.ID
	     FROM sys_store_log tn 
	    WHERE 1=1 
	      AND tn.Server = tm.Server AND tn.Date = tm.Date AND tn.Hour = tm.Hour
	 )
;

在这里插入图片描述

Reload Nginx File & RTMP Server

c:\Conda\parading-cam\nginx-rtmp>taskkill /f /t /im nginx.exe
成功: 已终止 PID 18700 (属于 PID 7104 子进程)的进程。
成功: 已终止 PID 7104 (属于 PID 2220 子进程)的进程。
成功: 已终止 PID 2220 (属于 PID 4832 子进程)的进程。
c:\Conda\parading-cam\nginx-rtmp>start nginx

在这里插入图片描述
JQuery & Bootstrap version

console.log($.fn.jquery);
console.log($.fn.tooltip.Constructor.VERSION);

在这里插入图片描述

var initTree = function() {
    var alpha = getTreeData();
    $('#camTree').treeview(
        {
            data: alpha,
            levels: 1,
            selectedColor: '#7E6DFA',
            selectedBackColor: '#EFECFE', // #EFECFE #767676
            showBorder: false,

            highlightSelected: true,

            multiSelect: false,
            showCheckbox: false,
            checkedIcon: 'icon ni ni-check-c',
            uncheckedIcon: 'icon ni ni-square-c',

            showTags: false,
            expandIcon: 'icon ni ni-plus-round',
            collapseIcon: 'icon ni ni-minus-round',

            nodeIcon: 'icon ni ni-video-fill',
            onNodeSelected: function(event, data) {
                camName = data.text;
                searchCam();
                console.log('onNodeSelected', camName);
            },
            onNodeUnselected: function(event, data) {
                camName = '';
                searchCam();
                console.log('onNodeUnselected', camName);
            }
        }
    );
};

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值