From f513f5ef67409a0db26d85a95a5e3b127595aaca Mon Sep 17 00:00:00 2001
From: mk1990 <153958232@qq.com>
Date: 星期三, 25 五月 2022 14:09:43 +0800
Subject: [PATCH] 解决海康设备在实时监控模块中无法获取到通道信息
---
src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java | 41 ++++++++++++++++++++++-------------------
1 files changed, 22 insertions(+), 19 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java
index a667bab..5468fae 100644
--- a/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java
@@ -18,6 +18,7 @@
import com.genersoft.iot.vmp.service.bean.SSRCInfo;
import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
import com.genersoft.iot.vmp.storager.dao.MediaServerMapper;
+import com.genersoft.iot.vmp.utils.DateUtil;
import com.genersoft.iot.vmp.utils.redis.JedisUtil;
import com.genersoft.iot.vmp.utils.redis.RedisUtil;
import com.genersoft.iot.vmp.vmanager.bean.WVPResult;
@@ -89,14 +90,12 @@
@Autowired
JedisUtil jedisUtil;
- private final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-
/**
* 鍒濆鍖�
*/
@Override
public void updateVmServer(List<MediaServerItem> mediaServerItemList) {
- logger.info("[缂撳瓨鍒濆鍖朷 Media Server ");
+ logger.info("[zlm] 缂撳瓨鍒濆鍖� ");
for (MediaServerItem mediaServerItem : mediaServerItemList) {
if (StringUtils.isEmpty(mediaServerItem.getId())) {
continue;
@@ -117,12 +116,12 @@
}
@Override
- public SSRCInfo openRTPServer(MediaServerItem mediaServerItem, String streamId) {
- return openRTPServer(mediaServerItem, streamId, false);
+ public SSRCInfo openRTPServer(MediaServerItem mediaServerItem, String streamId, boolean ssrcCheck, boolean isPlayback) {
+ return openRTPServer(mediaServerItem, streamId, null, ssrcCheck,isPlayback);
}
@Override
- public SSRCInfo openRTPServer(MediaServerItem mediaServerItem, String streamId, boolean isPlayback) {
+ public SSRCInfo openRTPServer(MediaServerItem mediaServerItem, String streamId, String presetSsrc, boolean ssrcCheck, boolean isPlayback) {
if (mediaServerItem == null || mediaServerItem.getId() == null) {
return null;
}
@@ -135,10 +134,14 @@
return null;
}else {
String ssrc = null;
- if (isPlayback) {
- ssrc = ssrcConfig.getPlayBackSsrc();
+ if (presetSsrc != null) {
+ ssrc = presetSsrc;
}else {
- ssrc = ssrcConfig.getPlaySsrc();
+ if (isPlayback) {
+ ssrc = ssrcConfig.getPlayBackSsrc();
+ }else {
+ ssrc = ssrcConfig.getPlaySsrc();
+ }
}
if (streamId == null) {
@@ -146,7 +149,7 @@
}
int rtpServerPort = mediaServerItem.getRtpProxyPort();
if (mediaServerItem.isRtpEnable()) {
- rtpServerPort = zlmrtpServerFactory.createRTPServer(mediaServerItem, streamId);
+ rtpServerPort = zlmrtpServerFactory.createRTPServer(mediaServerItem, streamId, ssrcCheck?Integer.parseInt(ssrc):0);
}
redisUtil.set(key, mediaServerItem);
return new SSRCInfo(rtpServerPort, ssrc, streamId);
@@ -227,7 +230,7 @@
result.sort((serverItem1, serverItem2)->{
int sortResult = 0;
try {
- sortResult = format.parse(serverItem1.getCreateTime()).compareTo(format.parse(serverItem2.getCreateTime()));
+ sortResult = DateUtil.format.parse(serverItem1.getCreateTime()).compareTo(DateUtil.format.parse(serverItem2.getCreateTime()));
} catch (ParseException e) {
e.printStackTrace();
}
@@ -287,8 +290,8 @@
@Override
public WVPResult<String> add(MediaServerItem mediaServerItem) {
WVPResult<String> result = new WVPResult<>();
- mediaServerItem.setCreateTime(this.format.format(System.currentTimeMillis()));
- mediaServerItem.setUpdateTime(this.format.format(System.currentTimeMillis()));
+ mediaServerItem.setCreateTime(DateUtil.getNow());
+ mediaServerItem.setUpdateTime(DateUtil.getNow());
mediaServerItem.setHookAliveInterval(120);
JSONObject responseJSON = zlmresTfulUtils.getMediaServerConfig(mediaServerItem);
if (responseJSON != null) {
@@ -349,7 +352,7 @@
*/
@Override
public void zlmServerOnline(ZLMServerConfig zlmServerConfig) {
- logger.info("[ ZLM锛歿} ]-[ {}:{} ]姝e湪杩炴帴",
+ logger.info("[ZLM] 姝e湪杩炴帴 : {} -> {}:{}",
zlmServerConfig.getGeneralMediaServerId(), zlmServerConfig.getIp(), zlmServerConfig.getHttpPort());
MediaServerItem serverItem = mediaServerMapper.queryOne(zlmServerConfig.getGeneralMediaServerId());
@@ -402,7 +405,7 @@
setZLMConfig(serverItem, "0".equals(zlmServerConfig.getHookEnable()));
}
publisher.zlmOnlineEventPublish(serverItem.getId());
- logger.info("[ ZLM锛歿} ]-[ {}:{} ]杩炴帴鎴愬姛",
+ logger.info("[ZLM] 杩炴帴鎴愬姛 {} - {}:{} ",
zlmServerConfig.getGeneralMediaServerId(), zlmServerConfig.getIp(), zlmServerConfig.getHttpPort());
}
@@ -480,7 +483,7 @@
*/
@Override
public void setZLMConfig(MediaServerItem mediaServerItem, boolean restart) {
- logger.info("[ ZLM锛歿} ]-[ {}:{} ]姝e湪璁剧疆zlm",
+ logger.info("[ZLM] 姝e湪璁剧疆 锛歿} -> {}:{}",
mediaServerItem.getId(), mediaServerItem.getIp(), mediaServerItem.getHttpPort());
String protocol = sslEnabled ? "https" : "http";
String hookPrex = String.format("%s://%s:%s/index/hook", protocol, mediaServerItem.getHookIp(), serverPort);
@@ -524,17 +527,17 @@
if (responseJSON != null && responseJSON.getInteger("code") == 0) {
if (restart) {
- logger.info("[ ZLM锛歿} ]-[ {}:{} ]璁剧疆zlm鎴愬姛, 寮�濮嬮噸鍚互淇濊瘉閰嶇疆鐢熸晥",
+ logger.info("[ZLM] 璁剧疆鎴愬姛,寮�濮嬮噸鍚互淇濊瘉閰嶇疆鐢熸晥 {} -> {}:{}",
mediaServerItem.getId(), mediaServerItem.getIp(), mediaServerItem.getHttpPort());
zlmresTfulUtils.restartServer(mediaServerItem);
}else {
- logger.info("[ ZLM锛歿} ]-[ {}:{} ]璁剧疆zlm鎴愬姛",
+ logger.info("[ZLM] 璁剧疆鎴愬姛 {} -> {}:{}",
mediaServerItem.getId(), mediaServerItem.getIp(), mediaServerItem.getHttpPort());
}
}else {
- logger.info("[ ZLM锛歿} ]-[ {}:{} ]璁剧疆zlm澶辫触",
+ logger.info("[ZLM] 璁剧疆zlm澶辫触 {} -> {}:{}",
mediaServerItem.getId(), mediaServerItem.getIp(), mediaServerItem.getHttpPort());
}
--
Gitblit v1.8.0