ZLMediaKit
RFFO_o
主要是管理服务器,增加服务器新的功能以及运行维护;
数据库存储过程的编写和优化。
展开
-
ZLMediaKit中多线程
ZLMediaKit中运行架构在main函数中,一下语句是设置线程池中的线程个数 //设置poller线程数,该函数必须在使用ZLToolKit网络相关对象之前调用才能生效 EventPollerPool::setPoolSize(threads);在main中创建了很多的TcpServer,其构造函数如下,其中会初始化当前TcpServer对象的** _poller**成员。其中 EventPollerPool::Instance()会返回一个静态的EventPollerPool对象对于原创 2021-08-09 16:28:03 · 468 阅读 · 0 评论 -
ZLMediaKit中_all_track_ready置为true的过程
ZLMediaKit中RtmpSession的解析继承来自以下类 public TcpSession 会话 public RtmpProtocol 协议 public MediaSourceEvent 事件创建video track的地方,根据我实际测试的视频,此处是先创建一个void RtmpDemuxer::makeVideoTrack(const A原创 2021-07-21 17:08:13 · 676 阅读 · 0 评论 -
ZLMediaKit中RTMP消息解析
ZLMediaKit中RTMP消息解析在接收到完整的Chunck之后,Chunck的data部分使用下述函数进行解析,一般的消息会在当前函数进行解析完成,比如MSG_SET_CHUNK,否则会进入onRtmpChunk进一步解析从目前的测试情况来看,ZLMediaKit中的server端接收的消息顺序是 MSG_SET_CHUNCK connect releaseStream(不响应) FCPublish(不响应) createStream _checkbw(不响应) publis原创 2021-07-16 16:02:55 · 411 阅读 · 0 评论 -
ZLMediaKit中rtmp块头解析
RTMP数据格式RTMP消息RTMP消息由消息头和载荷两部分组成消息头值长度含义message type1byte表示消息类型payload length3byte表示荷载的字节数,big-endian格式timestamp4byte表示消息的时间戳,big-endian格式stream id3byte表示消息流ID,big-endian格式message type的含义 1-7的消息ID用于协议控制消息 8、9的消息分别用于原创 2021-07-16 11:45:21 · 234 阅读 · 0 评论 -
ZLMediaKit服务端RTMP握手过程
ZLMediaKit之RTMP连接过程RTMP握手过程RTMP协议握手过程中,服务端和客户端都会发送三个包,客户端是C0、C1、C2,服务端是S0、S1、S2握手的顺序如下:1、客户端开始发送C0,C12、客户端必须收到S1后,才发送C23、客户端必须收到S2后才开始发送其他信息(控制信息和音视频数据)4、服务器要等收到C0才能发送S0和S15、服务器必须等C1后才能发送S2 6、服务器必须等收到C2之后才能发送其他数据(控制信息和音视频数据)简化如下client–> se原创 2021-07-09 16:38:26 · 601 阅读 · 0 评论 -
ZLMediaKit配置文件意义
ZLMediaKit配置文件意义[api]#是否调试http api,启用调试后,会打印每次http请求的内容和回复apiDebug=1#一些比较敏感的http api在访问时需要提供secret,否则无权限调用#如果是通过127.0.0.1访问,那么可以不提供secretsecret=035c73f7-bb6b-4889-a715-d9eb2d1925cc#截图保存路径根目录,截图通过http api(/index/api/getSnap)生成和获取snapRoot=./www/snap/原创 2021-07-02 11:03:47 · 1951 阅读 · 1 评论