From d551c82d34618ca31e2a15b5bc0c51f727084466 Mon Sep 17 00:00:00 2001 From: panlinlin <648540858@qq.com> Date: 星期五, 23 四月 2021 14:39:52 +0800 Subject: [PATCH] 优化点播体验, 优化tcp被动的sdp --- src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java | 22 +++++++++------------- src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java | 6 +++++- src/main/resources/application-dev.yml | 4 ++++ pom.xml | 1 + 4 files changed, 19 insertions(+), 14 deletions(-) diff --git a/pom.xml b/pom.xml index c1383e7..91b90e6 100644 --- a/pom.xml +++ b/pom.xml @@ -11,6 +11,7 @@ <groupId>com.genersoft</groupId> <artifactId>wvp</artifactId> + <version>2.0.0</version> <name>web video platform</name> <repositories> 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 529feaf..eb80955 100644 --- 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 @@ -91,6 +91,9 @@ @Value("${media.autoApplyPlay}") private boolean autoApplyPlay; + @Value("${userSettings.waitTrack}") + private boolean waitTrack; + @Autowired private ZLMHttpHookSubscribe subscribe; @@ -376,7 +379,7 @@ subscribeKey.put("regist", true); subscribe.addSubscribe(ZLMHttpHookSubscribe.HookType.on_stream_changed, subscribeKey, json->{ - if (json.getJSONArray("tracks") == null) return; + if (waitTrack && json.getJSONArray("tracks") == null) return; event.response(json); subscribe.removeSubscribe(ZLMHttpHookSubscribe.HookType.on_stream_changed, subscribeKey); }); @@ -426,19 +429,12 @@ content.append("a=rtpmap:96 PS/90000\r\n"); content.append("a=rtpmap:98 H264/90000\r\n"); content.append("a=rtpmap:97 MPEG4/90000\r\n"); - if("TCP-PASSIVE".equals(streamMode)) { // tcp琚姩妯″紡 + if ("TCP-PASSIVE".equals(streamMode)) { // tcp琚姩妯″紡 content.append("a=setup:passive\r\n"); - content.append("a=recvonly\r\n"); - content.append("a=rtpmap:96 PS/90000\r\n"); - content.append("a=rtpmap:98 H264/90000\r\n"); - content.append("a=rtpmap:97 MPEG4/90000\r\n"); - if ("TCP-PASSIVE".equals(streamMode)) { // tcp琚姩妯″紡 - content.append("a=setup:passive\r\n"); - content.append("a=connection:new\r\n"); - } else if ("TCP-ACTIVE".equals(streamMode)) { // tcp涓诲姩妯″紡 - content.append("a=setup:active\r\n"); - content.append("a=connection:new\r\n"); - } + content.append("a=connection:new\r\n"); + } else if ("TCP-ACTIVE".equals(streamMode)) { // tcp涓诲姩妯″紡 + content.append("a=setup:active\r\n"); + content.append("a=connection:new\r\n"); } } 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 6022724..42c10a7 100644 --- a/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java @@ -22,6 +22,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import org.springframework.web.context.request.async.DeferredResult; @@ -58,6 +59,9 @@ @Autowired private VideoStreamSessionManager streamSession; + @Value("${userSettings.playTimeout}") + private long playTimeout; + @Override public PlayResult play(String deviceId, String channelId, ZLMHttpHookSubscribe.Event hookEvent, SipSubscribe.Event errorEvent) { @@ -67,7 +71,7 @@ playResult.setDevice(device); UUID uuid = UUID.randomUUID(); playResult.setUuid(uuid.toString()); - DeferredResult<ResponseEntity<String>> result = new DeferredResult<ResponseEntity<String>>(); + DeferredResult<ResponseEntity<String>> result = new DeferredResult<ResponseEntity<String>>(playTimeout); playResult.setResult(result); // 褰曞儚鏌ヨ浠hannelId浣滀负deviceId鏌ヨ resultHolder.put(DeferredResultHolder.CALLBACK_CMD_PlAY + uuid, result); diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index e1397d7..b9df098 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -100,6 +100,10 @@ userSettings: # 淇濆瓨绉诲姩浣嶇疆鍘嗗彶杞ㄨ抗锛歵rue:淇濈暀鍘嗗彶鏁版嵁锛宖alse:浠呬繚鐣欐渶鍚庣殑浣嶇疆(榛樿) savePositionHistory: false + # 鐐规挱绛夊緟瓒呮椂鏃堕棿,鍗曚綅锛氭绉� + playTimeout: 3000 + # 绛夊緟闊宠棰戠紪鐮佷俊鎭啀杩斿洖锛� true锛� 鍙互鏍规嵁缂栫爜閫夋嫨鍚堥�傜殑鎾斁鍣紝false锛� 鍙互鏇村揩鐐规挱 + waitTrack: false # 鍦ㄧ嚎鏂囨。锛� swagger-ui锛堢敓浜х幆澧冨缓璁叧闂級 springfox: -- Gitblit v1.8.0