关于ZLmediakit无人观看处理

发布时间 2023-07-19 15:21:41作者: 邗影

 1 ZLM接收推流或者代理拉流。流注册成功后会先触发一次无人观看,用于应对注册流之后,没有人拉流观看的情况;

 这里会生成一个定时器,如果到时间了没人看就触发无人观看 ;streamNoneReaderDelayMS=30000

如果本次触发的无人观看(hook)你不处理,那就不会再次触发了;除非你有客户端拉流播放,然后reader从有变成无,才会再次触发无人观看;

 2 关于触发无人观看的返回的协议类型(来源于issue)

无人观看事件不同协议只会触发一次(不管转换为多少种协议了) 但是触发时的协议scheam是随机的 看那种协议最晚注册。
当然后续从有人看变成无人看,触发协议scheam为最后一名观看者使用何种协议。总的来说,这个hook可以不关注scheam参数

3  on_stream_none_reader

 4 关于无人观看人数统计

除了统计MultiMediaSourceMuxer外, 还统计不经过MultiMediaSourceMuxer直接代理生成的流的观看者人数MediaSourceEvent::onReaderChanged()中也会统计;注意录像如果当做观察者,录像也会是一个reader,可以在配置文件中设置录像是否作为观察者  EX:#是否将mp4录制当做观看者 mp4_as_player=0