Open gzncland opened 1 week ago
我看了一下代码好像是因为自动点播的callback是空导致的 PlayServiceImpl.java : 236
play(event.getMediaServer(), deviceId, channelId, null, null);
后面收流超时会调用
callback.run(InviteErrorCode.ERROR_FOR_STREAM_TIMEOUT.getCode(), InviteErrorCode.ERROR_FOR_STREAM_TIMEOUT.getMsg(), null);
这句如果爆了空指针后面的释放流程就不执行了
我也有这个问题,已经排查了3天了,求解。
环境信息:
wvp.user-settings.play-timeout
15秒,自动点播wvp.user-settings.auto-apply-play
开启,按需拉流wvp.user-settings.stream-on-demand
开启内容描述:
直接通过ZLM HOOK拉起的请求,在触发收流超时后,会进入一个再也无法分配ZLM的状态,直到去前端手动点播直到超时触发
c.g.iot.vmp.vmanager.gb28181.play.PlayController: 100 [点播等待超时]
这行log,下次再从HOOK拉起才可以正常播放。下方几段连续日志我做了分段,大概的流程为:点播等待超时
BYE
日志
点播等待超时
4.前端页面再次点播,此时可以观看,关闭页面,ZLM HOOK返回无人观看并发送BYE