فهرست منبع

修复推流关联平台的bug

648540858 3 سال پیش
والد
کامیت
d21a00418e

+ 7 - 7
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java

@@ -670,6 +670,7 @@ public class SIPCommander implements ISIPCommander {
 		try {
 			SsrcTransaction ssrcTransaction = streamSession.getSsrcTransaction(deviceId, channelId, null, stream);
 			ClientTransaction transaction = streamSession.getTransactionByStream(deviceId, channelId, stream);
+
 			if (transaction == null) {
 				logger.warn("[ {} -> {}]停止视频流的时候发现事务已丢失", deviceId, channelId);
 				SipSubscribe.EventResult<Object> eventResult = new SipSubscribe.EventResult<>();
@@ -685,7 +686,12 @@ public class SIPCommander implements ISIPCommander {
 				if (stream == null) return;
 				dialog = streamSession.getDialogByStream(deviceId, channelId, stream);
 			}
-
+			if (ssrcTransaction != null) {
+				MediaServerItem mediaServerItem = mediaServerService.getOne(ssrcTransaction.getMediaServerId());
+				mediaServerService.releaseSsrc(mediaServerItem.getId(), ssrcTransaction.getSsrc());
+				mediaServerService.closeRTPServer(deviceId, channelId, ssrcTransaction.getStream());
+				streamSession.remove(deviceId, channelId, ssrcTransaction.getStream());
+			}
 
 			if (dialog == null) {
 				logger.warn("[ {} -> {}]停止视频流的时候发现对话已丢失", deviceId, channelId);
@@ -730,12 +736,6 @@ public class SIPCommander implements ISIPCommander {
 
 			dialog.sendRequest(clientTransaction);
 
-			if (ssrcTransaction != null) {
-				MediaServerItem mediaServerItem = mediaServerService.getOne(ssrcTransaction.getMediaServerId());
-				mediaServerService.releaseSsrc(mediaServerItem.getId(), ssrcTransaction.getSsrc());
-				mediaServerService.closeRTPServer(deviceId, channelId, ssrcTransaction.getStream());
-				streamSession.remove(deviceId, channelId, ssrcTransaction.getStream());
-			}
 		} catch (SipException | ParseException e) {
 			e.printStackTrace();
 		}

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRTPServerFactory.java

@@ -95,7 +95,7 @@ public class ZLMRTPServerFactory {
             if (openRtpServerResultJson.getInteger("code") == 0) {
                 result= openRtpServerResultJson.getInteger("port");
             }else {
-                logger.error("创建RTP Server 失败 {}: " + openRtpServerResultJson.getString("msg"),  param.get("port"));
+                logger.error("创建RTP Server 失败 {}: ", openRtpServerResultJson.getString("msg"));
             }
         }else {
             //  检查ZLM状态

+ 3 - 4
src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java

@@ -885,12 +885,11 @@ public class VideoManagerStoragerImpl implements IVideoManagerStorager {
 			List<ParentPlatform> parentPlatforms = parentPlatformMapper.selectAllAhareAllLiveStream();
 			if (parentPlatforms.size() > 0) {
 				for (ParentPlatform parentPlatform : parentPlatforms) {
-					streamPushItem.setCatalogId(parentPlatform.getCatalogId());
-					streamPushItem.setPlatformId(parentPlatform.getServerGBId());
-					String stream = streamPushItem.getStream();
-					StreamProxyItem streamProxyItems = platformGbStreamMapper.selectOne(streamPushItem.getApp(), stream,
+					StreamProxyItem streamProxyItems = platformGbStreamMapper.selectOne(streamPushItem.getApp(), streamPushItem.getStream(),
 							parentPlatform.getServerGBId());
 					if (streamProxyItems == null) {
+						streamPushItem.setCatalogId(parentPlatform.getCatalogId());
+						streamPushItem.setPlatformId(parentPlatform.getServerGBId());
 						platformGbStreamMapper.add(streamPushItem);
 						eventPublisher.catalogEventPublishForStream(parentPlatform.getServerGBId(), streamPushItem, CatalogEvent.ADD);
 					}

+ 1 - 1
web_src/src/components/dialog/chooseChannelForStream.vue

@@ -174,7 +174,7 @@ export default {
                     page: that.currentPage,
                     count: that.count,
                     query: that.searchSrt,
-                    pushing: that.online,
+                    pushing: that.pushing,
                     platformId: that.platformId,
                     catalogId: that.catalogId,
                     mediaServerId: that.mediaServerId