From 07a8ef9e256c70a3a5b15782add81dcad1e2ffc2 Mon Sep 17 00:00:00 2001 From: panlinlin <648540858@qq.com> Date: 星期五, 14 六月 2024 00:03:57 +0800 Subject: [PATCH] SIP只有一个监听时,直接返回 --- src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java | 28 +++++++++++----------------- 1 files changed, 11 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java index 417ae44..39c67c2 100755 --- a/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java @@ -383,7 +383,7 @@ }, userSetting.getPlayTimeout()); try { - mediaServerService.startSendRtpPassive(mediaServerItem, null, sendRtpItem, userSetting.getPlayTimeout() * 1000); + mediaServerService.startSendRtpPassive(mediaServerItem, sendRtpItem, userSetting.getPlayTimeout() * 1000); }catch (ControllerException e) { mediaServerService.releaseSsrc(mediaServerItem.getId(), sendRtpItem.getSsrc()); logger.info("[璇煶瀵硅]澶辫触 deviceId: {}, channelId: {}", device.getDeviceId(), channelId); @@ -1003,6 +1003,7 @@ dynamicTask.stop(downLoadTimeOutTaskKey); callback.run(InviteErrorCode.ERROR_FOR_SIGNALLING_TIMEOUT.getCode(), String.format("褰曞儚涓嬭浇澶辫触锛� 閿欒鐮侊細 %s, %s", event.statusCode, event.msg), null); + mediaServerService.releaseSsrc(mediaServerItem.getId(), ssrcInfo.getSsrc()); streamSession.remove(device.getDeviceId(), channelId, ssrcInfo.getStream()); inviteStreamService.removeInviteInfo(inviteInfo); }; @@ -1037,7 +1038,8 @@ InviteInfo inviteInfoForNew = inviteStreamService.getInviteInfo(inviteInfo.getType(), inviteInfo.getDeviceId() , inviteInfo.getChannelId(), inviteInfo.getStream()); inviteInfoForNew.getStreamInfo().setDownLoadFilePath(downloadFileInfo); - inviteStreamService.updateInviteInfo(inviteInfoForNew); + // 涓嶅彲浠ラ┈涓婄Щ闄や細瀵艰嚧鍚庣画鎺ュ彛鎷夸笉鍒颁笅杞藉湴鍧� + inviteStreamService.updateInviteInfo(inviteInfoForNew, 60*15L); }; Hook hook = Hook.getInstance(HookType.on_record_mp4, "rtp", ssrcInfo.getStream(), mediaServerItem.getId()); // 璁剧疆杩囨湡鏃堕棿锛屼笅杞藉け璐ユ椂鑷姩澶勭悊璁㈤槄鏁版嵁 @@ -1081,12 +1083,8 @@ return null; } String app = "rtp"; - MediaInfo mediaInfo = mediaServerService.getMediaInfo(mediaServerItem, app, stream); - if (mediaInfo == null) { - logger.warn("[鑾峰彇涓嬭浇杩涘害] 鏌ヨ杩涘害澶辫触, 鑺傜偣Id锛� {}锛� {}/{}", mediaServerId, app, stream); - return null; - } - if (mediaInfo.getDuration() == 0) { + Long duration = mediaServerService.updateDownloadProcess(mediaServerItem, app, stream); + if (duration == null || duration == 0) { inviteInfo.getStreamInfo().setProgress(0); } else { String startTime = inviteInfo.getStreamInfo().getStartTime(); @@ -1095,7 +1093,7 @@ long start = DateUtil.yyyy_MM_dd_HH_mm_ssToTimestamp(startTime); long end = DateUtil.yyyy_MM_dd_HH_mm_ssToTimestamp(endTime); - BigDecimal currentCount = new BigDecimal(mediaInfo.getDuration()); + BigDecimal currentCount = new BigDecimal(duration); BigDecimal totalCount = new BigDecimal((end - start) * 1000); BigDecimal divide = currentCount.divide(totalCount, 2, RoundingMode.HALF_UP); double process = divide.doubleValue(); @@ -1413,18 +1411,14 @@ // 寮�濮嬪彂娴� MediaServer mediaInfo = mediaServerService.getOne(sendRtpItem.getMediaServerId()); - if (mediaInfo == null) { - RequestPushStreamMsg requestPushStreamMsg = RequestPushStreamMsg.getInstance(sendRtpItem); - redisGbPlayMsgListener.sendMsgForStartSendRtpStream(sendRtpItem.getServerId(), requestPushStreamMsg, () -> { - startSendRtpStreamFailHand(sendRtpItem, platform, callIdHeader); - }); - } else { + if (mediaInfo != null) { try { if (sendRtpItem.isTcpActive()) { - mediaServerService.startSendRtpPassive(mediaInfo, platform, sendRtpItem, null); + mediaServerService.startSendRtpPassive(mediaInfo, sendRtpItem, null); } else { - mediaServerService.startSendRtp(mediaInfo, platform, sendRtpItem); + mediaServerService.startSendRtp(mediaInfo, sendRtpItem); } + redisCatchStorage.sendPlatformStartPlayMsg(sendRtpItem, platform); }catch (ControllerException e) { logger.error("RTP鎺ㄦ祦澶辫触: {}", e.getMessage()); startSendRtpStreamFailHand(sendRtpItem, platform, callIdHeader); -- Gitblit v1.8.0