diff --git a/doc/conf/config.ini b/doc/conf/config.ini index b5e0b6d..40d4795 100644 --- a/doc/conf/config.ini +++ b/doc/conf/config.ini @@ -4,7 +4,7 @@ apiDebug=1 defaultSnap=./www/logo.png downloadRoot=./www -secret=0EcyrurlYHctuBbgue6zMUrI5aF6J8XO +secret=vcOhVPzPUgfcvDLLWTFjgBgVNrCkvi7P snapRoot=./www/snap/ [cluster] diff --git a/doc/conf/config.ini b/doc/conf/config.ini index b5e0b6d..40d4795 100644 --- a/doc/conf/config.ini +++ b/doc/conf/config.ini @@ -4,7 +4,7 @@ apiDebug=1 defaultSnap=./www/logo.png downloadRoot=./www -secret=0EcyrurlYHctuBbgue6zMUrI5aF6J8XO +secret=vcOhVPzPUgfcvDLLWTFjgBgVNrCkvi7P snapRoot=./www/snap/ [cluster] diff --git a/doc/conf/readme b/doc/conf/readme index 97eaa88..a075524 100644 --- a/doc/conf/readme +++ b/doc/conf/readme @@ -3,10 +3,48 @@ sudo firewall-cmd --permanent --zone=public --add-port=1935/tcp sudo firewall-cmd --permanent --zone=public --add-port=8554/tcp sudo firewall-cmd --permanent --zone=public --add-port=8443/tcp - +sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp sudo firewall-cmd --permanent --zone=public --add-port=8000/udp sudo firewall-cmd --permanent --zone=public --add-port=9000/udp sudo firewall-cmd --permanent --zone=public --add-port=30000-30050/udp + +#应用端口开启 +sudo firewall-cmd --permanent --zone=public --add-port=18080/tcp +sudo firewall-cmd --permanent --zone=public --add-port=5060/udp + +sudo firewall-cmd --permanent --zone=public --add-port=2003/tcp + +sudo firewall-cmd --permanent --zone=public --add-port=9060/tcp + +sudo firewall-cmd --permanent --zone=public --add-port=8090/tcp +sudo firewall-cmd --permanent --zone=public --add-port=6379/tcp + +sudo firewall-cmd --permanent --zone=public --add-port=6909/tcp # 重新载入防火墙规则 -sudo firewall-cmd --reload \ No newline at end of file +sudo firewall-cmd --reload +docker run -d -p 22110:10000 -p 22110:10000/udp -p 22111:1935 -p 22112:80 -p 22113:554 -p 22114:443 -p 22115:22115/udp -p 22116:9000/udp -p 22130-22160:22130-22160/udp --name zlmediakit zlmediakit/zlmediakit:master +docker run -d -p 22110:22110 -p 22110:22110/udp -p 22111:1935 -p 22112:80 -p 22113:554 -p 22114:443 -p 22115:22115/udp -p 22116:9000/udp -p 22130-22160:22130-22160/udp --name zlmediakit zlmediakit/zlmediakit:master +注: rtc 端口修改22115 webrtc rtpproxy端口修改为22110 timeoutSec大于摄像头心跳时间 +东方通rdb +thanos +Casic20311# +4、查看防火墙所有开放的端口 +firewall-cmd --zone=public --list-ports + + +docker run --name redis -d -p 6379:6379 5191b3931369 --requirepass casic203-! + +docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=casic203 -p 13306:3306 mysql:latest +139.198.19.235 + +rtsp://admin:admin@10.170.5.2:11793/11 +Ytj002 + +ytj004 rtsp://admin:admin@10.170.5.2:11794/11 + +video137 rtsp://admin:admin@10.170.5.2:11791/11 + +test rtsp://admin:admin@10.170.5.2:11790/11 + +docker run -d -p 22110:10000 -p 22110:10000/udp -p 22111:1935 -p 22112:80 -p 22113:554 -p 22114:443 -p 22115:8000/udp -p 22116:9000/udp -p 22130-22160:22130-22160/udp --cpu-shares 10 -m 16G --name zlmediakit zlmediakit/zlmediakit:master \ No newline at end of file diff --git a/doc/conf/config.ini b/doc/conf/config.ini index b5e0b6d..40d4795 100644 --- a/doc/conf/config.ini +++ b/doc/conf/config.ini @@ -4,7 +4,7 @@ apiDebug=1 defaultSnap=./www/logo.png downloadRoot=./www -secret=0EcyrurlYHctuBbgue6zMUrI5aF6J8XO +secret=vcOhVPzPUgfcvDLLWTFjgBgVNrCkvi7P snapRoot=./www/snap/ [cluster] diff --git a/doc/conf/readme b/doc/conf/readme index 97eaa88..a075524 100644 --- a/doc/conf/readme +++ b/doc/conf/readme @@ -3,10 +3,48 @@ sudo firewall-cmd --permanent --zone=public --add-port=1935/tcp sudo firewall-cmd --permanent --zone=public --add-port=8554/tcp sudo firewall-cmd --permanent --zone=public --add-port=8443/tcp - +sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp sudo firewall-cmd --permanent --zone=public --add-port=8000/udp sudo firewall-cmd --permanent --zone=public --add-port=9000/udp sudo firewall-cmd --permanent --zone=public --add-port=30000-30050/udp + +#应用端口开启 +sudo firewall-cmd --permanent --zone=public --add-port=18080/tcp +sudo firewall-cmd --permanent --zone=public --add-port=5060/udp + +sudo firewall-cmd --permanent --zone=public --add-port=2003/tcp + +sudo firewall-cmd --permanent --zone=public --add-port=9060/tcp + +sudo firewall-cmd --permanent --zone=public --add-port=8090/tcp +sudo firewall-cmd --permanent --zone=public --add-port=6379/tcp + +sudo firewall-cmd --permanent --zone=public --add-port=6909/tcp # 重新载入防火墙规则 -sudo firewall-cmd --reload \ No newline at end of file +sudo firewall-cmd --reload +docker run -d -p 22110:10000 -p 22110:10000/udp -p 22111:1935 -p 22112:80 -p 22113:554 -p 22114:443 -p 22115:22115/udp -p 22116:9000/udp -p 22130-22160:22130-22160/udp --name zlmediakit zlmediakit/zlmediakit:master +docker run -d -p 22110:22110 -p 22110:22110/udp -p 22111:1935 -p 22112:80 -p 22113:554 -p 22114:443 -p 22115:22115/udp -p 22116:9000/udp -p 22130-22160:22130-22160/udp --name zlmediakit zlmediakit/zlmediakit:master +注: rtc 端口修改22115 webrtc rtpproxy端口修改为22110 timeoutSec大于摄像头心跳时间 +东方通rdb +thanos +Casic20311# +4、查看防火墙所有开放的端口 +firewall-cmd --zone=public --list-ports + + +docker run --name redis -d -p 6379:6379 5191b3931369 --requirepass casic203-! + +docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=casic203 -p 13306:3306 mysql:latest +139.198.19.235 + +rtsp://admin:admin@10.170.5.2:11793/11 +Ytj002 + +ytj004 rtsp://admin:admin@10.170.5.2:11794/11 + +video137 rtsp://admin:admin@10.170.5.2:11791/11 + +test rtsp://admin:admin@10.170.5.2:11790/11 + +docker run -d -p 22110:10000 -p 22110:10000/udp -p 22111:1935 -p 22112:80 -p 22113:554 -p 22114:443 -p 22115:8000/udp -p 22116:9000/udp -p 22130-22160:22130-22160/udp --cpu-shares 10 -m 16G --name zlmediakit zlmediakit/zlmediakit:master \ No newline at end of file diff --git a/snap/34020000001110000002_34020000001320000001.jpg b/snap/34020000001110000002_34020000001320000001.jpg index 845aa6f..69e7a5e 100644 --- a/snap/34020000001110000002_34020000001320000001.jpg +++ b/snap/34020000001110000002_34020000001320000001.jpg Binary files differ diff --git a/doc/conf/config.ini b/doc/conf/config.ini index b5e0b6d..40d4795 100644 --- a/doc/conf/config.ini +++ b/doc/conf/config.ini @@ -4,7 +4,7 @@ apiDebug=1 defaultSnap=./www/logo.png downloadRoot=./www -secret=0EcyrurlYHctuBbgue6zMUrI5aF6J8XO +secret=vcOhVPzPUgfcvDLLWTFjgBgVNrCkvi7P snapRoot=./www/snap/ [cluster] diff --git a/doc/conf/readme b/doc/conf/readme index 97eaa88..a075524 100644 --- a/doc/conf/readme +++ b/doc/conf/readme @@ -3,10 +3,48 @@ sudo firewall-cmd --permanent --zone=public --add-port=1935/tcp sudo firewall-cmd --permanent --zone=public --add-port=8554/tcp sudo firewall-cmd --permanent --zone=public --add-port=8443/tcp - +sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp sudo firewall-cmd --permanent --zone=public --add-port=8000/udp sudo firewall-cmd --permanent --zone=public --add-port=9000/udp sudo firewall-cmd --permanent --zone=public --add-port=30000-30050/udp + +#应用端口开启 +sudo firewall-cmd --permanent --zone=public --add-port=18080/tcp +sudo firewall-cmd --permanent --zone=public --add-port=5060/udp + +sudo firewall-cmd --permanent --zone=public --add-port=2003/tcp + +sudo firewall-cmd --permanent --zone=public --add-port=9060/tcp + +sudo firewall-cmd --permanent --zone=public --add-port=8090/tcp +sudo firewall-cmd --permanent --zone=public --add-port=6379/tcp + +sudo firewall-cmd --permanent --zone=public --add-port=6909/tcp # 重新载入防火墙规则 -sudo firewall-cmd --reload \ No newline at end of file +sudo firewall-cmd --reload +docker run -d -p 22110:10000 -p 22110:10000/udp -p 22111:1935 -p 22112:80 -p 22113:554 -p 22114:443 -p 22115:22115/udp -p 22116:9000/udp -p 22130-22160:22130-22160/udp --name zlmediakit zlmediakit/zlmediakit:master +docker run -d -p 22110:22110 -p 22110:22110/udp -p 22111:1935 -p 22112:80 -p 22113:554 -p 22114:443 -p 22115:22115/udp -p 22116:9000/udp -p 22130-22160:22130-22160/udp --name zlmediakit zlmediakit/zlmediakit:master +注: rtc 端口修改22115 webrtc rtpproxy端口修改为22110 timeoutSec大于摄像头心跳时间 +东方通rdb +thanos +Casic20311# +4、查看防火墙所有开放的端口 +firewall-cmd --zone=public --list-ports + + +docker run --name redis -d -p 6379:6379 5191b3931369 --requirepass casic203-! + +docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=casic203 -p 13306:3306 mysql:latest +139.198.19.235 + +rtsp://admin:admin@10.170.5.2:11793/11 +Ytj002 + +ytj004 rtsp://admin:admin@10.170.5.2:11794/11 + +video137 rtsp://admin:admin@10.170.5.2:11791/11 + +test rtsp://admin:admin@10.170.5.2:11790/11 + +docker run -d -p 22110:10000 -p 22110:10000/udp -p 22111:1935 -p 22112:80 -p 22113:554 -p 22114:443 -p 22115:8000/udp -p 22116:9000/udp -p 22130-22160:22130-22160/udp --cpu-shares 10 -m 16G --name zlmediakit zlmediakit/zlmediakit:master \ No newline at end of file diff --git a/snap/34020000001110000002_34020000001320000001.jpg b/snap/34020000001110000002_34020000001320000001.jpg index 845aa6f..69e7a5e 100644 --- a/snap/34020000001110000002_34020000001320000001.jpg +++ b/snap/34020000001110000002_34020000001320000001.jpg Binary files differ diff --git a/snap/34020000001110000002_34020000001320000003.jpg b/snap/34020000001110000002_34020000001320000003.jpg index e7bb058..d6751ca 100644 --- a/snap/34020000001110000002_34020000001320000003.jpg +++ b/snap/34020000001110000002_34020000001320000003.jpg Binary files differ diff --git a/doc/conf/config.ini b/doc/conf/config.ini index b5e0b6d..40d4795 100644 --- a/doc/conf/config.ini +++ b/doc/conf/config.ini @@ -4,7 +4,7 @@ apiDebug=1 defaultSnap=./www/logo.png downloadRoot=./www -secret=0EcyrurlYHctuBbgue6zMUrI5aF6J8XO +secret=vcOhVPzPUgfcvDLLWTFjgBgVNrCkvi7P snapRoot=./www/snap/ [cluster] diff --git a/doc/conf/readme b/doc/conf/readme index 97eaa88..a075524 100644 --- a/doc/conf/readme +++ b/doc/conf/readme @@ -3,10 +3,48 @@ sudo firewall-cmd --permanent --zone=public --add-port=1935/tcp sudo firewall-cmd --permanent --zone=public --add-port=8554/tcp sudo firewall-cmd --permanent --zone=public --add-port=8443/tcp - +sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp sudo firewall-cmd --permanent --zone=public --add-port=8000/udp sudo firewall-cmd --permanent --zone=public --add-port=9000/udp sudo firewall-cmd --permanent --zone=public --add-port=30000-30050/udp + +#应用端口开启 +sudo firewall-cmd --permanent --zone=public --add-port=18080/tcp +sudo firewall-cmd --permanent --zone=public --add-port=5060/udp + +sudo firewall-cmd --permanent --zone=public --add-port=2003/tcp + +sudo firewall-cmd --permanent --zone=public --add-port=9060/tcp + +sudo firewall-cmd --permanent --zone=public --add-port=8090/tcp +sudo firewall-cmd --permanent --zone=public --add-port=6379/tcp + +sudo firewall-cmd --permanent --zone=public --add-port=6909/tcp # 重新载入防火墙规则 -sudo firewall-cmd --reload \ No newline at end of file +sudo firewall-cmd --reload +docker run -d -p 22110:10000 -p 22110:10000/udp -p 22111:1935 -p 22112:80 -p 22113:554 -p 22114:443 -p 22115:22115/udp -p 22116:9000/udp -p 22130-22160:22130-22160/udp --name zlmediakit zlmediakit/zlmediakit:master +docker run -d -p 22110:22110 -p 22110:22110/udp -p 22111:1935 -p 22112:80 -p 22113:554 -p 22114:443 -p 22115:22115/udp -p 22116:9000/udp -p 22130-22160:22130-22160/udp --name zlmediakit zlmediakit/zlmediakit:master +注: rtc 端口修改22115 webrtc rtpproxy端口修改为22110 timeoutSec大于摄像头心跳时间 +东方通rdb +thanos +Casic20311# +4、查看防火墙所有开放的端口 +firewall-cmd --zone=public --list-ports + + +docker run --name redis -d -p 6379:6379 5191b3931369 --requirepass casic203-! + +docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=casic203 -p 13306:3306 mysql:latest +139.198.19.235 + +rtsp://admin:admin@10.170.5.2:11793/11 +Ytj002 + +ytj004 rtsp://admin:admin@10.170.5.2:11794/11 + +video137 rtsp://admin:admin@10.170.5.2:11791/11 + +test rtsp://admin:admin@10.170.5.2:11790/11 + +docker run -d -p 22110:10000 -p 22110:10000/udp -p 22111:1935 -p 22112:80 -p 22113:554 -p 22114:443 -p 22115:8000/udp -p 22116:9000/udp -p 22130-22160:22130-22160/udp --cpu-shares 10 -m 16G --name zlmediakit zlmediakit/zlmediakit:master \ No newline at end of file diff --git a/snap/34020000001110000002_34020000001320000001.jpg b/snap/34020000001110000002_34020000001320000001.jpg index 845aa6f..69e7a5e 100644 --- a/snap/34020000001110000002_34020000001320000001.jpg +++ b/snap/34020000001110000002_34020000001320000001.jpg Binary files differ diff --git a/snap/34020000001110000002_34020000001320000003.jpg b/snap/34020000001110000002_34020000001320000003.jpg index e7bb058..d6751ca 100644 --- a/snap/34020000001110000002_34020000001320000003.jpg +++ b/snap/34020000001110000002_34020000001320000003.jpg Binary files differ diff --git a/snap/34020000001320000001_34020000001320000001.jpg b/snap/34020000001320000001_34020000001320000001.jpg index 142578b..dd1379c 100644 --- a/snap/34020000001320000001_34020000001320000001.jpg +++ b/snap/34020000001320000001_34020000001320000001.jpg Binary files differ diff --git a/doc/conf/config.ini b/doc/conf/config.ini index b5e0b6d..40d4795 100644 --- a/doc/conf/config.ini +++ b/doc/conf/config.ini @@ -4,7 +4,7 @@ apiDebug=1 defaultSnap=./www/logo.png downloadRoot=./www -secret=0EcyrurlYHctuBbgue6zMUrI5aF6J8XO +secret=vcOhVPzPUgfcvDLLWTFjgBgVNrCkvi7P snapRoot=./www/snap/ [cluster] diff --git a/doc/conf/readme b/doc/conf/readme index 97eaa88..a075524 100644 --- a/doc/conf/readme +++ b/doc/conf/readme @@ -3,10 +3,48 @@ sudo firewall-cmd --permanent --zone=public --add-port=1935/tcp sudo firewall-cmd --permanent --zone=public --add-port=8554/tcp sudo firewall-cmd --permanent --zone=public --add-port=8443/tcp - +sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp sudo firewall-cmd --permanent --zone=public --add-port=8000/udp sudo firewall-cmd --permanent --zone=public --add-port=9000/udp sudo firewall-cmd --permanent --zone=public --add-port=30000-30050/udp + +#应用端口开启 +sudo firewall-cmd --permanent --zone=public --add-port=18080/tcp +sudo firewall-cmd --permanent --zone=public --add-port=5060/udp + +sudo firewall-cmd --permanent --zone=public --add-port=2003/tcp + +sudo firewall-cmd --permanent --zone=public --add-port=9060/tcp + +sudo firewall-cmd --permanent --zone=public --add-port=8090/tcp +sudo firewall-cmd --permanent --zone=public --add-port=6379/tcp + +sudo firewall-cmd --permanent --zone=public --add-port=6909/tcp # 重新载入防火墙规则 -sudo firewall-cmd --reload \ No newline at end of file +sudo firewall-cmd --reload +docker run -d -p 22110:10000 -p 22110:10000/udp -p 22111:1935 -p 22112:80 -p 22113:554 -p 22114:443 -p 22115:22115/udp -p 22116:9000/udp -p 22130-22160:22130-22160/udp --name zlmediakit zlmediakit/zlmediakit:master +docker run -d -p 22110:22110 -p 22110:22110/udp -p 22111:1935 -p 22112:80 -p 22113:554 -p 22114:443 -p 22115:22115/udp -p 22116:9000/udp -p 22130-22160:22130-22160/udp --name zlmediakit zlmediakit/zlmediakit:master +注: rtc 端口修改22115 webrtc rtpproxy端口修改为22110 timeoutSec大于摄像头心跳时间 +东方通rdb +thanos +Casic20311# +4、查看防火墙所有开放的端口 +firewall-cmd --zone=public --list-ports + + +docker run --name redis -d -p 6379:6379 5191b3931369 --requirepass casic203-! + +docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=casic203 -p 13306:3306 mysql:latest +139.198.19.235 + +rtsp://admin:admin@10.170.5.2:11793/11 +Ytj002 + +ytj004 rtsp://admin:admin@10.170.5.2:11794/11 + +video137 rtsp://admin:admin@10.170.5.2:11791/11 + +test rtsp://admin:admin@10.170.5.2:11790/11 + +docker run -d -p 22110:10000 -p 22110:10000/udp -p 22111:1935 -p 22112:80 -p 22113:554 -p 22114:443 -p 22115:8000/udp -p 22116:9000/udp -p 22130-22160:22130-22160/udp --cpu-shares 10 -m 16G --name zlmediakit zlmediakit/zlmediakit:master \ No newline at end of file diff --git a/snap/34020000001110000002_34020000001320000001.jpg b/snap/34020000001110000002_34020000001320000001.jpg index 845aa6f..69e7a5e 100644 --- a/snap/34020000001110000002_34020000001320000001.jpg +++ b/snap/34020000001110000002_34020000001320000001.jpg Binary files differ diff --git a/snap/34020000001110000002_34020000001320000003.jpg b/snap/34020000001110000002_34020000001320000003.jpg index e7bb058..d6751ca 100644 --- a/snap/34020000001110000002_34020000001320000003.jpg +++ b/snap/34020000001110000002_34020000001320000003.jpg Binary files differ diff --git a/snap/34020000001320000001_34020000001320000001.jpg b/snap/34020000001320000001_34020000001320000001.jpg index 142578b..dd1379c 100644 --- a/snap/34020000001320000001_34020000001320000001.jpg +++ b/snap/34020000001320000001_34020000001320000001.jpg Binary files differ diff --git a/snap/41010500002000000003_34020000001110000013.jpg b/snap/41010500002000000003_34020000001110000013.jpg index 7163cbb..dd1379c 100644 --- a/snap/41010500002000000003_34020000001110000013.jpg +++ b/snap/41010500002000000003_34020000001110000013.jpg Binary files differ diff --git a/doc/conf/config.ini b/doc/conf/config.ini index b5e0b6d..40d4795 100644 --- a/doc/conf/config.ini +++ b/doc/conf/config.ini @@ -4,7 +4,7 @@ apiDebug=1 defaultSnap=./www/logo.png downloadRoot=./www -secret=0EcyrurlYHctuBbgue6zMUrI5aF6J8XO +secret=vcOhVPzPUgfcvDLLWTFjgBgVNrCkvi7P snapRoot=./www/snap/ [cluster] diff --git a/doc/conf/readme b/doc/conf/readme index 97eaa88..a075524 100644 --- a/doc/conf/readme +++ b/doc/conf/readme @@ -3,10 +3,48 @@ sudo firewall-cmd --permanent --zone=public --add-port=1935/tcp sudo firewall-cmd --permanent --zone=public --add-port=8554/tcp sudo firewall-cmd --permanent --zone=public --add-port=8443/tcp - +sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp sudo firewall-cmd --permanent --zone=public --add-port=8000/udp sudo firewall-cmd --permanent --zone=public --add-port=9000/udp sudo firewall-cmd --permanent --zone=public --add-port=30000-30050/udp + +#应用端口开启 +sudo firewall-cmd --permanent --zone=public --add-port=18080/tcp +sudo firewall-cmd --permanent --zone=public --add-port=5060/udp + +sudo firewall-cmd --permanent --zone=public --add-port=2003/tcp + +sudo firewall-cmd --permanent --zone=public --add-port=9060/tcp + +sudo firewall-cmd --permanent --zone=public --add-port=8090/tcp +sudo firewall-cmd --permanent --zone=public --add-port=6379/tcp + +sudo firewall-cmd --permanent --zone=public --add-port=6909/tcp # 重新载入防火墙规则 -sudo firewall-cmd --reload \ No newline at end of file +sudo firewall-cmd --reload +docker run -d -p 22110:10000 -p 22110:10000/udp -p 22111:1935 -p 22112:80 -p 22113:554 -p 22114:443 -p 22115:22115/udp -p 22116:9000/udp -p 22130-22160:22130-22160/udp --name zlmediakit zlmediakit/zlmediakit:master +docker run -d -p 22110:22110 -p 22110:22110/udp -p 22111:1935 -p 22112:80 -p 22113:554 -p 22114:443 -p 22115:22115/udp -p 22116:9000/udp -p 22130-22160:22130-22160/udp --name zlmediakit zlmediakit/zlmediakit:master +注: rtc 端口修改22115 webrtc rtpproxy端口修改为22110 timeoutSec大于摄像头心跳时间 +东方通rdb +thanos +Casic20311# +4、查看防火墙所有开放的端口 +firewall-cmd --zone=public --list-ports + + +docker run --name redis -d -p 6379:6379 5191b3931369 --requirepass casic203-! + +docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=casic203 -p 13306:3306 mysql:latest +139.198.19.235 + +rtsp://admin:admin@10.170.5.2:11793/11 +Ytj002 + +ytj004 rtsp://admin:admin@10.170.5.2:11794/11 + +video137 rtsp://admin:admin@10.170.5.2:11791/11 + +test rtsp://admin:admin@10.170.5.2:11790/11 + +docker run -d -p 22110:10000 -p 22110:10000/udp -p 22111:1935 -p 22112:80 -p 22113:554 -p 22114:443 -p 22115:8000/udp -p 22116:9000/udp -p 22130-22160:22130-22160/udp --cpu-shares 10 -m 16G --name zlmediakit zlmediakit/zlmediakit:master \ No newline at end of file diff --git a/snap/34020000001110000002_34020000001320000001.jpg b/snap/34020000001110000002_34020000001320000001.jpg index 845aa6f..69e7a5e 100644 --- a/snap/34020000001110000002_34020000001320000001.jpg +++ b/snap/34020000001110000002_34020000001320000001.jpg Binary files differ diff --git a/snap/34020000001110000002_34020000001320000003.jpg b/snap/34020000001110000002_34020000001320000003.jpg index e7bb058..d6751ca 100644 --- a/snap/34020000001110000002_34020000001320000003.jpg +++ b/snap/34020000001110000002_34020000001320000003.jpg Binary files differ diff --git a/snap/34020000001320000001_34020000001320000001.jpg b/snap/34020000001320000001_34020000001320000001.jpg index 142578b..dd1379c 100644 --- a/snap/34020000001320000001_34020000001320000001.jpg +++ b/snap/34020000001320000001_34020000001320000001.jpg Binary files differ diff --git a/snap/41010500002000000003_34020000001110000013.jpg b/snap/41010500002000000003_34020000001110000013.jpg index 7163cbb..dd1379c 100644 --- a/snap/41010500002000000003_34020000001110000013.jpg +++ b/snap/41010500002000000003_34020000001110000013.jpg Binary files differ diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java index c91223e..b4ca146 100644 --- a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java +++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java @@ -16,6 +16,7 @@ import com.genersoft.iot.vmp.media.event.media.*; import com.genersoft.iot.vmp.media.event.mediaServer.MediaSendRtpStoppedEvent; import com.genersoft.iot.vmp.media.service.IMediaServerService; +import com.genersoft.iot.vmp.media.util.CasicAuthUtils; import com.genersoft.iot.vmp.media.zlm.dto.ZLMServerConfig; import com.genersoft.iot.vmp.media.zlm.dto.hook.*; import com.genersoft.iot.vmp.media.zlm.event.HookZlmServerKeepaliveEvent; @@ -29,6 +30,7 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.beans.factory.annotation.Value; import org.springframework.context.ApplicationEventPublisher; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; @@ -136,12 +138,16 @@ event.setMediaServerItem(mediaServerItem); applicationEventPublisher.publishEvent(event); } - }catch (Exception e) { + } catch (Exception e) { logger.info("[ZLM-HOOK-心跳] 发送通知失败 ", e); } return HookResult.SUCCESS(); } + @Value("${casic.auth}") + private Boolean isAuth; + @Value("${casic.url}") + private String url; /** * 播放器鉴权事件,rtsp/rtmp/http-flv/ws-flv/hls的播放都将触发此鉴权事件。 */ @@ -150,6 +156,25 @@ public HookResult onPlay(@RequestBody OnPlayHookParam param) { Map paramMap = MediaServerUtils.urlParamToMap(param.getParams()); + if (isAuth) { + if (!paramMap.containsKey("token")) { + logger.info("[ZLM HOOK] 业务鉴权token不存在!"); + return new HookResult(401, "Unauthorized"); + }else{ + try{ + CasicAuthUtils casicAuthUtils = new CasicAuthUtils(); + JSONObject jsonObject = casicAuthUtils.sendPost(url+"?token="+paramMap.get("token"),null,null,null); + boolean flag = jsonObject.containsKey("code")&&0==jsonObject.getInteger("code"); + if(!flag){ + logger.info("[ZLM HOOK] 业务鉴权token失效!"); + return new HookResult(401, "Unauthorized"); + } + }catch (Exception e){ + logger.error("[ZLM HOOK] 业务鉴权失败:{}", e.getMessage()); + return new HookResult(401, "验证失败,请查看鉴权服务!"); + } + } + } // 对于播放流进行鉴权 boolean authenticateResult = mediaService.authenticatePlay(param.getApp(), param.getStream(), paramMap.get("callId")); if (!authenticateResult) { @@ -183,7 +208,7 @@ HookResultForOnPublish successResult = HookResultForOnPublish.getInstance(resultForOnPublish); logger.info("[ZLM HOOK]推流鉴权 响应:{}->{}->>>>{}", param.getMediaServerId(), param, successResult); return successResult; - }else { + } else { HookResultForOnPublish fail = HookResultForOnPublish.Fail(); logger.info("[ZLM HOOK]推流鉴权 响应:{}->{}->>>>{}", param.getMediaServerId(), param, fail); return fail; @@ -199,6 +224,7 @@ // System.out.println(11); // return HookResult.SUCCESS(); // } + /** * rtsp/rtmp流注册或注销时触发此事件;此事件对回复不敏感。 */ @@ -212,7 +238,7 @@ } if (!ObjectUtils.isEmpty(mediaServer.getTranscodeSuffix()) && !"null".equalsIgnoreCase(mediaServer.getTranscodeSuffix()) - && param.getStream().endsWith(mediaServer.getTranscodeSuffix()) ) { + && param.getStream().endsWith(mediaServer.getTranscodeSuffix())) { return HookResult.SUCCESS(); } if (param.getSchema().equalsIgnoreCase("rtsp")) { @@ -248,8 +274,8 @@ } if (!ObjectUtils.isEmpty(mediaInfo.getTranscodeSuffix()) && !"null".equalsIgnoreCase(mediaInfo.getTranscodeSuffix()) - && param.getStream().endsWith(mediaInfo.getTranscodeSuffix()) ) { - param.setStream(param.getStream().substring(0, param.getStream().lastIndexOf(mediaInfo.getTranscodeSuffix()) -1 )); + && param.getStream().endsWith(mediaInfo.getTranscodeSuffix())) { + param.setStream(param.getStream().substring(0, param.getStream().lastIndexOf(mediaInfo.getTranscodeSuffix()) - 1)); } JSONObject ret = new JSONObject(); @@ -295,7 +321,7 @@ event.setMediaServerItem(mediaServerItem); applicationEventPublisher.publishEvent(event); } - }catch (Exception e) { + } catch (Exception e) { logger.info("[ZLM-HOOK-ZLM启动] 发送通知失败 ", e); } @@ -322,7 +348,7 @@ event.setMediaServer(mediaServerItem); applicationEventPublisher.publishEvent(event); } - }catch (Exception e) { + } catch (Exception e) { logger.info("[ZLM-HOOK-rtp发送关闭] 发送通知失败 ", e); } @@ -335,7 +361,7 @@ @ResponseBody @PostMapping(value = "/on_rtp_server_timeout", produces = "application/json;charset=UTF-8") public HookResult onRtpServerTimeout(@RequestBody OnRtpServerTimeoutHookParam - param) { + param) { logger.info("[ZLM HOOK] rtpServer收流超时:{}->{}({})", param.getMediaServerId(), param.getStream_id(), param.getSsrc()); try { @@ -346,7 +372,7 @@ event.setApp("rtp"); applicationEventPublisher.publishEvent(event); } - }catch (Exception e) { + } catch (Exception e) { logger.info("[ZLM-HOOK-rtpServer收流超时] 发送通知失败 ", e); } @@ -368,7 +394,7 @@ event.setMediaServer(mediaServerItem); applicationEventPublisher.publishEvent(event); } - }catch (Exception e) { + } catch (Exception e) { logger.info("[ZLM-HOOK-rtpServer收流超时] 发送通知失败 ", e); } diff --git a/doc/conf/config.ini b/doc/conf/config.ini index b5e0b6d..40d4795 100644 --- a/doc/conf/config.ini +++ b/doc/conf/config.ini @@ -4,7 +4,7 @@ apiDebug=1 defaultSnap=./www/logo.png downloadRoot=./www -secret=0EcyrurlYHctuBbgue6zMUrI5aF6J8XO +secret=vcOhVPzPUgfcvDLLWTFjgBgVNrCkvi7P snapRoot=./www/snap/ [cluster] diff --git a/doc/conf/readme b/doc/conf/readme index 97eaa88..a075524 100644 --- a/doc/conf/readme +++ b/doc/conf/readme @@ -3,10 +3,48 @@ sudo firewall-cmd --permanent --zone=public --add-port=1935/tcp sudo firewall-cmd --permanent --zone=public --add-port=8554/tcp sudo firewall-cmd --permanent --zone=public --add-port=8443/tcp - +sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp sudo firewall-cmd --permanent --zone=public --add-port=8000/udp sudo firewall-cmd --permanent --zone=public --add-port=9000/udp sudo firewall-cmd --permanent --zone=public --add-port=30000-30050/udp + +#应用端口开启 +sudo firewall-cmd --permanent --zone=public --add-port=18080/tcp +sudo firewall-cmd --permanent --zone=public --add-port=5060/udp + +sudo firewall-cmd --permanent --zone=public --add-port=2003/tcp + +sudo firewall-cmd --permanent --zone=public --add-port=9060/tcp + +sudo firewall-cmd --permanent --zone=public --add-port=8090/tcp +sudo firewall-cmd --permanent --zone=public --add-port=6379/tcp + +sudo firewall-cmd --permanent --zone=public --add-port=6909/tcp # 重新载入防火墙规则 -sudo firewall-cmd --reload \ No newline at end of file +sudo firewall-cmd --reload +docker run -d -p 22110:10000 -p 22110:10000/udp -p 22111:1935 -p 22112:80 -p 22113:554 -p 22114:443 -p 22115:22115/udp -p 22116:9000/udp -p 22130-22160:22130-22160/udp --name zlmediakit zlmediakit/zlmediakit:master +docker run -d -p 22110:22110 -p 22110:22110/udp -p 22111:1935 -p 22112:80 -p 22113:554 -p 22114:443 -p 22115:22115/udp -p 22116:9000/udp -p 22130-22160:22130-22160/udp --name zlmediakit zlmediakit/zlmediakit:master +注: rtc 端口修改22115 webrtc rtpproxy端口修改为22110 timeoutSec大于摄像头心跳时间 +东方通rdb +thanos +Casic20311# +4、查看防火墙所有开放的端口 +firewall-cmd --zone=public --list-ports + + +docker run --name redis -d -p 6379:6379 5191b3931369 --requirepass casic203-! + +docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=casic203 -p 13306:3306 mysql:latest +139.198.19.235 + +rtsp://admin:admin@10.170.5.2:11793/11 +Ytj002 + +ytj004 rtsp://admin:admin@10.170.5.2:11794/11 + +video137 rtsp://admin:admin@10.170.5.2:11791/11 + +test rtsp://admin:admin@10.170.5.2:11790/11 + +docker run -d -p 22110:10000 -p 22110:10000/udp -p 22111:1935 -p 22112:80 -p 22113:554 -p 22114:443 -p 22115:8000/udp -p 22116:9000/udp -p 22130-22160:22130-22160/udp --cpu-shares 10 -m 16G --name zlmediakit zlmediakit/zlmediakit:master \ No newline at end of file diff --git a/snap/34020000001110000002_34020000001320000001.jpg b/snap/34020000001110000002_34020000001320000001.jpg index 845aa6f..69e7a5e 100644 --- a/snap/34020000001110000002_34020000001320000001.jpg +++ b/snap/34020000001110000002_34020000001320000001.jpg Binary files differ diff --git a/snap/34020000001110000002_34020000001320000003.jpg b/snap/34020000001110000002_34020000001320000003.jpg index e7bb058..d6751ca 100644 --- a/snap/34020000001110000002_34020000001320000003.jpg +++ b/snap/34020000001110000002_34020000001320000003.jpg Binary files differ diff --git a/snap/34020000001320000001_34020000001320000001.jpg b/snap/34020000001320000001_34020000001320000001.jpg index 142578b..dd1379c 100644 --- a/snap/34020000001320000001_34020000001320000001.jpg +++ b/snap/34020000001320000001_34020000001320000001.jpg Binary files differ diff --git a/snap/41010500002000000003_34020000001110000013.jpg b/snap/41010500002000000003_34020000001110000013.jpg index 7163cbb..dd1379c 100644 --- a/snap/41010500002000000003_34020000001110000013.jpg +++ b/snap/41010500002000000003_34020000001110000013.jpg Binary files differ diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java index c91223e..b4ca146 100644 --- a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java +++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java @@ -16,6 +16,7 @@ import com.genersoft.iot.vmp.media.event.media.*; import com.genersoft.iot.vmp.media.event.mediaServer.MediaSendRtpStoppedEvent; import com.genersoft.iot.vmp.media.service.IMediaServerService; +import com.genersoft.iot.vmp.media.util.CasicAuthUtils; import com.genersoft.iot.vmp.media.zlm.dto.ZLMServerConfig; import com.genersoft.iot.vmp.media.zlm.dto.hook.*; import com.genersoft.iot.vmp.media.zlm.event.HookZlmServerKeepaliveEvent; @@ -29,6 +30,7 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.beans.factory.annotation.Value; import org.springframework.context.ApplicationEventPublisher; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; @@ -136,12 +138,16 @@ event.setMediaServerItem(mediaServerItem); applicationEventPublisher.publishEvent(event); } - }catch (Exception e) { + } catch (Exception e) { logger.info("[ZLM-HOOK-心跳] 发送通知失败 ", e); } return HookResult.SUCCESS(); } + @Value("${casic.auth}") + private Boolean isAuth; + @Value("${casic.url}") + private String url; /** * 播放器鉴权事件,rtsp/rtmp/http-flv/ws-flv/hls的播放都将触发此鉴权事件。 */ @@ -150,6 +156,25 @@ public HookResult onPlay(@RequestBody OnPlayHookParam param) { Map paramMap = MediaServerUtils.urlParamToMap(param.getParams()); + if (isAuth) { + if (!paramMap.containsKey("token")) { + logger.info("[ZLM HOOK] 业务鉴权token不存在!"); + return new HookResult(401, "Unauthorized"); + }else{ + try{ + CasicAuthUtils casicAuthUtils = new CasicAuthUtils(); + JSONObject jsonObject = casicAuthUtils.sendPost(url+"?token="+paramMap.get("token"),null,null,null); + boolean flag = jsonObject.containsKey("code")&&0==jsonObject.getInteger("code"); + if(!flag){ + logger.info("[ZLM HOOK] 业务鉴权token失效!"); + return new HookResult(401, "Unauthorized"); + } + }catch (Exception e){ + logger.error("[ZLM HOOK] 业务鉴权失败:{}", e.getMessage()); + return new HookResult(401, "验证失败,请查看鉴权服务!"); + } + } + } // 对于播放流进行鉴权 boolean authenticateResult = mediaService.authenticatePlay(param.getApp(), param.getStream(), paramMap.get("callId")); if (!authenticateResult) { @@ -183,7 +208,7 @@ HookResultForOnPublish successResult = HookResultForOnPublish.getInstance(resultForOnPublish); logger.info("[ZLM HOOK]推流鉴权 响应:{}->{}->>>>{}", param.getMediaServerId(), param, successResult); return successResult; - }else { + } else { HookResultForOnPublish fail = HookResultForOnPublish.Fail(); logger.info("[ZLM HOOK]推流鉴权 响应:{}->{}->>>>{}", param.getMediaServerId(), param, fail); return fail; @@ -199,6 +224,7 @@ // System.out.println(11); // return HookResult.SUCCESS(); // } + /** * rtsp/rtmp流注册或注销时触发此事件;此事件对回复不敏感。 */ @@ -212,7 +238,7 @@ } if (!ObjectUtils.isEmpty(mediaServer.getTranscodeSuffix()) && !"null".equalsIgnoreCase(mediaServer.getTranscodeSuffix()) - && param.getStream().endsWith(mediaServer.getTranscodeSuffix()) ) { + && param.getStream().endsWith(mediaServer.getTranscodeSuffix())) { return HookResult.SUCCESS(); } if (param.getSchema().equalsIgnoreCase("rtsp")) { @@ -248,8 +274,8 @@ } if (!ObjectUtils.isEmpty(mediaInfo.getTranscodeSuffix()) && !"null".equalsIgnoreCase(mediaInfo.getTranscodeSuffix()) - && param.getStream().endsWith(mediaInfo.getTranscodeSuffix()) ) { - param.setStream(param.getStream().substring(0, param.getStream().lastIndexOf(mediaInfo.getTranscodeSuffix()) -1 )); + && param.getStream().endsWith(mediaInfo.getTranscodeSuffix())) { + param.setStream(param.getStream().substring(0, param.getStream().lastIndexOf(mediaInfo.getTranscodeSuffix()) - 1)); } JSONObject ret = new JSONObject(); @@ -295,7 +321,7 @@ event.setMediaServerItem(mediaServerItem); applicationEventPublisher.publishEvent(event); } - }catch (Exception e) { + } catch (Exception e) { logger.info("[ZLM-HOOK-ZLM启动] 发送通知失败 ", e); } @@ -322,7 +348,7 @@ event.setMediaServer(mediaServerItem); applicationEventPublisher.publishEvent(event); } - }catch (Exception e) { + } catch (Exception e) { logger.info("[ZLM-HOOK-rtp发送关闭] 发送通知失败 ", e); } @@ -335,7 +361,7 @@ @ResponseBody @PostMapping(value = "/on_rtp_server_timeout", produces = "application/json;charset=UTF-8") public HookResult onRtpServerTimeout(@RequestBody OnRtpServerTimeoutHookParam - param) { + param) { logger.info("[ZLM HOOK] rtpServer收流超时:{}->{}({})", param.getMediaServerId(), param.getStream_id(), param.getSsrc()); try { @@ -346,7 +372,7 @@ event.setApp("rtp"); applicationEventPublisher.publishEvent(event); } - }catch (Exception e) { + } catch (Exception e) { logger.info("[ZLM-HOOK-rtpServer收流超时] 发送通知失败 ", e); } @@ -368,7 +394,7 @@ event.setMediaServer(mediaServerItem); applicationEventPublisher.publishEvent(event); } - }catch (Exception e) { + } catch (Exception e) { logger.info("[ZLM-HOOK-rtpServer收流超时] 发送通知失败 ", e); } diff --git a/src/main/resources/application-wvp.yml b/src/main/resources/application-wvp.yml index 85cc0d6..454b646 100644 --- a/src/main/resources/application-wvp.yml +++ b/src/main/resources/application-wvp.yml @@ -96,11 +96,12 @@ # 启用多端口模式, 多端口模式使用端口区分每路流,兼容性更好。 单端口使用流的ssrc区分, 点播超时建议使用多端口测试 rtp: # [可选] 是否启用多端口模式, 开启后会在portRange范围内选择端口用于媒体流传输 - enable: true + enable: false # [可选] 在此范围内选择端口用于媒体流传输, 必须提前在zlm上配置该属性,不然自动配置此属性可能不成功 port-range: 22130,22160 # 端口范围 # [可选] 国标级联在此范围内选择端口发送媒体流, send-port-range: 22120,22125 # 端口范围 + proxy-port: 22110 # 录像辅助服务, 部署此服务可以实现zlm录像的管理与下载, 0 表示不使用 record-assist-port: 0 # [根据业务需求配置] @@ -114,7 +115,7 @@ # 保存移动位置历史轨迹:true:保留历史数据,false:仅保留最后的位置(默认) save-position-history: false # 点播/录像回放 等待超时时间,单位:毫秒 - play-timeout: 180000 + play-timeout: 380000 # 上级点播等待超时时间,单位:毫秒 platform-play-timeout: 600000 # 是否开启接口鉴权 diff --git a/doc/conf/config.ini b/doc/conf/config.ini index b5e0b6d..40d4795 100644 --- a/doc/conf/config.ini +++ b/doc/conf/config.ini @@ -4,7 +4,7 @@ apiDebug=1 defaultSnap=./www/logo.png downloadRoot=./www -secret=0EcyrurlYHctuBbgue6zMUrI5aF6J8XO +secret=vcOhVPzPUgfcvDLLWTFjgBgVNrCkvi7P snapRoot=./www/snap/ [cluster] diff --git a/doc/conf/readme b/doc/conf/readme index 97eaa88..a075524 100644 --- a/doc/conf/readme +++ b/doc/conf/readme @@ -3,10 +3,48 @@ sudo firewall-cmd --permanent --zone=public --add-port=1935/tcp sudo firewall-cmd --permanent --zone=public --add-port=8554/tcp sudo firewall-cmd --permanent --zone=public --add-port=8443/tcp - +sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp sudo firewall-cmd --permanent --zone=public --add-port=8000/udp sudo firewall-cmd --permanent --zone=public --add-port=9000/udp sudo firewall-cmd --permanent --zone=public --add-port=30000-30050/udp + +#应用端口开启 +sudo firewall-cmd --permanent --zone=public --add-port=18080/tcp +sudo firewall-cmd --permanent --zone=public --add-port=5060/udp + +sudo firewall-cmd --permanent --zone=public --add-port=2003/tcp + +sudo firewall-cmd --permanent --zone=public --add-port=9060/tcp + +sudo firewall-cmd --permanent --zone=public --add-port=8090/tcp +sudo firewall-cmd --permanent --zone=public --add-port=6379/tcp + +sudo firewall-cmd --permanent --zone=public --add-port=6909/tcp # 重新载入防火墙规则 -sudo firewall-cmd --reload \ No newline at end of file +sudo firewall-cmd --reload +docker run -d -p 22110:10000 -p 22110:10000/udp -p 22111:1935 -p 22112:80 -p 22113:554 -p 22114:443 -p 22115:22115/udp -p 22116:9000/udp -p 22130-22160:22130-22160/udp --name zlmediakit zlmediakit/zlmediakit:master +docker run -d -p 22110:22110 -p 22110:22110/udp -p 22111:1935 -p 22112:80 -p 22113:554 -p 22114:443 -p 22115:22115/udp -p 22116:9000/udp -p 22130-22160:22130-22160/udp --name zlmediakit zlmediakit/zlmediakit:master +注: rtc 端口修改22115 webrtc rtpproxy端口修改为22110 timeoutSec大于摄像头心跳时间 +东方通rdb +thanos +Casic20311# +4、查看防火墙所有开放的端口 +firewall-cmd --zone=public --list-ports + + +docker run --name redis -d -p 6379:6379 5191b3931369 --requirepass casic203-! + +docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=casic203 -p 13306:3306 mysql:latest +139.198.19.235 + +rtsp://admin:admin@10.170.5.2:11793/11 +Ytj002 + +ytj004 rtsp://admin:admin@10.170.5.2:11794/11 + +video137 rtsp://admin:admin@10.170.5.2:11791/11 + +test rtsp://admin:admin@10.170.5.2:11790/11 + +docker run -d -p 22110:10000 -p 22110:10000/udp -p 22111:1935 -p 22112:80 -p 22113:554 -p 22114:443 -p 22115:8000/udp -p 22116:9000/udp -p 22130-22160:22130-22160/udp --cpu-shares 10 -m 16G --name zlmediakit zlmediakit/zlmediakit:master \ No newline at end of file diff --git a/snap/34020000001110000002_34020000001320000001.jpg b/snap/34020000001110000002_34020000001320000001.jpg index 845aa6f..69e7a5e 100644 --- a/snap/34020000001110000002_34020000001320000001.jpg +++ b/snap/34020000001110000002_34020000001320000001.jpg Binary files differ diff --git a/snap/34020000001110000002_34020000001320000003.jpg b/snap/34020000001110000002_34020000001320000003.jpg index e7bb058..d6751ca 100644 --- a/snap/34020000001110000002_34020000001320000003.jpg +++ b/snap/34020000001110000002_34020000001320000003.jpg Binary files differ diff --git a/snap/34020000001320000001_34020000001320000001.jpg b/snap/34020000001320000001_34020000001320000001.jpg index 142578b..dd1379c 100644 --- a/snap/34020000001320000001_34020000001320000001.jpg +++ b/snap/34020000001320000001_34020000001320000001.jpg Binary files differ diff --git a/snap/41010500002000000003_34020000001110000013.jpg b/snap/41010500002000000003_34020000001110000013.jpg index 7163cbb..dd1379c 100644 --- a/snap/41010500002000000003_34020000001110000013.jpg +++ b/snap/41010500002000000003_34020000001110000013.jpg Binary files differ diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java index c91223e..b4ca146 100644 --- a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java +++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java @@ -16,6 +16,7 @@ import com.genersoft.iot.vmp.media.event.media.*; import com.genersoft.iot.vmp.media.event.mediaServer.MediaSendRtpStoppedEvent; import com.genersoft.iot.vmp.media.service.IMediaServerService; +import com.genersoft.iot.vmp.media.util.CasicAuthUtils; import com.genersoft.iot.vmp.media.zlm.dto.ZLMServerConfig; import com.genersoft.iot.vmp.media.zlm.dto.hook.*; import com.genersoft.iot.vmp.media.zlm.event.HookZlmServerKeepaliveEvent; @@ -29,6 +30,7 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.beans.factory.annotation.Value; import org.springframework.context.ApplicationEventPublisher; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; @@ -136,12 +138,16 @@ event.setMediaServerItem(mediaServerItem); applicationEventPublisher.publishEvent(event); } - }catch (Exception e) { + } catch (Exception e) { logger.info("[ZLM-HOOK-心跳] 发送通知失败 ", e); } return HookResult.SUCCESS(); } + @Value("${casic.auth}") + private Boolean isAuth; + @Value("${casic.url}") + private String url; /** * 播放器鉴权事件,rtsp/rtmp/http-flv/ws-flv/hls的播放都将触发此鉴权事件。 */ @@ -150,6 +156,25 @@ public HookResult onPlay(@RequestBody OnPlayHookParam param) { Map paramMap = MediaServerUtils.urlParamToMap(param.getParams()); + if (isAuth) { + if (!paramMap.containsKey("token")) { + logger.info("[ZLM HOOK] 业务鉴权token不存在!"); + return new HookResult(401, "Unauthorized"); + }else{ + try{ + CasicAuthUtils casicAuthUtils = new CasicAuthUtils(); + JSONObject jsonObject = casicAuthUtils.sendPost(url+"?token="+paramMap.get("token"),null,null,null); + boolean flag = jsonObject.containsKey("code")&&0==jsonObject.getInteger("code"); + if(!flag){ + logger.info("[ZLM HOOK] 业务鉴权token失效!"); + return new HookResult(401, "Unauthorized"); + } + }catch (Exception e){ + logger.error("[ZLM HOOK] 业务鉴权失败:{}", e.getMessage()); + return new HookResult(401, "验证失败,请查看鉴权服务!"); + } + } + } // 对于播放流进行鉴权 boolean authenticateResult = mediaService.authenticatePlay(param.getApp(), param.getStream(), paramMap.get("callId")); if (!authenticateResult) { @@ -183,7 +208,7 @@ HookResultForOnPublish successResult = HookResultForOnPublish.getInstance(resultForOnPublish); logger.info("[ZLM HOOK]推流鉴权 响应:{}->{}->>>>{}", param.getMediaServerId(), param, successResult); return successResult; - }else { + } else { HookResultForOnPublish fail = HookResultForOnPublish.Fail(); logger.info("[ZLM HOOK]推流鉴权 响应:{}->{}->>>>{}", param.getMediaServerId(), param, fail); return fail; @@ -199,6 +224,7 @@ // System.out.println(11); // return HookResult.SUCCESS(); // } + /** * rtsp/rtmp流注册或注销时触发此事件;此事件对回复不敏感。 */ @@ -212,7 +238,7 @@ } if (!ObjectUtils.isEmpty(mediaServer.getTranscodeSuffix()) && !"null".equalsIgnoreCase(mediaServer.getTranscodeSuffix()) - && param.getStream().endsWith(mediaServer.getTranscodeSuffix()) ) { + && param.getStream().endsWith(mediaServer.getTranscodeSuffix())) { return HookResult.SUCCESS(); } if (param.getSchema().equalsIgnoreCase("rtsp")) { @@ -248,8 +274,8 @@ } if (!ObjectUtils.isEmpty(mediaInfo.getTranscodeSuffix()) && !"null".equalsIgnoreCase(mediaInfo.getTranscodeSuffix()) - && param.getStream().endsWith(mediaInfo.getTranscodeSuffix()) ) { - param.setStream(param.getStream().substring(0, param.getStream().lastIndexOf(mediaInfo.getTranscodeSuffix()) -1 )); + && param.getStream().endsWith(mediaInfo.getTranscodeSuffix())) { + param.setStream(param.getStream().substring(0, param.getStream().lastIndexOf(mediaInfo.getTranscodeSuffix()) - 1)); } JSONObject ret = new JSONObject(); @@ -295,7 +321,7 @@ event.setMediaServerItem(mediaServerItem); applicationEventPublisher.publishEvent(event); } - }catch (Exception e) { + } catch (Exception e) { logger.info("[ZLM-HOOK-ZLM启动] 发送通知失败 ", e); } @@ -322,7 +348,7 @@ event.setMediaServer(mediaServerItem); applicationEventPublisher.publishEvent(event); } - }catch (Exception e) { + } catch (Exception e) { logger.info("[ZLM-HOOK-rtp发送关闭] 发送通知失败 ", e); } @@ -335,7 +361,7 @@ @ResponseBody @PostMapping(value = "/on_rtp_server_timeout", produces = "application/json;charset=UTF-8") public HookResult onRtpServerTimeout(@RequestBody OnRtpServerTimeoutHookParam - param) { + param) { logger.info("[ZLM HOOK] rtpServer收流超时:{}->{}({})", param.getMediaServerId(), param.getStream_id(), param.getSsrc()); try { @@ -346,7 +372,7 @@ event.setApp("rtp"); applicationEventPublisher.publishEvent(event); } - }catch (Exception e) { + } catch (Exception e) { logger.info("[ZLM-HOOK-rtpServer收流超时] 发送通知失败 ", e); } @@ -368,7 +394,7 @@ event.setMediaServer(mediaServerItem); applicationEventPublisher.publishEvent(event); } - }catch (Exception e) { + } catch (Exception e) { logger.info("[ZLM-HOOK-rtpServer收流超时] 发送通知失败 ", e); } diff --git a/src/main/resources/application-wvp.yml b/src/main/resources/application-wvp.yml index 85cc0d6..454b646 100644 --- a/src/main/resources/application-wvp.yml +++ b/src/main/resources/application-wvp.yml @@ -96,11 +96,12 @@ # 启用多端口模式, 多端口模式使用端口区分每路流,兼容性更好。 单端口使用流的ssrc区分, 点播超时建议使用多端口测试 rtp: # [可选] 是否启用多端口模式, 开启后会在portRange范围内选择端口用于媒体流传输 - enable: true + enable: false # [可选] 在此范围内选择端口用于媒体流传输, 必须提前在zlm上配置该属性,不然自动配置此属性可能不成功 port-range: 22130,22160 # 端口范围 # [可选] 国标级联在此范围内选择端口发送媒体流, send-port-range: 22120,22125 # 端口范围 + proxy-port: 22110 # 录像辅助服务, 部署此服务可以实现zlm录像的管理与下载, 0 表示不使用 record-assist-port: 0 # [根据业务需求配置] @@ -114,7 +115,7 @@ # 保存移动位置历史轨迹:true:保留历史数据,false:仅保留最后的位置(默认) save-position-history: false # 点播/录像回放 等待超时时间,单位:毫秒 - play-timeout: 180000 + play-timeout: 380000 # 上级点播等待超时时间,单位:毫秒 platform-play-timeout: 600000 # 是否开启接口鉴权 diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 3230090..6e3e26e 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -2,4 +2,8 @@ application: name: wvp profiles: - active: test \ No newline at end of file + active: prod +casic: + auth: false + #业务服务器 播流鉴权回调 + url: http://192.168.83.42:6909 \ No newline at end of file diff --git a/doc/conf/config.ini b/doc/conf/config.ini index b5e0b6d..40d4795 100644 --- a/doc/conf/config.ini +++ b/doc/conf/config.ini @@ -4,7 +4,7 @@ apiDebug=1 defaultSnap=./www/logo.png downloadRoot=./www -secret=0EcyrurlYHctuBbgue6zMUrI5aF6J8XO +secret=vcOhVPzPUgfcvDLLWTFjgBgVNrCkvi7P snapRoot=./www/snap/ [cluster] diff --git a/doc/conf/readme b/doc/conf/readme index 97eaa88..a075524 100644 --- a/doc/conf/readme +++ b/doc/conf/readme @@ -3,10 +3,48 @@ sudo firewall-cmd --permanent --zone=public --add-port=1935/tcp sudo firewall-cmd --permanent --zone=public --add-port=8554/tcp sudo firewall-cmd --permanent --zone=public --add-port=8443/tcp - +sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp sudo firewall-cmd --permanent --zone=public --add-port=8000/udp sudo firewall-cmd --permanent --zone=public --add-port=9000/udp sudo firewall-cmd --permanent --zone=public --add-port=30000-30050/udp + +#应用端口开启 +sudo firewall-cmd --permanent --zone=public --add-port=18080/tcp +sudo firewall-cmd --permanent --zone=public --add-port=5060/udp + +sudo firewall-cmd --permanent --zone=public --add-port=2003/tcp + +sudo firewall-cmd --permanent --zone=public --add-port=9060/tcp + +sudo firewall-cmd --permanent --zone=public --add-port=8090/tcp +sudo firewall-cmd --permanent --zone=public --add-port=6379/tcp + +sudo firewall-cmd --permanent --zone=public --add-port=6909/tcp # 重新载入防火墙规则 -sudo firewall-cmd --reload \ No newline at end of file +sudo firewall-cmd --reload +docker run -d -p 22110:10000 -p 22110:10000/udp -p 22111:1935 -p 22112:80 -p 22113:554 -p 22114:443 -p 22115:22115/udp -p 22116:9000/udp -p 22130-22160:22130-22160/udp --name zlmediakit zlmediakit/zlmediakit:master +docker run -d -p 22110:22110 -p 22110:22110/udp -p 22111:1935 -p 22112:80 -p 22113:554 -p 22114:443 -p 22115:22115/udp -p 22116:9000/udp -p 22130-22160:22130-22160/udp --name zlmediakit zlmediakit/zlmediakit:master +注: rtc 端口修改22115 webrtc rtpproxy端口修改为22110 timeoutSec大于摄像头心跳时间 +东方通rdb +thanos +Casic20311# +4、查看防火墙所有开放的端口 +firewall-cmd --zone=public --list-ports + + +docker run --name redis -d -p 6379:6379 5191b3931369 --requirepass casic203-! + +docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=casic203 -p 13306:3306 mysql:latest +139.198.19.235 + +rtsp://admin:admin@10.170.5.2:11793/11 +Ytj002 + +ytj004 rtsp://admin:admin@10.170.5.2:11794/11 + +video137 rtsp://admin:admin@10.170.5.2:11791/11 + +test rtsp://admin:admin@10.170.5.2:11790/11 + +docker run -d -p 22110:10000 -p 22110:10000/udp -p 22111:1935 -p 22112:80 -p 22113:554 -p 22114:443 -p 22115:8000/udp -p 22116:9000/udp -p 22130-22160:22130-22160/udp --cpu-shares 10 -m 16G --name zlmediakit zlmediakit/zlmediakit:master \ No newline at end of file diff --git a/snap/34020000001110000002_34020000001320000001.jpg b/snap/34020000001110000002_34020000001320000001.jpg index 845aa6f..69e7a5e 100644 --- a/snap/34020000001110000002_34020000001320000001.jpg +++ b/snap/34020000001110000002_34020000001320000001.jpg Binary files differ diff --git a/snap/34020000001110000002_34020000001320000003.jpg b/snap/34020000001110000002_34020000001320000003.jpg index e7bb058..d6751ca 100644 --- a/snap/34020000001110000002_34020000001320000003.jpg +++ b/snap/34020000001110000002_34020000001320000003.jpg Binary files differ diff --git a/snap/34020000001320000001_34020000001320000001.jpg b/snap/34020000001320000001_34020000001320000001.jpg index 142578b..dd1379c 100644 --- a/snap/34020000001320000001_34020000001320000001.jpg +++ b/snap/34020000001320000001_34020000001320000001.jpg Binary files differ diff --git a/snap/41010500002000000003_34020000001110000013.jpg b/snap/41010500002000000003_34020000001110000013.jpg index 7163cbb..dd1379c 100644 --- a/snap/41010500002000000003_34020000001110000013.jpg +++ b/snap/41010500002000000003_34020000001110000013.jpg Binary files differ diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java index c91223e..b4ca146 100644 --- a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java +++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java @@ -16,6 +16,7 @@ import com.genersoft.iot.vmp.media.event.media.*; import com.genersoft.iot.vmp.media.event.mediaServer.MediaSendRtpStoppedEvent; import com.genersoft.iot.vmp.media.service.IMediaServerService; +import com.genersoft.iot.vmp.media.util.CasicAuthUtils; import com.genersoft.iot.vmp.media.zlm.dto.ZLMServerConfig; import com.genersoft.iot.vmp.media.zlm.dto.hook.*; import com.genersoft.iot.vmp.media.zlm.event.HookZlmServerKeepaliveEvent; @@ -29,6 +30,7 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.beans.factory.annotation.Value; import org.springframework.context.ApplicationEventPublisher; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; @@ -136,12 +138,16 @@ event.setMediaServerItem(mediaServerItem); applicationEventPublisher.publishEvent(event); } - }catch (Exception e) { + } catch (Exception e) { logger.info("[ZLM-HOOK-心跳] 发送通知失败 ", e); } return HookResult.SUCCESS(); } + @Value("${casic.auth}") + private Boolean isAuth; + @Value("${casic.url}") + private String url; /** * 播放器鉴权事件,rtsp/rtmp/http-flv/ws-flv/hls的播放都将触发此鉴权事件。 */ @@ -150,6 +156,25 @@ public HookResult onPlay(@RequestBody OnPlayHookParam param) { Map paramMap = MediaServerUtils.urlParamToMap(param.getParams()); + if (isAuth) { + if (!paramMap.containsKey("token")) { + logger.info("[ZLM HOOK] 业务鉴权token不存在!"); + return new HookResult(401, "Unauthorized"); + }else{ + try{ + CasicAuthUtils casicAuthUtils = new CasicAuthUtils(); + JSONObject jsonObject = casicAuthUtils.sendPost(url+"?token="+paramMap.get("token"),null,null,null); + boolean flag = jsonObject.containsKey("code")&&0==jsonObject.getInteger("code"); + if(!flag){ + logger.info("[ZLM HOOK] 业务鉴权token失效!"); + return new HookResult(401, "Unauthorized"); + } + }catch (Exception e){ + logger.error("[ZLM HOOK] 业务鉴权失败:{}", e.getMessage()); + return new HookResult(401, "验证失败,请查看鉴权服务!"); + } + } + } // 对于播放流进行鉴权 boolean authenticateResult = mediaService.authenticatePlay(param.getApp(), param.getStream(), paramMap.get("callId")); if (!authenticateResult) { @@ -183,7 +208,7 @@ HookResultForOnPublish successResult = HookResultForOnPublish.getInstance(resultForOnPublish); logger.info("[ZLM HOOK]推流鉴权 响应:{}->{}->>>>{}", param.getMediaServerId(), param, successResult); return successResult; - }else { + } else { HookResultForOnPublish fail = HookResultForOnPublish.Fail(); logger.info("[ZLM HOOK]推流鉴权 响应:{}->{}->>>>{}", param.getMediaServerId(), param, fail); return fail; @@ -199,6 +224,7 @@ // System.out.println(11); // return HookResult.SUCCESS(); // } + /** * rtsp/rtmp流注册或注销时触发此事件;此事件对回复不敏感。 */ @@ -212,7 +238,7 @@ } if (!ObjectUtils.isEmpty(mediaServer.getTranscodeSuffix()) && !"null".equalsIgnoreCase(mediaServer.getTranscodeSuffix()) - && param.getStream().endsWith(mediaServer.getTranscodeSuffix()) ) { + && param.getStream().endsWith(mediaServer.getTranscodeSuffix())) { return HookResult.SUCCESS(); } if (param.getSchema().equalsIgnoreCase("rtsp")) { @@ -248,8 +274,8 @@ } if (!ObjectUtils.isEmpty(mediaInfo.getTranscodeSuffix()) && !"null".equalsIgnoreCase(mediaInfo.getTranscodeSuffix()) - && param.getStream().endsWith(mediaInfo.getTranscodeSuffix()) ) { - param.setStream(param.getStream().substring(0, param.getStream().lastIndexOf(mediaInfo.getTranscodeSuffix()) -1 )); + && param.getStream().endsWith(mediaInfo.getTranscodeSuffix())) { + param.setStream(param.getStream().substring(0, param.getStream().lastIndexOf(mediaInfo.getTranscodeSuffix()) - 1)); } JSONObject ret = new JSONObject(); @@ -295,7 +321,7 @@ event.setMediaServerItem(mediaServerItem); applicationEventPublisher.publishEvent(event); } - }catch (Exception e) { + } catch (Exception e) { logger.info("[ZLM-HOOK-ZLM启动] 发送通知失败 ", e); } @@ -322,7 +348,7 @@ event.setMediaServer(mediaServerItem); applicationEventPublisher.publishEvent(event); } - }catch (Exception e) { + } catch (Exception e) { logger.info("[ZLM-HOOK-rtp发送关闭] 发送通知失败 ", e); } @@ -335,7 +361,7 @@ @ResponseBody @PostMapping(value = "/on_rtp_server_timeout", produces = "application/json;charset=UTF-8") public HookResult onRtpServerTimeout(@RequestBody OnRtpServerTimeoutHookParam - param) { + param) { logger.info("[ZLM HOOK] rtpServer收流超时:{}->{}({})", param.getMediaServerId(), param.getStream_id(), param.getSsrc()); try { @@ -346,7 +372,7 @@ event.setApp("rtp"); applicationEventPublisher.publishEvent(event); } - }catch (Exception e) { + } catch (Exception e) { logger.info("[ZLM-HOOK-rtpServer收流超时] 发送通知失败 ", e); } @@ -368,7 +394,7 @@ event.setMediaServer(mediaServerItem); applicationEventPublisher.publishEvent(event); } - }catch (Exception e) { + } catch (Exception e) { logger.info("[ZLM-HOOK-rtpServer收流超时] 发送通知失败 ", e); } diff --git a/src/main/resources/application-wvp.yml b/src/main/resources/application-wvp.yml index 85cc0d6..454b646 100644 --- a/src/main/resources/application-wvp.yml +++ b/src/main/resources/application-wvp.yml @@ -96,11 +96,12 @@ # 启用多端口模式, 多端口模式使用端口区分每路流,兼容性更好。 单端口使用流的ssrc区分, 点播超时建议使用多端口测试 rtp: # [可选] 是否启用多端口模式, 开启后会在portRange范围内选择端口用于媒体流传输 - enable: true + enable: false # [可选] 在此范围内选择端口用于媒体流传输, 必须提前在zlm上配置该属性,不然自动配置此属性可能不成功 port-range: 22130,22160 # 端口范围 # [可选] 国标级联在此范围内选择端口发送媒体流, send-port-range: 22120,22125 # 端口范围 + proxy-port: 22110 # 录像辅助服务, 部署此服务可以实现zlm录像的管理与下载, 0 表示不使用 record-assist-port: 0 # [根据业务需求配置] @@ -114,7 +115,7 @@ # 保存移动位置历史轨迹:true:保留历史数据,false:仅保留最后的位置(默认) save-position-history: false # 点播/录像回放 等待超时时间,单位:毫秒 - play-timeout: 180000 + play-timeout: 380000 # 上级点播等待超时时间,单位:毫秒 platform-play-timeout: 600000 # 是否开启接口鉴权 diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 3230090..6e3e26e 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -2,4 +2,8 @@ application: name: wvp profiles: - active: test \ No newline at end of file + active: prod +casic: + auth: false + #业务服务器 播流鉴权回调 + url: http://192.168.83.42:6909 \ No newline at end of file diff --git "a/\346\225\260\346\215\256\345\272\223/shentong.sql" "b/\346\225\260\346\215\256\345\272\223/shentong.sql" index 4e42296..f738edf 100644 --- "a/\346\225\260\346\215\256\345\272\223/shentong.sql" +++ "b/\346\225\260\346\215\256\345\272\223/shentong.sql" @@ -1,4 +1,378 @@ +CREATE TABLE WVP_USER.WVP_CLOUD_RECORD +( + ID bigint DEFAULT NEXTVAL('wvp_cloud_record_index'::text) NOT NULL, + "APP" character varying(255) DEFAULT NULL , + STREAM character varying(255) DEFAULT NULL , + CALL_ID character varying(255) DEFAULT NULL , + START_TIME bigint DEFAULT NULL , + END_TIME bigint DEFAULT NULL , + MEDIA_SERVER_ID character varying(50) DEFAULT NULL , + FILE_NAME character varying(255) DEFAULT NULL , + FOLDER character varying(255) DEFAULT NULL , + FILE_PATH character varying(255) DEFAULT NULL , + COLLECT tinyint DEFAULT 0 , + FILE_SIZE bigint DEFAULT NULL , + TIME_LEN bigint DEFAULT NULL , + CONSTRAINT WVP_CLOUD_RECORD_PKEY PRIMARY KEY (ID) +) + BINLOG ON ; +--Indexes DDL +CREATE UNIQUE INDEX UK_STREAM_PUSH_APP_STREAM_PATH ON WVP_USER.WVP_CLOUD_RECORD USING BTREE ("APP", STREAM, FILE_PATH) PRIORITY 0 TABLESPACE "SYSTEM" LOGGING INIT 64K NEXT 64K PCTINCREASE 50 FILL 70 SPLIT 50 VISIBLE; + +CREATE TABLE WVP_USER.WVP_DEVICE +( + ID bigint DEFAULT NEXTVAL('wvp_device_id_seq'::text) NOT NULL, + DEVICE_ID character varying(50) NOT NULL, + "NAME" character varying(255) DEFAULT NULL , + MANUFACTURER character varying(255) DEFAULT NULL , + MODEL character varying(255) DEFAULT NULL , + FIRMWARE character varying(255) DEFAULT NULL , + TRANSPORT character varying(50) DEFAULT NULL , + STREAM_MODE character varying(50) DEFAULT NULL , + ON_LINE tinyint DEFAULT 0 , + REGISTER_TIME character varying(50) DEFAULT NULL , + KEEPALIVE_TIME character varying(50) DEFAULT NULL , + "IP" character varying(50) DEFAULT NULL , + CREATE_TIME character varying(50) DEFAULT NULL , + UPDATE_TIME character varying(50) DEFAULT NULL , + "PORT" integer DEFAULT NULL , + EXPIRES integer DEFAULT NULL , + SUBSCRIBE_CYCLE_FOR_CATALOG integer DEFAULT 0 , + SUBSCRIBE_CYCLE_FOR_MOBILE_POSITION integer DEFAULT 0 , + MOBILE_POSITION_SUBMISSION_INTERVAL integer DEFAULT 5 , + SUBSCRIBE_CYCLE_FOR_ALARM integer DEFAULT 0 , + HOST_ADDRESS character varying(50) DEFAULT NULL , + CHARSET character varying(50) DEFAULT NULL , + SSRC_CHECK tinyint DEFAULT 0 , + GEO_COORD_SYS character varying(50) DEFAULT NULL , + MEDIA_SERVER_ID character varying(50) DEFAULT NULL , + CUSTOM_NAME character varying(255) DEFAULT NULL , + SDP_IP character varying(50) DEFAULT NULL , + LOCAL_IP character varying(50) DEFAULT NULL , + "PASSWORD" character varying(255) DEFAULT NULL , + AS_MESSAGE_CHANNEL tinyint DEFAULT 0 , + KEEPALIVE_INTERVAL_TIME integer DEFAULT NULL , + BROADCAST_PUSH_AFTER_ACK tinyint DEFAULT 0 , + CONSTRAINT WVP_DEVICE_PKEY PRIMARY KEY (ID) +) + BINLOG ON ; +--Indexes DDL +CREATE UNIQUE INDEX UK_DEVICE_DEVICE ON WVP_USER.WVP_DEVICE USING BTREE (DEVICE_ID) PRIORITY 0 TABLESPACE "SYSTEM" LOGGING INIT 64K NEXT 64K PCTINCREASE 50 FILL 70 SPLIT 50 VISIBLE; + +CREATE TABLE WVP_USER.WVP_DEVICE_ALARM +( + ID bigint DEFAULT NEXTVAL('wvp_device_alarm_id_seq'::text) NOT NULL, + DEVICE_ID character varying(50) NOT NULL, + CHANNEL_ID character varying(50) NOT NULL, + ALARM_PRIORITY character varying(50) DEFAULT NULL , + ALARM_METHOD character varying(50) DEFAULT NULL , + ALARM_TIME character varying(50) DEFAULT NULL , + ALARM_DESCRIPTION character varying(255) DEFAULT NULL , + LONGITUDE float(53) DEFAULT NULL , + LATITUDE float(53) DEFAULT NULL , + ALARM_TYPE character varying(50) DEFAULT NULL , + CREATE_TIME character varying(50) NOT NULL, + CONSTRAINT WVP_DEVICE_ALARM_PKEY PRIMARY KEY (ID) +) + BINLOG ON ; + +CREATE TABLE WVP_USER.WVP_DEVICE_CHANNEL +( + ID bigint DEFAULT NEXTVAL('wvp_device_channel_id_seq'::text) NOT NULL, + CHANNEL_ID character varying(50) NOT NULL, + "NAME" character varying(255) DEFAULT NULL , + CUSTOM_NAME character varying(255) DEFAULT NULL , + MANUFACTURE character varying(50) DEFAULT NULL , + MODEL character varying(50) DEFAULT NULL , + "OWNER" character varying(50) DEFAULT NULL , + CIVIL_CODE character varying(50) DEFAULT NULL , + "BLOCK" character varying(50) DEFAULT NULL , + ADDRESS character varying(50) DEFAULT NULL , + PARENT_ID character varying(50) DEFAULT NULL , + SAFETY_WAY integer DEFAULT NULL , + REGISTER_WAY integer DEFAULT NULL , + CERT_NUM character varying(50) DEFAULT NULL , + CERTIFIABLE integer DEFAULT NULL , + ERR_CODE integer DEFAULT NULL , + END_TIME character varying(50) DEFAULT NULL , + SECRECY character varying(50) DEFAULT NULL , + IP_ADDRESS character varying(50) DEFAULT NULL , + "PORT" integer DEFAULT NULL , + "PASSWORD" character varying(255) DEFAULT NULL , + PTZ_TYPE integer DEFAULT NULL , + CUSTOM_PTZ_TYPE integer DEFAULT NULL , + STATUS tinyint DEFAULT 0 , + LONGITUDE float(53) DEFAULT NULL , + CUSTOM_LONGITUDE float(53) DEFAULT NULL , + LATITUDE float(53) DEFAULT NULL , + CUSTOM_LATITUDE float(53) DEFAULT NULL , + STREAM_ID character varying(255) DEFAULT NULL , + DEVICE_ID character varying(50) NOT NULL, + PARENTAL character varying(50) DEFAULT NULL , + HAS_AUDIO tinyint DEFAULT 0 , + CREATE_TIME character varying(50) NOT NULL, + UPDATE_TIME character varying(50) NOT NULL, + SUB_COUNT integer DEFAULT NULL , + LONGITUDE_GCJ02 float(53) DEFAULT NULL , + LATITUDE_GCJ02 float(53) DEFAULT NULL , + LONGITUDE_WGS84 float(53) DEFAULT NULL , + LATITUDE_WGS84 float(53) DEFAULT NULL , + BUSINESS_GROUP_ID character varying(50) DEFAULT NULL , + GPS_TIME character varying(50) DEFAULT NULL , + STREAM_IDENTIFICATION character varying(50) DEFAULT NULL , + CONSTRAINT WVP_DEVICE_CHANNEL_PKEY PRIMARY KEY (ID) +) + BINLOG ON ; +--Indexes DDL +CREATE UNIQUE INDEX UK_WVP_DEVICE_CHANNEL_UNIQUE_DEVICE_CHANNEL ON WVP_USER.WVP_DEVICE_CHANNEL USING BTREE (DEVICE_ID, CHANNEL_ID) PRIORITY 0 TABLESPACE "SYSTEM" LOGGING INIT 64K NEXT 64K PCTINCREASE 50 FILL 70 SPLIT 50 VISIBLE; + +CREATE TABLE WVP_USER.WVP_DEVICE_MOBILE_POSITION +( + ID bigint DEFAULT NEXTVAL('wvp_device_mobile_position_id_seq'::text) NOT NULL, + DEVICE_ID character varying(50) NOT NULL, + CHANNEL_ID character varying(50) NOT NULL, + DEVICE_NAME character varying(255) DEFAULT NULL , + "TIME" character varying(50) DEFAULT NULL , + LONGITUDE float(53) DEFAULT NULL , + LATITUDE float(53) DEFAULT NULL , + ALTITUDE float(53) DEFAULT NULL , + SPEED float(53) DEFAULT NULL , + DIRECTION float(53) DEFAULT NULL , + REPORT_SOURCE character varying(50) DEFAULT NULL , + LONGITUDE_GCJ02 float(53) DEFAULT NULL , + LATITUDE_GCJ02 float(53) DEFAULT NULL , + LONGITUDE_WGS84 float(53) DEFAULT NULL , + LATITUDE_WGS84 float(53) DEFAULT NULL , + CREATE_TIME character varying(50) DEFAULT NULL , + CONSTRAINT WVP_DEVICE_MOBILE_POSITION_PKEY PRIMARY KEY (ID) +) + BINLOG ON ; + +CREATE TABLE WVP_USER.WVP_GB_STREAM +( + GB_STREAM_ID bigint DEFAULT NEXTVAL('seq_gb_stream_id'::text) NOT NULL, + "APP" character varying(255) NOT NULL, + STREAM character varying(255) NOT NULL, + GB_ID character varying(50) NOT NULL, + "NAME" character varying(255) , + LONGITUDE float(53) , + LATITUDE float(53) , + STREAM_TYPE character varying(50) , + MEDIA_SERVER_ID character varying(50) , + CREATE_TIME character varying(50) , + CONSTRAINT WVP_GB_STREAM_PKEY PRIMARY KEY (GB_STREAM_ID) +) + BINLOG ON ; + +CREATE TABLE WVP_USER.WVP_LOG +( + ID bigint DEFAULT NEXTVAL('seq_wvp_log_id'::text) NOT NULL, + "NAME" character varying(50) , + "TYPE" character varying(50) , + URI character varying(200) , + ADDRESS character varying(50) , + "RESULT" character varying(50) , + TIMING bigint , + USERNAME character varying(50) , + CREATE_TIME character varying(50) , + CONSTRAINT WVP_LOG_PKEY PRIMARY KEY (ID) +) + BINLOG ON ; + +CREATE TABLE WVP_USER.WVP_MEDIA_SERVER +( + ID character varying(255) NOT NULL, + "IP" character varying(50) , + HOOK_IP character varying(50) , + SDP_IP character varying(50) , + STREAM_IP character varying(50) , + HTTP_PORT integer , + HTTP_SSL_PORT integer , + RTMP_PORT integer , + RTMP_SSL_PORT integer , + RTP_PROXY_PORT integer , + RTSP_PORT integer , + RTSP_SSL_PORT integer , + FLV_PORT integer , + FLV_SSL_PORT integer , + WS_FLV_PORT integer , + WS_FLV_SSL_PORT integer , + AUTO_CONFIG tinyint , + SECRET character varying(50) , + "TYPE" character varying(50) DEFAULT 'zlm' , + RTP_ENABLE tinyint , + RTP_PORT_RANGE character varying(50) , + SEND_RTP_PORT_RANGE character varying(50) , + RECORD_ASSIST_PORT integer , + DEFAULT_SERVER tinyint , + CREATE_TIME character varying(50) , + UPDATE_TIME character varying(50) , + HOOK_ALIVE_INTERVAL integer , + RECORD_PATH character varying(255) , + RECORD_DAY integer DEFAULT 7 , + CONSTRAINT WVP_MEDIA_SERVER_PKEY PRIMARY KEY (ID) +) + BINLOG ON ; +--Indexes DDL +CREATE UNIQUE INDEX UK_MEDIA_SERVER_UNIQUE_IP_HTTP_PORT ON WVP_USER.WVP_MEDIA_SERVER USING BTREE ("IP", HTTP_PORT) PRIORITY 0 TABLESPACE "SYSTEM" LOGGING INIT 64K NEXT 64K PCTINCREASE 50 FILL 70 SPLIT 50 VISIBLE; + +CREATE TABLE WVP_USER.WVP_PLATFORM +( + ID bigint DEFAULT NEXTVAL('wvp_platform_id_seq'::text) NOT NULL, + "ENABLE" tinyint DEFAULT 0 , + "NAME" character varying(255) DEFAULT NULL , + SERVER_GB_ID character varying(50) DEFAULT NULL , + SERVER_GB_DOMAIN character varying(50) DEFAULT NULL , + SERVER_IP character varying(50) DEFAULT NULL , + SERVER_PORT integer DEFAULT NULL , + DEVICE_GB_ID character varying(50) DEFAULT NULL , + DEVICE_IP character varying(50) DEFAULT NULL , + DEVICE_PORT character varying(50) DEFAULT NULL , + USERNAME character varying(255) DEFAULT NULL , + "PASSWORD" character varying(50) DEFAULT NULL , + EXPIRES character varying(50) DEFAULT NULL , + KEEP_TIMEOUT character varying(50) DEFAULT NULL , + TRANSPORT character varying(50) DEFAULT NULL , + CHARACTER_SET character varying(50) DEFAULT NULL , + CATALOG_ID character varying(50) DEFAULT NULL , + PTZ tinyint DEFAULT 0 , + RTCP tinyint DEFAULT 0 , + STATUS tinyint DEFAULT 0 , + START_OFFLINE_PUSH tinyint DEFAULT 0 , + ADMINISTRATIVE_DIVISION character varying(50) DEFAULT NULL , + CATALOG_GROUP integer DEFAULT NULL , + CREATE_TIME character varying(50) DEFAULT NULL , + UPDATE_TIME character varying(50) DEFAULT NULL , + AS_MESSAGE_CHANNEL tinyint DEFAULT 0 , + AUTO_PUSH_CHANNEL tinyint DEFAULT 0 , + SEND_STREAM_IP character varying(50) DEFAULT NULL , + CONSTRAINT WVP_PLATFORM_PKEY PRIMARY KEY (ID) +) + BINLOG ON ; + +CREATE TABLE WVP_USER.WVP_PLATFORM_CATALOG +( + ID character varying(50) DEFAULT NULL NOT NULL, + PLATFORM_ID character varying(50) DEFAULT NULL NOT NULL, + "NAME" character varying(255) DEFAULT NULL , + PARENT_ID character varying(50) DEFAULT NULL , + CIVIL_CODE character varying(50) DEFAULT NULL , + BUSINESS_GROUP_ID character varying(50) DEFAULT NULL , + CONSTRAINT WVP_PLATFORM_CATALOG_PKEY PRIMARY KEY (ID, PLATFORM_ID) +) + BINLOG ON ; + +CREATE TABLE WVP_USER.WVP_PLATFORM_GB_CHANNEL +( + ID bigint DEFAULT NEXTVAL('wvp_platform_gb_channel_id_seq'::text) NOT NULL, + PLATFORM_ID character varying(50) DEFAULT NULL , + CATALOG_ID character varying(50) DEFAULT NULL , + DEVICE_CHANNEL_ID integer DEFAULT NULL , + CONSTRAINT WVP_PLATFORM_GB_CHANNEL_PKEY PRIMARY KEY (ID) +) + BINLOG ON ; + +CREATE TABLE WVP_USER.WVP_RESOURCES_TREE +( + ID bigint DEFAULT NEXTVAL('seq_wvp_resources_tree_id'::text) NOT NULL, + IS_CATALOG boolean , + DEVICE_CHANNEL_ID integer , + GB_STREAM_ID integer , + "NAME" character varying(255) , + PARENTID integer , + "PATH" character varying(255) , + CONSTRAINT WVP_RESOURCES_TREE_PKEY PRIMARY KEY (ID) +) + BINLOG ON ; + +CREATE TABLE WVP_USER.WVP_STREAM_PROXY +( + ID bigint DEFAULT NEXTVAL('wvp_stream_proxy_id_seq'::text) NOT NULL, + "TYPE" character varying(50) DEFAULT NULL , + "APP" character varying(255) DEFAULT NULL , + STREAM character varying(255) DEFAULT NULL , + URL character varying(255) DEFAULT NULL , + SRC_URL character varying(255) DEFAULT NULL , + DST_URL character varying(255) DEFAULT NULL , + TIMEOUT_MS integer DEFAULT NULL , + FFMPEG_CMD_KEY character varying(255) DEFAULT NULL , + RTP_TYPE character varying(50) DEFAULT NULL , + MEDIA_SERVER_ID character varying(50) DEFAULT NULL , + ENABLE_AUDIO tinyint DEFAULT 0 , + ENABLE_MP4 tinyint DEFAULT 0 , + "ENABLE" tinyint DEFAULT 0 , + STATUS tinyint DEFAULT NULL , + ENABLE_REMOVE_NONE_READER tinyint DEFAULT 0 , + CREATE_TIME character varying(50) DEFAULT NULL , + "NAME" character varying(255) DEFAULT NULL , + UPDATE_TIME character varying(50) DEFAULT NULL , + STREAM_KEY character varying(255) DEFAULT NULL , + ENABLE_DISABLE_NONE_READER tinyint DEFAULT 0 , + CONSTRAINT WVP_STREAM_PROXY_PKEY PRIMARY KEY (ID) +) + BINLOG ON ; + +CREATE TABLE WVP_USER.WVP_STREAM_PUSH +( + ID bigint DEFAULT NEXTVAL('wvp_stream_push_id_seq'::text) NOT NULL, + "APP" character varying(255) DEFAULT NULL , + STREAM character varying(255) DEFAULT NULL , + TOTAL_READER_COUNT character varying(50) DEFAULT NULL , + ORIGIN_TYPE integer DEFAULT NULL , + ORIGIN_TYPE_STR character varying(50) DEFAULT NULL , + CREATE_TIME character varying(50) DEFAULT NULL , + ALIVE_SECOND integer DEFAULT NULL , + MEDIA_SERVER_ID character varying(50) DEFAULT NULL , + SERVER_ID character varying(50) DEFAULT NULL , + PUSH_TIME character varying(50) DEFAULT NULL , + STATUS tinyint DEFAULT 0 , + UPDATE_TIME character varying(50) DEFAULT NULL , + PUSH_ING tinyint DEFAULT 0 , + SELF tinyint DEFAULT 0 , + CONSTRAINT WVP_STREAM_PUSH_PKEY PRIMARY KEY (ID) +) + BINLOG ON ; + +CREATE TABLE WVP_USER.WVP_USER +( + ID bigint DEFAULT NEXTVAL('wvp_user_id_seq'::text) NOT NULL, + USERNAME character varying(255) DEFAULT NULL , + "PASSWORD" character varying(255) DEFAULT NULL , + ROLE_ID integer DEFAULT NULL , + CREATE_TIME character varying(50) DEFAULT NULL , + UPDATE_TIME character varying(50) DEFAULT NULL , + PUSH_KEY character varying(50) DEFAULT NULL , + CONSTRAINT WVP_USER_PKEY PRIMARY KEY (ID) +) + BINLOG ON ; + +CREATE TABLE WVP_USER.WVP_USER_API_KEY +( + ID bigint DEFAULT NEXTVAL('seq_wvp_user_api_key_id'::text) NOT NULL, + USER_ID bigint , + "APP" character varying(255) , + API_KEY text , + EXPIRED_AT bigint , + REMARK character varying(255) , + "ENABLE" boolean , + CREATE_TIME character varying(50) , + UPDATE_TIME character varying(50) , + CONSTRAINT WVP_USER_API_KEY_PKEY PRIMARY KEY (ID) +) + BINLOG ON ; + +CREATE TABLE WVP_USER.WVP_USER_ROLE +( + ID bigint DEFAULT NEXTVAL('seq_wvp_user_role_id'::text) NOT NULL, + "NAME" character varying(50) , + AUTHORITY character varying(50) , + CREATE_TIME character varying(50) , + UPDATE_TIME character varying(50) , + CONSTRAINT WVP_USER_ROLE_PKEY PRIMARY KEY (ID) +) + BINLOG ON ; + -- --Table DDL -- @@ -380,12 +754,12 @@ --Sequence DDL -- CREATE SEQUENCE WVP_USER.SEQ_GB_STREAM_ID INCREMENT 1 MINVALUE 1 START 2 NO CACHE NO CYCLE BINLOG ON -CREATE SEQUENCE WVP_USER.SEQ_WVP_LOG_ID INCREMENT 1 MINVALUE 1 START 6234 NO CACHE NO CYCLE BINLOG ON +CREATE SEQUENCE WVP_USER.SEQ_WVP_LOG_ID INCREMENT 1 MINVALUE 1 START 6423 NO CACHE NO CYCLE BINLOG ON CREATE SEQUENCE WVP_USER.SEQ_WVP_RESOURCES_TREE_ID INCREMENT 1 MINVALUE 1 START 2 NO CACHE NO CYCLE BINLOG ON CREATE SEQUENCE WVP_USER.SEQ_WVP_USER_API_KEY_ID INCREMENT 1 MINVALUE 1 START 2 NO CACHE NO CYCLE BINLOG ON CREATE SEQUENCE WVP_USER.SEQ_WVP_USER_ROLE_ID INCREMENT 1 MINVALUE 1 START 2 NO CACHE NO CYCLE BINLOG ON CREATE SEQUENCE WVP_USER.WVP_CLOUD_RECORD_INDEX INCREMENT 1 MINVALUE 1 MAXVALUE 999999999999 START 2 CACHE 10 NO CYCLE BINLOG ON -CREATE SEQUENCE WVP_USER.WVP_DEVICE_ALARM_ID_SEQ INCREMENT 1 MINVALUE 1 MAXVALUE 999999999999 START 2 CACHE 10 NO CYCLE BINLOG ON +CREATE SEQUENCE WVP_USER.WVP_DEVICE_ALARM_ID_SEQ INCREMENT 1 MINVALUE 1 MAXVALUE 999999999999 START 281 CACHE 10 NO CYCLE BINLOG ON CREATE SEQUENCE WVP_USER.WVP_DEVICE_CHANNEL_ID_SEQ INCREMENT 1 MINVALUE 1 MAXVALUE 999999999999 START 2 CACHE 10 NO CYCLE BINLOG ON CREATE SEQUENCE WVP_USER.WVP_DEVICE_ID_SEQ INCREMENT 1 MINVALUE 1 MAXVALUE 999999999999 START 2 CACHE 10 NO CYCLE BINLOG ON CREATE SEQUENCE WVP_USER.WVP_DEVICE_MOBILE_POSITION_ID_SEQ INCREMENT 1 MINVALUE 1 MAXVALUE 999999999999 START 2 CACHE 10 NO CYCLE BINLOG ON @@ -394,5 +768,6 @@ CREATE SEQUENCE WVP_USER.WVP_STREAM_PROXY_ID_SEQ INCREMENT 1 MINVALUE 1 MAXVALUE 999999999999 START 2 CACHE 10 NO CYCLE BINLOG ON CREATE SEQUENCE WVP_USER.WVP_STREAM_PUSH_ID_SEQ INCREMENT 1 MINVALUE 1 MAXVALUE 999999999999 START 2 CACHE 10 NO CYCLE BINLOG ON CREATE SEQUENCE WVP_USER.WVP_USER_ID_SEQ INCREMENT 1 MINVALUE 1 MAXVALUE 999999999999 START 2 CACHE 10 NO CYCLE BINLOG ON; + INSERT INTO wvp_user VALUES (1, 'admin', '21232f297a57a5a743894a0e4a801fc3', 1, '2021-04-13 14:14:57', '2021-04-13 14:14:57', '3e80d1762a324d5b0ff636e0bd16f1e3'); INSERT INTO wvp_user_role VALUES (1, 'admin', '0', '2021-04-13 14:14:57', '2021-04-13 14:14:57'); \ No newline at end of file