From 7b46769a1674a59d4e243c1f3b6d8b481099b645 Mon Sep 17 00:00:00 2001 From: panlinlin <648540858@qq.com> Date: 星期四, 13 六月 2024 23:15:51 +0800 Subject: [PATCH] 修复国标录像下载后负载统计未清除的BUG --- src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java | 3 ++- src/main/java/com/genersoft/iot/vmp/conf/MediaConfig.java | 14 +++++++++++--- src/main/java/com/genersoft/iot/vmp/service/IInviteStreamService.java | 2 ++ src/main/java/com/genersoft/iot/vmp/service/impl/InviteStreamServiceImpl.java | 16 ++++++++++++++-- 4 files changed, 29 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/conf/MediaConfig.java b/src/main/java/com/genersoft/iot/vmp/conf/MediaConfig.java index 0770172..a9ea67f 100644 --- a/src/main/java/com/genersoft/iot/vmp/conf/MediaConfig.java +++ b/src/main/java/com/genersoft/iot/vmp/conf/MediaConfig.java @@ -27,7 +27,7 @@ @Value("${media.ip}") private String ip; - @Value("${media.wan_ip}") + @Value("${media.wan_ip:}") private String wanIp; @Value("${media.hook-ip:127.0.0.1}") @@ -36,10 +36,10 @@ @Value("${sip.domain}") private String sipDomain; - @Value("${media.sdp-ip:${media.wan_ip}}") + @Value("${media.sdp-ip:${media.wan_ip:}}") private String sdpIp; - @Value("${media.stream-ip:${media.wan_ip}}") + @Value("${media.stream-ip:${media.wan_ip:}}") private String streamIp; @Value("${media.http-port:0}") @@ -283,4 +283,12 @@ } return false; } + + public String getWanIp() { + return wanIp; + } + + public void setWanIp(String wanIp) { + this.wanIp = wanIp; + } } diff --git a/src/main/java/com/genersoft/iot/vmp/service/IInviteStreamService.java b/src/main/java/com/genersoft/iot/vmp/service/IInviteStreamService.java index c06400d..e54fa92 100755 --- a/src/main/java/com/genersoft/iot/vmp/service/IInviteStreamService.java +++ b/src/main/java/com/genersoft/iot/vmp/service/IInviteStreamService.java @@ -14,6 +14,8 @@ */ void updateInviteInfo(InviteInfo inviteInfo); + void updateInviteInfo(InviteInfo inviteInfo, Long time); + InviteInfo updateInviteInfoForStream(InviteInfo inviteInfo, String stream); /** diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/InviteStreamServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/InviteStreamServiceImpl.java index 6e00960..e5847f6 100755 --- a/src/main/java/com/genersoft/iot/vmp/service/impl/InviteStreamServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/service/impl/InviteStreamServiceImpl.java @@ -24,6 +24,7 @@ import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.CopyOnWriteArrayList; +import java.util.concurrent.TimeUnit; @Service @DS("master") @@ -64,9 +65,13 @@ } } } - @Override public void updateInviteInfo(InviteInfo inviteInfo) { + updateInviteInfo(inviteInfo, null); + } + + @Override + public void updateInviteInfo(InviteInfo inviteInfo, Long time) { if (inviteInfo == null || (inviteInfo.getDeviceId() == null || inviteInfo.getChannelId() == null)) { logger.warn("[鏇存柊Invite淇℃伅]锛屽弬鏁颁笉鍏細 {}", JSON.toJSON(inviteInfo)); return; @@ -118,7 +123,11 @@ ":" + inviteInfoForUpdate.getChannelId() + ":" + inviteInfoForUpdate.getStream()+ ":" + inviteInfoForUpdate.getSsrcInfo().getSsrc(); - redisTemplate.opsForValue().set(key, inviteInfoForUpdate); + if (time != null && time > 0) { + redisTemplate.opsForValue().set(key, inviteInfoForUpdate, time, TimeUnit.SECONDS); + }else { + redisTemplate.opsForValue().set(key, inviteInfoForUpdate); + } } @Override @@ -243,6 +252,9 @@ String keyStr = (String) keyObj; InviteInfo inviteInfo = (InviteInfo) redisTemplate.opsForValue().get(keyStr); if (inviteInfo != null && inviteInfo.getStreamInfo() != null && inviteInfo.getStreamInfo().getMediaServerId().equals(mediaServerId)) { + if (inviteInfo.getType().equals(InviteSessionType.DOWNLOAD) && inviteInfo.getStreamInfo().getProgress() == 1) { + continue; + } count++; } } 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 bc85ecf..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 @@ -1038,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()); // 璁剧疆杩囨湡鏃堕棿锛屼笅杞藉け璐ユ椂鑷姩澶勭悊璁㈤槄鏁版嵁 -- Gitblit v1.8.0