Commit 3a1fc63d7ac0e3f686f28cad85f50cc594292e94
1 parent
23973449
优化ssrc释放逻辑
Showing
1 changed file
with
10 additions
and
0 deletions
src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java
| ... | ... | @@ -233,6 +233,15 @@ public class PlayServiceImpl implements IPlayService { |
| 233 | 233 | HookSubscribeForStreamChange hookSubscribe = HookSubscribeFactory.on_stream_changed("rtp", ssrcInfo.getStream(), true, "rtsp", mediaServerItem.getId()); |
| 234 | 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 | 246 | }, userSetting.getPlayTimeout()); |
| 238 | 247 | |
| ... | ... | @@ -263,6 +272,7 @@ public class PlayServiceImpl implements IPlayService { |
| 263 | 272 | InviteOKHandler(eventResult, ssrcInfo, mediaServerItem, device, channelId, |
| 264 | 273 | timeOutTaskKey, callback, inviteInfo, InviteSessionType.PLAY); |
| 265 | 274 | }, (event) -> { |
| 275 | + logger.info("[点播失败] deviceId: {}, channelId:{}, {}: {}", device.getDeviceId(), channelId, event.statusCode, event.msg); | |
| 266 | 276 | dynamicTask.stop(timeOutTaskKey); |
| 267 | 277 | mediaServerService.closeRTPServer(mediaServerItem, ssrcInfo.getStream()); |
| 268 | 278 | // 释放ssrc | ... | ... |