From 002782569d323c8a9def230cd561ffb15b1f3f3a Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期四, 15 十月 2020 15:23:41 +0800
Subject: [PATCH] 修改bug
---
src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRunner.java | 2 +
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java | 62 +++++++++++++++---------------
src/main/java/com/genersoft/iot/vmp/gb28181/event/offline/OfflineEventListener.java | 24 ++++++-----
src/main/java/com/genersoft/iot/vmp/storager/redis/VideoManagerRedisStoragerImpl.java | 14 +++++-
README.md | 3 +
5 files changed, 59 insertions(+), 46 deletions(-)
diff --git a/README.md b/README.md
index 7129fea..256efc0 100644
--- a/README.md
+++ b/README.md
@@ -36,4 +36,5 @@
QQ缇�: 901799015
# 鑷磋阿
-鎰熻阿浣滆�匸澶忔](https://github.com/xiongziliang) 鎻愪緵杩欎箞妫掔殑寮�婧愭祦濯掍綋鏈嶅姟妗嗘灦
\ No newline at end of file
+鎰熻阿浣滆�匸澶忔](https://github.com/xiongziliang) 鎻愪緵杩欎箞妫掔殑寮�婧愭祦濯掍綋鏈嶅姟妗嗘灦
+
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/event/offline/OfflineEventListener.java b/src/main/java/com/genersoft/iot/vmp/gb28181/event/offline/OfflineEventListener.java
index 3eeebef..e991a29 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/event/offline/OfflineEventListener.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/event/offline/OfflineEventListener.java
@@ -38,21 +38,23 @@
String key = VideoManagerConstants.KEEPLIVEKEY_PREFIX + event.getDeviceId();
switch (event.getFrom()) {
- // 蹇冭烦瓒呮椂瑙﹀彂鐨勭绾夸簨浠讹紝璇存槑redis涓凡鍒犻櫎锛屾棤闇�澶勭悊
- case VideoManagerConstants.EVENT_OUTLINE_TIMEOUT:
- break;
- // 璁惧涓诲姩娉ㄩ攢瑙﹀彂鐨勭绾夸簨浠讹紝闇�瑕佸垹闄edis涓殑瓒呮椂鐩戝惉
- case VideoManagerConstants.EVENT_OUTLINE_UNREGISTER:
- redis.del(key);
- break;
- default:
- boolean exist = redis.hasKey(key);
- if (exist) {
+ // 蹇冭烦瓒呮椂瑙﹀彂鐨勭绾夸簨浠讹紝璇存槑redis涓凡鍒犻櫎锛屾棤闇�澶勭悊
+ case VideoManagerConstants.EVENT_OUTLINE_TIMEOUT:
+ break;
+ // 璁惧涓诲姩娉ㄩ攢瑙﹀彂鐨勭绾夸簨浠讹紝闇�瑕佸垹闄edis涓殑瓒呮椂鐩戝惉
+ case VideoManagerConstants.EVENT_OUTLINE_UNREGISTER:
redis.del(key);
- }
+ break;
+ default:
+ boolean exist = redis.hasKey(key);
+ if (exist) {
+ redis.del(key);
+ }
}
// 澶勭悊绂荤嚎鐩戝惉
storager.outline(event.getDeviceId());
+
+ //
}
}
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
index f901e5e..44467ae 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
@@ -181,15 +181,15 @@
try {
String cmdStr= cmdString(leftRight, upDown, inOut, moveSpeed, zoomSpeed);
StringBuffer ptzXml = new StringBuffer(200);
- ptzXml.append("<?xml version=\"1.0\" ?>");
- ptzXml.append("<Control>");
- ptzXml.append("<CmdType>DeviceControl</CmdType>");
- ptzXml.append("<SN>" + (int)((Math.random()*9+1)*100000) + "</SN>");
- ptzXml.append("<DeviceID>" + channelId + "</DeviceID>");
- ptzXml.append("<PTZCmd>" + cmdStr + "</PTZCmd>");
- ptzXml.append("<Info>");
- ptzXml.append("</Info>");
- ptzXml.append("</Control>");
+ ptzXml.append("<?xml version=\"1.0\" ?>\r\n");
+ ptzXml.append("<Control>\r\n");
+ ptzXml.append("<CmdType>DeviceControl</CmdType>\r\n");
+ ptzXml.append("<SN>" + (int)((Math.random()*9+1)*100000) + "</SN>\r\n");
+ ptzXml.append("<DeviceID>" + channelId + "</DeviceID>\r\n");
+ ptzXml.append("<PTZCmd>" + cmdStr + "</PTZCmd>\r\n");
+ ptzXml.append("<Info>\r\n");
+ ptzXml.append("</Info>\r\n");
+ ptzXml.append("</Control>\r\n");
Request request = headerProvider.createMessageRequest(device, ptzXml.toString(), "ViaPtzBranch", "FromPtzTag", "ToPtzTag");
@@ -458,12 +458,12 @@
public boolean deviceInfoQuery(Device device) {
try {
StringBuffer catalogXml = new StringBuffer(200);
- catalogXml.append("<?xml version=\"1.0\" encoding=\"GB2312\"?>");
- catalogXml.append("<Query>");
- catalogXml.append("<CmdType>DeviceInfo</CmdType>");
- catalogXml.append("<SN>" + (int)((Math.random()*9+1)*100000) + "</SN>");
- catalogXml.append("<DeviceID>" + device.getDeviceId() + "</DeviceID>");
- catalogXml.append("</Query>");
+ catalogXml.append("<?xml version=\"1.0\" encoding=\"GB2312\"?>\r\n");
+ catalogXml.append("<Query>\r\n");
+ catalogXml.append("<CmdType>DeviceInfo</CmdType>\r\n");
+ catalogXml.append("<SN>" + (int)((Math.random()*9+1)*100000) + "</SN>\r\n");
+ catalogXml.append("<DeviceID>" + device.getDeviceId() + "</DeviceID>\r\n");
+ catalogXml.append("</Query>\r\n");
Request request = headerProvider.createMessageRequest(device, catalogXml.toString(), "ViaDeviceInfoBranch", "FromDeviceInfoTag", "ToDeviceInfoTag");
transmitRequest(device, request);
@@ -486,12 +486,12 @@
storager.cleanChannelsForDevice(device.getDeviceId());
try {
StringBuffer catalogXml = new StringBuffer(200);
- catalogXml.append("<?xml version=\"1.0\" encoding=\"GB2312\"?>");
- catalogXml.append("<Query>");
- catalogXml.append("<CmdType>Catalog</CmdType>");
- catalogXml.append("<SN>" + (int)((Math.random()*9+1)*100000) + "</SN>");
- catalogXml.append("<DeviceID>" + device.getDeviceId() + "</DeviceID>");
- catalogXml.append("</Query>");
+ catalogXml.append("<?xml version=\"1.0\" encoding=\"GB2312\"?>\r\n");
+ catalogXml.append("<Query>\r\n");
+ catalogXml.append("<CmdType>Catalog</CmdType>\r\n");
+ catalogXml.append("<SN>" + (int)((Math.random()*9+1)*100000) + "</SN>\r\n");
+ catalogXml.append("<DeviceID>" + device.getDeviceId() + "</DeviceID>\r\n");
+ catalogXml.append("</Query>\r\n");
Request request = headerProvider.createMessageRequest(device, catalogXml.toString(), "ViaCatalogBranch", "FromCatalogTag", "ToCatalogTag");
transmitRequest(device, request);
@@ -514,17 +514,17 @@
try {
StringBuffer recordInfoXml = new StringBuffer(200);
- recordInfoXml.append("<?xml version=\"1.0\" encoding=\"GB2312\"?>");
- recordInfoXml.append("<Query>");
- recordInfoXml.append("<CmdType>RecordInfo</CmdType>");
- recordInfoXml.append("<SN>" + (int)((Math.random()*9+1)*100000) + "</SN>");
- recordInfoXml.append("<DeviceID>" + channelId + "</DeviceID>");
- recordInfoXml.append("<StartTime>" + DateUtil.yyyy_MM_dd_HH_mm_ssToISO8601(startTime) + "</StartTime>");
- recordInfoXml.append("<EndTime>" + DateUtil.yyyy_MM_dd_HH_mm_ssToISO8601(endTime) + "</EndTime>");
- recordInfoXml.append("<Secrecy>0</Secrecy>");
+ recordInfoXml.append("<?xml version=\"1.0\" encoding=\"GB2312\"?>\r\n");
+ recordInfoXml.append("<Query>\r\n");
+ recordInfoXml.append("<CmdType>RecordInfo</CmdType>\r\n");
+ recordInfoXml.append("<SN>" + (int)((Math.random()*9+1)*100000) + "</SN>\r\n");
+ recordInfoXml.append("<DeviceID>" + channelId + "</DeviceID>\r\n");
+ recordInfoXml.append("<StartTime>" + DateUtil.yyyy_MM_dd_HH_mm_ssToISO8601(startTime) + "</StartTime>\r\n");
+ recordInfoXml.append("<EndTime>" + DateUtil.yyyy_MM_dd_HH_mm_ssToISO8601(endTime) + "</EndTime>\r\n");
+ recordInfoXml.append("<Secrecy>0</Secrecy>\\r\n");
// 澶у崕NVR瑕佹眰蹇呴』澧炲姞涓�涓�间负all鐨勬枃鏈厓绱犺妭鐐筎ype
- recordInfoXml.append("<Type>all</Type>");
- recordInfoXml.append("</Query>");
+ recordInfoXml.append("<Type>all</Type>\r\n");
+ recordInfoXml.append("</Query>\r\n");
Request request = headerProvider.createMessageRequest(device, recordInfoXml.toString(), "ViaRecordInfoBranch", "FromRecordInfoTag", "ToRecordInfoTag");
transmitRequest(device, request);
diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRunner.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRunner.java
index 7d7edf4..5421206 100644
--- a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRunner.java
+++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRunner.java
@@ -99,6 +99,7 @@
param.put("secret",mediaSecret);
param.put("hook.enable","1");
param.put("hook.on_flow_report","");
+ param.put("hook.on_play","");
param.put("hook.on_http_access","");
param.put("hook.on_publish",String.format("%s/on_publish", hookPrex));
param.put("hook.on_record_mp4","");
@@ -107,6 +108,7 @@
param.put("hook.on_rtsp_realm","");
param.put("hook.on_server_started",String.format("%s/on_server_started", hookPrex));
param.put("hook.on_shell_login",String.format("%s/on_shell_login", hookPrex));
+ param.put("hook.on_stream_changed",String.format("%s/on_stream_changed", hookPrex));
param.put("hook.on_stream_none_reader",String.format("%s/on_stream_none_reader", hookPrex));
param.put("hook.on_stream_not_found",String.format("%s/on_stream_not_found", hookPrex));
param.put("hook.timeoutSec","20");
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/redis/VideoManagerRedisStoragerImpl.java b/src/main/java/com/genersoft/iot/vmp/storager/redis/VideoManagerRedisStoragerImpl.java
index 91b60a1..0c58763 100644
--- a/src/main/java/com/genersoft/iot/vmp/storager/redis/VideoManagerRedisStoragerImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/redis/VideoManagerRedisStoragerImpl.java
@@ -93,7 +93,7 @@
":" + channel.getName() +
"_" + (channel.getStatus() == 1 ? "on":"off") +
"_" + (channelMap.get(channelId).size() > 0)+
- "_" + channel.getParentId(),
+ "_" + (StringUtils.isEmpty(channel.getParentId())?null:channel.getParentId()),
channel);
// 鏇存柊device涓殑閫氶亾鏁伴噺
Device device = (Device)redis.get(VideoManagerConstants.DEVICE_PREFIX+deviceId);
@@ -113,7 +113,14 @@
DeviceChannel deviceChannel = queryChannel(deviceId, parentId);
if (deviceChannel != null) {
deviceChannel.setSubCount(channelMap.get(parentId).size());
- redis.set(VideoManagerConstants.CACHEKEY_PREFIX+deviceId + "_" + deviceChannel.getChannelId(),
+// redis.set(VideoManagerConstants.CACHEKEY_PREFIX+deviceId + "_" + deviceChannel.getChannelId(),
+// deviceChannel);
+ redis.set(VideoManagerConstants.CACHEKEY_PREFIX + deviceId +
+ "_" + deviceChannel.getChannelId() +
+ ":" + deviceChannel.getName() +
+ "_" + (deviceChannel.getStatus() == 1 ? "on":"off") +
+ "_" + (channelMap.get(deviceChannel.getChannelId()).size() > 0)+
+ "_" + (StringUtils.isEmpty(deviceChannel.getParentId())?null:deviceChannel.getParentId()),
deviceChannel);
}
@@ -438,7 +445,8 @@
if (subChannel == null) {
subChannel = new HashSet<>();
}
- if (!"null".equals(s[6])) {
+ System.out.println(key);
+ if (s.length == 7 && !"null".equals(s[6])) {
subChannel.add(s[6]);
}
channelMap.put(channelId, subChannel);
--
Gitblit v1.8.0