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
标签:触发,ZLmediakit,协议,scheam,观看,reader,无人 From: https://www.cnblogs.com/8335IT/p/17565690.html