ZLmediakit集群部署
1简单理解
2 如何简单部署测试
2.1: 我在10.1.1.1的机器上有拉 IPC-A摄像头的数据源;这个摄像头上的视频,通过部署在10.1.1.1这台服务器上的ZLM去拉流,转协议成RTSP的地址是:rtsp://10.1.1.1:554/rtp/stream_1
2.2:我本地(127.0.0.1)启动ZLM服务,通过VLC拉stream1:此时肯定是找不到的,因为我本地就没有叫stream_1的数据源
2.3: 关闭本地ZLM,配置文件的溯源URL 设置源站如下图 origin_URL(rtsp://10.1.1.1:554/%s/%s),然后再启动本地的ZLM服务,此次的配置就会起作用
2.4: 此时再用VLC访问本地stream_1; 本地启动(127.0.0.1)的ZLM检测到自己没有这个数据源,就去origin_url的地址上去拉stream_1,下边是我本地的ZLM服务的打印信息
2.5: 在10.1.1.1上拉到流之后,本地注册上 :媒体注册:rtsp://__defaultVhost__/rtp/stream_1。之后响应play请求,将数据流给到VLC;就像作者说的,很像一个按需拉流的流程
3实际的集群部署(要感谢ZLM互助群 keal 的多次讲解和指导)
(当然我的理解绘于纸上,可能还有一些理解偏差和不太对的地方,希望可以得到更多的指正)
4 关于集群部署,wiki上的一些资料
-
场景介绍: 来源https://github.com/ZLMediaKit/ZLMediaKit/wiki/ZLMediakit%E7%8B%AC%E5%AE%B6%E7%89%B9%E6%80%A7%E4%BB%8B%E7%BB%8D
一般流媒体集群实现方式采用溯源方式实现,服务器分为源站和边沿站。源站一般用于接收推流,它一般不直接承载用户的播放请求,而是通过边沿服务器向其拉流同时分发给播放器,通过该模式可以支持海量的用户播放请求。srs很早之前已经通过配置文件的方式支持该功能,由于zlmediakit比较早也提供按需拉流的功能,本质上也支持溯源模式的集群,不过用户需要对接hook和api,开发门槛比较高,所以最近zlmediakit也支持了通过配置文件的方式来实现集群模式,配置文件如下:
[cluster] #设置源站拉流url模板, 格式跟printf类似,第一个%s指定app,第二个%s指定stream_id, #开启集群模式后,on_stream_not_found和on_stream_none_reader hook将无效. #溯源模式支持以下类型: #rtmp方式: rtmp://127.0.0.1:1935/%s/%s #rtsp方式: rtsp://127.0.0.1:554/%s/%s #hls方式: http://127.0.0.1:80/%s/%s/hls.m3u8 #http-ts方式: http://127.0.0.1:80/%s/%s.live.ts #支持多个源站,不同源站通过分号(;)分隔 origin_url= #溯源总超时时长,单位秒,float型;假如源站有3个,那么单次溯源超时时间为timeout_sec除以3 #单次溯源超时时间不要超过general.maxStreamWaitMS配置 timeout_sec=15
zlmediakit的溯源方式支持rtsp/rtmp/hls/http-ts(http-flv的方式暂未开放), 方式多样丰富,同时源站不分主备,采用round robin方式来实现源站的负载均衡。需要指出的是,由于zlmediakit很早就支持hls的按需拉流功能,所以zlmediakit的边沿站也支持hls协议(其实支持zlmediakit任意支持的协议),这点是srs不具备的。
另外需要指出的是,由于zlmediakit同时支持rtsp和webrtc,而它们两者都是基于rtp的,在zlmediakit内部,无须转协议简单处理后就可互联互通,所以使用zlmediakit来做大规模的webrtc低延时直播已经成为可能;相较于传统的基于rtmp的cdn,rtsp更适合作为webrtc的cdn基础传输协议,开发者不需要处理繁琐的解复用复用逻辑,即可平滑的实现rtsp与webrtc的互转。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
2016-07-06 图像的纹理特征之灰度共生矩阵
2016-07-06 MATLAB安装libsvm无法使用解决办法(转)