Commit 3a1fc63d7ac0e3f686f28cad85f50cc594292e94

Authored by 648540858
1 parent 23973449

优化ssrc释放逻辑

src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java
@@ -233,6 +233,15 @@ public class PlayServiceImpl implements IPlayService { @@ -233,6 +233,15 @@ public class PlayServiceImpl implements IPlayService {
233 HookSubscribeForStreamChange hookSubscribe = HookSubscribeFactory.on_stream_changed("rtp", ssrcInfo.getStream(), true, "rtsp", mediaServerItem.getId()); 233 HookSubscribeForStreamChange hookSubscribe = HookSubscribeFactory.on_stream_changed("rtp", ssrcInfo.getStream(), true, "rtsp", mediaServerItem.getId());
234 subscribe.removeSubscribe(hookSubscribe); 234 subscribe.removeSubscribe(hookSubscribe);
235 } 235 }
  236 + }else {
  237 + logger.info("[点播超时] 收流超时 deviceId: {}, channelId: {},码流类型:{},端口:{}, SSRC: {}",
  238 + device.getDeviceId(), channelId, device.isSwitchPrimarySubStream() ? "辅码流" : "主码流",
  239 + ssrcInfo.getPort(), ssrcInfo.getSsrc());
  240 +
  241 + mediaServerService.releaseSsrc(mediaServerItem.getId(), ssrcInfo.getSsrc());
  242 +
  243 + mediaServerService.closeRTPServer(mediaServerItem.getId(), ssrcInfo.getStream());
  244 + streamSession.remove(device.getDeviceId(), channelId, ssrcInfo.getStream());
236 } 245 }
237 }, userSetting.getPlayTimeout()); 246 }, userSetting.getPlayTimeout());
238 247
@@ -263,6 +272,7 @@ public class PlayServiceImpl implements IPlayService { @@ -263,6 +272,7 @@ public class PlayServiceImpl implements IPlayService {
263 InviteOKHandler(eventResult, ssrcInfo, mediaServerItem, device, channelId, 272 InviteOKHandler(eventResult, ssrcInfo, mediaServerItem, device, channelId,
264 timeOutTaskKey, callback, inviteInfo, InviteSessionType.PLAY); 273 timeOutTaskKey, callback, inviteInfo, InviteSessionType.PLAY);
265 }, (event) -> { 274 }, (event) -> {
  275 + logger.info("[点播失败] deviceId: {}, channelId:{}, {}: {}", device.getDeviceId(), channelId, event.statusCode, event.msg);
266 dynamicTask.stop(timeOutTaskKey); 276 dynamicTask.stop(timeOutTaskKey);
267 mediaServerService.closeRTPServer(mediaServerItem, ssrcInfo.getStream()); 277 mediaServerService.closeRTPServer(mediaServerItem, ssrcInfo.getStream());
268 // 释放ssrc 278 // 释放ssrc