From 241d223b8a14d9bd4e0d8c24809835355a29fa9d Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: Thu, 25 Jan 2024 17:46:38 +0800 Subject: [PATCH 01/10] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/genersoft/iot/vmp/media/zlm/AssistRESTfulUtils.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/AssistRESTfulUtils.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/AssistRESTfulUtils.java index c5be4874..cb0d3ddf 100644 --- a/src/main/java/com/genersoft/iot/vmp/media/zlm/AssistRESTfulUtils.java +++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/AssistRESTfulUtils.java @@ -161,6 +161,7 @@ public class AssistRESTfulUtils { if (mediaServerItem == null) { return null; } + logger.info("[访问assist]: {}, 参数: {}", url, param); JSONObject responseJSON = new JSONObject(); //-2自定义流媒体 调用错误码 responseJSON.put("code",-2); From 3d68b56bb5ecbc3d34b2901c671dc7f1f0f82f74 Mon Sep 17 00:00:00 2001 From: pedoc Date: Mon, 29 Jan 2024 18:05:17 +0800 Subject: [PATCH 02/10] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=9C=AA=E9=85=8D?= =?UTF-8?q?=E7=BD=AEsipdomain=E6=97=B6=E5=87=BA=E7=8E=B0=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/genersoft/iot/vmp/gb28181/session/SSRCFactory.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/session/SSRCFactory.java b/src/main/java/com/genersoft/iot/vmp/gb28181/session/SSRCFactory.java index 7ebc29f3..2422b8a7 100755 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/session/SSRCFactory.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/session/SSRCFactory.java @@ -38,7 +38,8 @@ public class SSRCFactory { public void initMediaServerSSRC(String mediaServerId, Set usedSet) { - String ssrcPrefix = sipConfig.getDomain().substring(3, 8); + String sipDomain = sipConfig.getDomain(); + String ssrcPrefix = sipDomain.length() >= 8 ? sipDomain.substring(3, 8) : sipDomain; String redisKey = SSRC_INFO_KEY + userSetting.getServerId() + "_" + mediaServerId; List ssrcList = new ArrayList<>(); for (int i = 1; i < MAX_STREAM_COUNT; i++) { From 695f9b7f4d24e5dc0bc80d9093d4a3ca61188593 Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: Mon, 29 Jan 2024 19:31:07 +0800 Subject: [PATCH 03/10] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=9D=A5=E8=87=AA?= =?UTF-8?q?=E5=85=B6=E4=BB=96wvp=E7=9A=84=E6=8E=A8=E6=B5=81=E6=97=B6?= =?UTF-8?q?=E5=B9=B3=E5=8F=B0=E5=90=8D=E7=A7=B0=E6=9C=AA=E8=B5=8B=E5=80=BC?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../transmit/event/request/impl/InviteRequestProcessor.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java index f9a0b7e6..ffe932de 100755 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java @@ -808,7 +808,7 @@ public class InviteRequestProcessor extends SIPRequestProcessorParent implements // 发送redis消息 redisGbPlayMsgListener.sendMsg(streamPushItem.getServerId(), streamPushItem.getMediaServerId(), streamPushItem.getApp(), streamPushItem.getStream(), addressStr, port, ssrc, requesterId, - channelId, mediaTransmissionTCP, platform.isRtcp(),null, responseSendItemMsg -> { + channelId, mediaTransmissionTCP, platform.isRtcp(),platform.getName(), responseSendItemMsg -> { SendRtpItem sendRtpItem = responseSendItemMsg.getSendRtpItem(); if (sendRtpItem == null || responseSendItemMsg.getMediaServerItem() == null) { logger.warn("服务器端口资源不足"); From ab34cb37f33f8a64df206c18d7fc5b970be5d0cb Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: Mon, 29 Jan 2024 21:20:03 +0800 Subject: [PATCH 04/10] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=A9=BA=E6=8C=87?= =?UTF-8?q?=E9=92=88=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java | 4 ++++ .../iot/vmp/storager/impl/VideoManagerStorageImpl.java | 2 ++ 2 files changed, 6 insertions(+) diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java index b82bb71e..19bf8e77 100755 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java @@ -611,6 +611,10 @@ public class SIPCommander implements ISIPCommander { */ @Override public void streamByeCmd(Device device, String channelId, String stream, String callId, SipSubscribe.Event okEvent) throws InvalidArgumentException, SipException, ParseException, SsrcTransactionNotFoundException { + if (device == null) { + logger.warn("[发送BYE] device为null"); + return; + } SsrcTransaction ssrcTransaction = streamSession.getSsrcTransaction(device.getDeviceId(), channelId, callId, stream); if (ssrcTransaction == null) { throw new SsrcTransactionNotFoundException(device.getDeviceId(), channelId, callId, stream); diff --git a/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java b/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java index af9454d2..36aac212 100755 --- a/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java @@ -1,5 +1,6 @@ package com.genersoft.iot.vmp.storager.impl; +import com.baomidou.dynamic.datasource.annotation.DS; import com.genersoft.iot.vmp.conf.SipConfig; import com.genersoft.iot.vmp.conf.UserSetting; import com.genersoft.iot.vmp.gb28181.bean.*; @@ -38,6 +39,7 @@ import java.util.concurrent.ConcurrentHashMap; */ @SuppressWarnings("rawtypes") @Component +@DS("master") public class VideoManagerStorageImpl implements IVideoManagerStorage { private final Logger logger = LoggerFactory.getLogger(VideoManagerStorageImpl.class); From 3436e73e720b5a15cf038369a88f2e99c1ad17f5 Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: Tue, 30 Jan 2024 10:55:41 +0800 Subject: [PATCH 05/10] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BA=91=E7=AB=AF?= =?UTF-8?q?=E5=BD=95=E5=83=8F=E6=97=B6=E9=97=B4=E6=98=BE=E7=A4=BA=E9=94=99?= =?UTF-8?q?=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web_src/src/components/CloudRecord.vue | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/web_src/src/components/CloudRecord.vue b/web_src/src/components/CloudRecord.vue index 4a4a74b1..9f8d7a04 100755 --- a/web_src/src/components/CloudRecord.vue +++ b/web_src/src/components/CloudRecord.vue @@ -264,14 +264,16 @@ export default { }); }, formatTime(time) { - const h = parseInt(time / 3600) - const minute = parseInt(time / 60 % 60) - const second = Math.ceil(time % 60) - - return (h > 0 ? h + `小时` : '') + (minute > 0 ? minute + '分' : '') + second + '秒' + const h = parseInt(time / 3600 / 1000) + const minute = parseInt((time - h * 3600 * 1000) / 60 / 1000) + let second = Math.ceil((time - h * 3600 * 1000 - minute * 60 * 1000) / 1000) + if (second < 0) { + second = 0; + } + return (h > 0 ? h + `小时` : '') + (minute > 0 ? minute + '分' : '') + (second > 0 ? second + '秒' : '') }, formatTimeStamp(time) { - return moment.unix(time).format('yyyy-MM-DD HH:mm:ss') + return moment.unix(time/1000).format('yyyy-MM-DD HH:mm:ss') } } From 1245ae7874fd97c70ec6048f4d90ee70831d17ba Mon Sep 17 00:00:00 2001 From: PengOu <595466820@qq.com> Date: Tue, 30 Jan 2024 10:59:25 +0800 Subject: [PATCH 06/10] =?UTF-8?q?Fix=20=E6=8E=A8=E6=B5=81=E5=88=97?= =?UTF-8?q?=E8=A1=A8->=20=E6=B7=BB=E5=8A=A0=E9=80=9A=E9=81=93=20=E6=8A=A5?= =?UTF-8?q?=E9=94=99=EF=BC=9A=20=E9=94=99=E8=AF=AF:=20=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=20"gbStreamId"=20=E4=B8=8D=E5=AD=98=E5=9C=A8=20,=E6=94=B9?= =?UTF-8?q?=E4=B8=BA=EF=BC=9Agb=5Fstream=5Fid=20=E8=87=AA=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E9=80=9A=E8=BF=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/genersoft/iot/vmp/storager/dao/GbStreamMapper.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/GbStreamMapper.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/GbStreamMapper.java index 45f0fbfd..6591e3f9 100755 --- a/src/main/java/com/genersoft/iot/vmp/storager/dao/GbStreamMapper.java +++ b/src/main/java/com/genersoft/iot/vmp/storager/dao/GbStreamMapper.java @@ -20,7 +20,7 @@ public interface GbStreamMapper { "(#{app}, #{stream}, #{gbId}, #{name}, " + "#{longitude}, #{latitude}, #{streamType}, " + "#{mediaServerId}, #{createTime})") - @Options(useGeneratedKeys = true, keyProperty = "gbStreamId", keyColumn = "gbStreamId") + @Options(useGeneratedKeys = true, keyProperty = "gbStreamId", keyColumn = "gb_stream_id") int add(GbStream gbStream); @Update("UPDATE wvp_gb_stream " + From 33b125262b9bc6443ea2edbaac306fdbeb0dc7e5 Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: Wed, 31 Jan 2024 11:07:31 +0800 Subject: [PATCH 07/10] =?UTF-8?q?=E4=BC=98=E5=8C=96jessibuca=E6=92=AD?= =?UTF-8?q?=E6=94=BE=E7=AA=97=E5=8F=A3=E5=B0=BA=E5=AF=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web_src/src/components/common/jessibuca.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/web_src/src/components/common/jessibuca.vue b/web_src/src/components/common/jessibuca.vue index c3d3e67d..3419bb59 100755 --- a/web_src/src/components/common/jessibuca.vue +++ b/web_src/src/components/common/jessibuca.vue @@ -1,6 +1,6 @@