ZLMediaKit是一个服务也是一个sdk。作为一个媒体框架既可以独立成为流媒体转发服务,也可以以三方库的形式被引用到其他媒体服务。下面就从ZLMediaKit服务和sdk两方面做一下说明。
1、ZLMediaKit作为服务:
根据配置文件可以启动对应的服务,支持媒体流的发布和转发
1)启动rtsp/rtsps服务,支持rtsp拉流和推流
2)启动rtmp/rtmps服务,支持rtmp拉流和推流
3)启动http/https服务,支持flv hls拉流,支持Web Api
4)启动shell服务
5)启动rtp服务,支持rtp(GB28181)推流。可以通过Web Api信令启动rtp proxy,从source拉流推送到指定url
6)初始化Web Api,用于处理http请求:获取本服务基本信息(线程负载、工作线程数目、服务器配置、获取流参数信息等等)、断流(断开source、断开指定拉流session)、录制控制、
代理播放器控制(开启、关闭)、截图、hook api请求响应(接收web hook请求,并发送响应)
可见Web Api可以作为:
(6.1)中心配置服务器,媒体服务可以从Web Api获取文件访问权限、也可以指定转封包的配置
(6.2)统计服务器,可以接收媒体服务的流量上报,码流信息、拉流信息等
(6.3)鉴权服务器,rtsp鉴权 rtmp鉴权、shell登录鉴权等等
(6.4)运维服务器,接收媒体服务器重启信息
7)初始化Web Hook,Web Hook监听来自于通知中心的媒体事件,并执行http请求,通过响应决定流媒体行为
(7.1)媒体发布广播事件,执行推流鉴权,并获取转封包配置
(7.2)媒体播放广播事件,执行