pom.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/application-dev.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
pom.xml
@@ -11,6 +11,7 @@ <groupId>com.genersoft</groupId> <artifactId>wvp</artifactId> <version>2.0.0</version> <name>web video platform</name> <repositories> 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"); } } 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); // 录像查询以channelId作为deviceId查询 resultHolder.put(DeferredResultHolder.CALLBACK_CMD_PlAY + uuid, result); src/main/resources/application-dev.yml
@@ -100,6 +100,10 @@ userSettings: # 保存移动位置历史轨迹:true:保留历史数据,false:仅保留最后的位置(默认) savePositionHistory: false # 点播等待超时时间,单位:毫秒 playTimeout: 3000 # 等待音视频编码信息再返回, true: 可以根据编码选择合适的播放器,false: 可以更快点播 waitTrack: false # 在线文档: swagger-ui(生产环境建议关闭) springfox: