ZLMediaKit模块整理


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)媒体播放广播事件,执行拉流鉴权
        (7.3)流量上报广播事件,通知远端服务结束的拉流session流量使用情况
        (7.4)获取rtsp realm广播事件,获取rtsp realm
        (7.5)rtsp鉴权广播事件,执行rtsp拉流/推流鉴权
        (7.6)媒体源(source)注册或注销广播事件
        (7.7)监听播放失败(未找到特定的流)事件
        (7.8)MP4文件录制成功广播事件,通知远端文件信息
        (7.9)TS文件录制成功广播事件,通知远端文件信息
        (7.10)Shell登录鉴权,通过http请求远端鉴权
        (7.11)媒体源无订阅者广播事件,通过http请求通知远端
        (7.12)Http文件访问鉴权,通过http请求远端鉴权
        (7.13)初始化上报重启信息
         具体的http地址从配置中获取
    
2、ZLMediaKit作为sdk
    存在一套c接口,用户可以构建自己的流媒体分发、拉流、推流服务
    1)通用接口:支持配置的设置和获取、启动各种服务:rtsp rtmp http rtp shell等
    2)事件回调接口:用户可以注册所需要监听的事件完成自己的业务处理。支持各种事件的回调:meidasource注册注销回调、推流鉴权回调、拉流鉴权回调、未找到指定码流通知、无人拉取某个码流通知、http api请求回调(外部可以处理该请求)、http访问权限回调、rtsp获取realm回调、rtsp认证回调、mp4分片(fmp4)录制成功通知、shell鉴权回调、会话(rtsp rtmp http-flv)结束后流量回调deng )结束后流量回调
    3)事件对象接口:
        (1)MP4Info对象从事件回调接口中获取,MP4Info事件对象接口可以获取mp4分片的各种信息
        (2)HttpParser对象从事件回调接口中获取,可以通过接口获取http请求的内容:Method Header Content
        (3)MediaInfo对象从事件回调接口中获取,可以通过接口获取码流url的各种信息:协议、IP地址和端口、虚拟主机、streamid等
        (4)MediaSource对象事件回调接口中获取,可以通过接口获取source的各种信息:协议、虚拟主机、streamid、订阅者流者数目;关闭source、source跳转;从此source推rtp流到指定url、
             关闭此source的rtp推流;查找指定source、source列表遍历
        (5)HttpBody对象接口可以构造、销毁HttpBody实例,可以作为http响应的response body使用
        (6)在事件回调接口中存在http请求回调和鉴权回调,这些回调函数需要响应处理结果(这些回调本身包含发送响应的函数指针invoker),事件请求处理完毕后,
             需要通过事件对象接口发送结果或者响应,包括http请求响应发送接口、rtsp鉴权结果发送接口、获取realme结果发送接口、发布鉴权结果发送接口、拉流鉴权结果发送接口
        基本上事件对象接口和事件回调接口一一对应
    4)httpclient接口
        (1)http下载接口
        (2)通用http请求接口
    5)媒体源接口
        (1)媒体源的创建接口
        (2)媒体数据输入接口
        (3)媒体事件回调注册:关闭、跳转、发布或者注销
        (4)订阅者数目获取
        (5)通过此媒体源推rtp码流到指定url、关闭rtp推流
    6)播放器接口-player
        (1)创建、释放接口
        (2)拉流接口:拉取指定url的码流,这个和source没什么关系
        (3)播放控制:暂停/恢复、跳转
        (4)注册回调函数接口:播放器开启播放结果回调、播放被异常中断的回调
        (5)获取码流参数:视频编解码器、分辨率、帧率,音频编解码器、采样率、采样位宽、声道数目,点播时长
    7)代理播放器-proxyplayer
        内部继承于player,使用player拉流,通过转封包,支持发布多种视频源
        (1)创建、释放接口
        (2)考试播放
        (3)注册关闭回调
        (4)获取订阅者人数
    8)推流器-pusher
        (1)创建(从指定码流源订阅码流)、释放接口
        (2)将码流推送到指定url(rtsp/rtmp)
        (3)注册回调:推流器推流结果回调、推流被异常中断的回调
    9)录制器:flv、MP4、HLS
        (1)FLV录制器
            (1.1)FLV录制器创建与释放
            (1.2)FLV录制器从指定码流源录制flv文件,并指定文件位置
        (2)hls/mp4录制器
            (2.1)指定码流源是否正在被录制MP4或HLS文件
            (2.2)开始录制hls/mp4
            (2.3)停止录制hls/mp4
    10)rtpserver
        (1)创建与销毁
        (2)获取rtp服务端口号
        (3)注册GB28181 RTP 服务器接收流超时事件
    11)tcp接口
        (1)socket接口:本地地址、本地端口、对端地址、对端端口
        (2)tcp server接口:开启及事件注册,返回tcp_session
        (3)tcp_session接口:获取socket信息、关闭、发送数据
        (4)tcp client接口:创建、连接、注册回调、发送数据
    12)线程接口
        (1)获取线程实例:获取tcp session、tcp client关联的线程实例;从事件线程池中获取线程实例,负载均衡算法;根据负载均衡算法,从后台线程池中随机获取一个线程
        (2)事件执行:同步、异步
        (3)定时器的创建与销毁
    13)工具类接口
        (1)路径接口:获取可执行文件的路径
        (2)时间接口
        (3)二进制转字符串
        (4)日志类接口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值