From 2753e1acf3cbe184b686a1e050d8cde0728cdb7f Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期一, 06 十二月 2021 14:04:44 +0800
Subject: [PATCH] 拉流代理支持国标级联之间共享
---
src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java | 2 +-
src/main/java/com/genersoft/iot/vmp/service/IStreamProxyService.java | 2 ++
src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaListManager.java | 8 +++++++-
src/main/java/com/genersoft/iot/vmp/service/impl/StreamProxyServiceImpl.java | 22 +++++++++++++++++++++-
src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java | 2 ++
5 files changed, 33 insertions(+), 3 deletions(-)
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 26ce628..caa68ef 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
@@ -346,7 +346,7 @@
if (item.getOriginType() == OriginType.RTSP_PUSH.ordinal()
|| item.getOriginType() == OriginType.RTMP_PUSH.ordinal()
|| item.getOriginType() == OriginType.RTC_PUSH.ordinal() ) {
- zlmMediaListManager.addMedia(item);
+ zlmMediaListManager.addPush(item);
}
}else {
// 鍏煎娴佹敞閿�鏃剁被鍨嬮敊璇殑闂锛岀瓑zlm鏇存柊鍚庡垹闄�
diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaListManager.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaListManager.java
index baf0b3c..f185d82 100644
--- a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaListManager.java
+++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaListManager.java
@@ -7,6 +7,7 @@
import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem;
import com.genersoft.iot.vmp.media.zlm.dto.StreamProxyItem;
import com.genersoft.iot.vmp.media.zlm.dto.StreamPushItem;
+import com.genersoft.iot.vmp.service.IStreamProxyService;
import com.genersoft.iot.vmp.service.IStreamPushService;
import com.genersoft.iot.vmp.service.bean.ThirdPartyGB;
import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
@@ -46,6 +47,9 @@
@Autowired
private IStreamPushService streamPushService;
+
+ @Autowired
+ private IStreamProxyService streamProxyService;
@Autowired
private StreamPushMapper streamPushMapper;
@@ -101,7 +105,7 @@
updateMedia(mediaServerItem, app, streamId);
}
- public void addMedia(MediaItem mediaItem) {
+ public void addPush(MediaItem mediaItem) {
// 鏌ユ壘姝ょ洿鎾祦鏄惁瀛樺湪redis棰勮gbId
StreamPushItem transform = streamPushService.transform(mediaItem);
// 浠巗treamId鍙栧嚭鏌ヨ鍏抽敭鍊�
@@ -179,6 +183,8 @@
return result;
}
+
+
// public void clearAllSessions() {
// logger.info("娓呯┖鎵�鏈夊浗鏍囩浉鍏崇殑session");
// JSONObject allSessionJSON = zlmresTfulUtils.getAllSession();
diff --git a/src/main/java/com/genersoft/iot/vmp/service/IStreamProxyService.java b/src/main/java/com/genersoft/iot/vmp/service/IStreamProxyService.java
index 60f3303..6922538 100644
--- a/src/main/java/com/genersoft/iot/vmp/service/IStreamProxyService.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/IStreamProxyService.java
@@ -2,8 +2,10 @@
import com.alibaba.fastjson.JSONObject;
import com.genersoft.iot.vmp.common.StreamInfo;
+import com.genersoft.iot.vmp.media.zlm.dto.MediaItem;
import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem;
import com.genersoft.iot.vmp.media.zlm.dto.StreamProxyItem;
+import com.genersoft.iot.vmp.media.zlm.dto.StreamPushItem;
import com.genersoft.iot.vmp.vmanager.bean.WVPResult;
import com.github.pagehelper.PageInfo;
diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/StreamProxyServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/StreamProxyServiceImpl.java
index 2961bc6..6dfc6cb 100644
--- a/src/main/java/com/genersoft/iot/vmp/service/impl/StreamProxyServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/impl/StreamProxyServiceImpl.java
@@ -3,15 +3,19 @@
import com.alibaba.fastjson.JSONObject;
import com.genersoft.iot.vmp.common.StreamInfo;
import com.genersoft.iot.vmp.gb28181.bean.GbStream;
+import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform;
import com.genersoft.iot.vmp.media.zlm.ZLMRESTfulUtils;
+import com.genersoft.iot.vmp.media.zlm.dto.MediaItem;
import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem;
import com.genersoft.iot.vmp.media.zlm.dto.StreamProxyItem;
+import com.genersoft.iot.vmp.media.zlm.dto.StreamPushItem;
import com.genersoft.iot.vmp.service.IGbStreamService;
import com.genersoft.iot.vmp.service.IMediaServerService;
import com.genersoft.iot.vmp.service.IMediaService;
import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
import com.genersoft.iot.vmp.storager.IVideoManagerStorager;
import com.genersoft.iot.vmp.storager.dao.GbStreamMapper;
+import com.genersoft.iot.vmp.storager.dao.ParentPlatformMapper;
import com.genersoft.iot.vmp.storager.dao.PlatformGbStreamMapper;
import com.genersoft.iot.vmp.storager.dao.StreamProxyMapper;
import com.genersoft.iot.vmp.service.IStreamProxyService;
@@ -21,6 +25,7 @@
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
import java.util.ArrayList;
import java.util.List;
@@ -50,6 +55,9 @@
@Autowired
private PlatformGbStreamMapper platformGbStreamMapper;
+
+ @Autowired
+ private ParentPlatformMapper parentPlatformMapper;
@Autowired
private IGbStreamService gbStreamService;
@@ -112,7 +120,7 @@
}else {
result.append("淇濆瓨澶辫触");
}
- if (param.getPlatformGbId() != null && streamLive) {
+ if ( !StringUtils.isEmpty(param.getPlatformGbId()) && streamLive) {
List<GbStream> gbStreams = new ArrayList<>();
gbStreams.add(param);
if (gbStreamService.addPlatformInfo(gbStreams, param.getPlatformGbId())){
@@ -121,6 +129,18 @@
result.append(", 鍏宠仈鍥芥爣骞冲彴[ " + param.getPlatformGbId() + " ]澶辫触");
}
}
+ // 鏌ユ壘寮�鍚簡鍏ㄩ儴鐩存挱娴佸叡浜殑涓婄骇骞冲彴
+ List<ParentPlatform> parentPlatforms = parentPlatformMapper.selectAllAhareAllLiveStream();
+ if (parentPlatforms.size() > 0) {
+ for (ParentPlatform parentPlatform : parentPlatforms) {
+ param.setPlatformId(parentPlatform.getServerGBId());
+ String stream = param.getStream();
+ StreamProxyItem streamProxyItems = platformGbStreamMapper.selectOne(param.getApp(), stream, parentPlatform.getServerGBId());
+ if (streamProxyItems == null) {
+ platformGbStreamMapper.add(param);
+ }
+ }
+ }
wvpResult.setMsg(result.toString());
return wvpResult;
}
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java b/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java
index 916f8a5..a5a4be7 100644
--- a/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java
@@ -514,6 +514,8 @@
logger.error("鍚戞暟鎹簱娣诲姞娴佷唬鐞嗗け璐ワ細", e);
dataSourceTransactionManager.rollback(transactionStatus);
}
+
+
return result;
}
--
Gitblit v1.8.0