【实战】ZLMediaKit部署及使用

1.ZLMediaKit简介

官网gitee, github

1.1概述

一个基于C++11的高性能运营级流媒体服务框架

1.2项目特点

  • 基于C++11开发,避免使用裸指针,代码稳定可靠,性能优越。
  • 支持多种协议(RTSP/RTMP/HLS/HTTP-FLV/WebSocket-FLV/GB28181/HTTP-TS/WebSocket-TS/HTTP-fMP4/WebSocket-fMP4/MP4/WebRTC),支持协议互转。
  • 使用多路复用/多线程/异步网络IO模式开发,并发性能优越,支持海量客户端连接。
  • 代码经过长期大量的稳定性、性能测试,已经在线上商用验证已久。
  • 支持linux、macos、ios、android、windows全平台。
  • 支持x86、arm、risc-v、mips、龙芯、申威等指令集平台。
  • 支持画面秒开、极低延时(500毫秒内,最低可达100毫秒)。
  • 提供完善的标准C API,可以作SDK用,或供其他语言调用。
  • 提供完整的MediaServer服务器,可以免开发直接部署为商用服务器。
  • 提供完善的restful api以及web hook,支持丰富的业务逻辑。
  • 打通了视频监控协议栈与直播协议栈,对RTSP/RTMP支持都很完善。
  • 全面支持H265/H264/AAC/G711/OPUS。
  • 功能完善,支持集群、按需转协议、按需推拉流、先播后推、断连续推等功能。
  • 极致性能,单机10W级别播放器,100Gb/s级别io带宽能力。
  • 极致体验,独家特性
  • 谁在使用zlmediakit?
  • 全面支持ipv6网络
  • 支持多轨道模式(一个流中多个视频/音频)

1.3项目定位

  • 移动嵌入式跨平台流媒体解决方案。
  • 商用级流媒体服务器。
  • 网络编程二次开发SDK。

1.4功能清单

在这里插入图片描述

1.5怎么使用

  1. 使用c api,作为sdk使用,请参考这里
  2. 作为独立的流媒体服务器使用,不想做c/c++开发的,可以参考 restful apiweb hook
  3. 如果想做c/c++开发,添加业务逻辑增加功能,可以参考这里的测试程序.

2.docker部署

2.1拉取镜像

docker pull zlmediakit/zlmediakit:master

2.2启动容器

  1. 确保docker开机自启命令: systemctl enable docker.service
  2. 启动容器时加入参数 --restart=always 实现容器自动重启,前提docker服务开启了自动重启
#此镜像为github持续集成自动编译推送,跟代码(master分支)保持最新状态
docker run -id --restart=always -p 1935:1935 -p 8080:80 -p 8443:443 -p 8554:554 -p 10000:10000 -p 10000:10000/udp -p 8000:8000/udp -p 9000:9000/udp zlmediakit/zlmediakit:master
  • 说明: rtmp默认端口1935, rtsp默认端口554,http默认端口80, SSL默认端口443

3.web控制台介绍

3.1访问地址

http://服务器IP:8080

3.2页面功能介绍

在这里插入图片描述

3.2.1 swagger页面

就不过多介绍怎么使用
在这里插入图片描述

3.2.2 webassist页面

3.2.2.1 首页

在这里插入图片描述
在这里插入图片描述

  • 说明: secret默认只为035c73f7-bb6b-4889-a715-d9eb2d1925cc , 可在官方文档中查询

在这里插入图片描述

3.2.2.2 代理测试

在这里插入图片描述

  1. 左边是请求的拉流接口/index/api/addStreamProxy
  2. 右边请求的是推流接口/index/api/addStreamPusherProxy
3.2.2.2 服务器配置

在这里插入图片描述

  • 说明: 对应配置文件中的内容,可以在控制台直接进行修改,配置文件会被更新,所以个人觉得docker部署ZLMediakit时,就没有必要挂载配置文件到宿主机用于手动修改了
  • 如可以修改secret等,如下
    在这里插入图片描述

4.在项目中的使用

4.1 项目说明

  • 主要使用zlmediakit作为流媒体服务器,用于拉取摄像头的rtsp流,转换为rtmp, 并推送到云端的rtmp服务器,实现摄像头数据上云的业务

4.2 技术选型的问题

  1. 初期使用ffmpeg进行[拉,转,推]几个步骤的实现, 发现的问题,对服务器的cpu消耗比较高
  2. 故测试使用zlmediakit进行该操作,发现能解决此问题

4.3 项目中使用发现的问题

  1. 注意摄像头的编码要使用H264 , 在排查此问题用了很长时间才发现,在此做下记录

4.3 项目中使用方式

  • 使用rest api 的方式 实现拉流,推流
  • 使用接口调用拉流接口 /index/api/addStreamProxy 对摄像头数据进行拉取,并自动转换为rtmp协议
  • 调用推流接口 /index/api/addStreamPusherProxy ,对rtmp流推送到rtmp云服务器

4.4 实现自动监控ZLMediaKit,进行拉流和推流

由于篇幅太长,将在下一篇文章中写, 文章地址

  • 17
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Llama2是一种基于Hadoop的分布式计算框架,可用于大规模数据处理和分析。本地部署Llama2可以提供更好的性能和灵活性,同时可以充分利用本地计算资源。 本地部署Llama2的步骤如下: 1. 确保已经安装和配置好Hadoop和YARN,因为Llama2需要依赖它们进行资源管理和任务调度。 2. 下载Llama2的安装包,并解压到本地的一个目录。 3. 修改Llama2的配置文件,指定正确的Hadoop和YARN的相关参数,例如ResourceManager的地址和端口号。 4. 启动Llama2的服务,可以通过命令行或者脚本来执行。启动成功后,可以通过Web界面查看Llama2的运行状态和各项指标。 5. 配置和提交任务。在Llama2中,可以使用YARN的API或者命令行工具来配置和提交任务。任务可以是MapReduce作业、Spark作业或者其他的计算任务。 Llama2的项目实战主要包括以下几个方面: 1. 数据处理和分析:可以使用Llama2来处理和分析大规模的数据集。通过配置和提交适当的任务,可以利用集群中的多个节点并行执行任务,从而加速数据处理过程。 2. 机器学习和深度学习:Llama2提供了丰富的机器学习和深度学习算法库,可以在分布式环境下运行。通过配置和提交相应的任务,可以训练和部署复杂的机器学习模型。 3. 实时流处理:Llama2还支持实时流处理,可以通过配置和提交流处理任务来处理实时数据流。借助于Hadoop和YARN的优势,可以实现高吞吐量和低延迟的实时数据处理。 总之,Llama2的本地部署和项目实战可以极大地提升大规模数据处理和分析的效率和灵活性。通过合理配置和提交任务,可以充分利用集群中的计算资源,加速任务执行并获得更好的性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值