ZLMediaKit快速上手【保姆级简单快速版】

一、前言

1、ZLMediaKit使用场景

最近在写一个摄像头检测的项目,其中需要做拉流测试,但是摄像头数量不够用,如果直接重复拉流可能会出现问题,使用ZLMediaKit(一个基于C++11的高性能运营级流媒体服务框架)可以实现按需拉流推流。
ZLMediaKit源码地址
功能描述

但是网上可供参考的资料比较残缺不够完整,故在此记录一下完整的上手流程。

2、参考资料

Docker 简单部署 ZLMediaKit 超详细图文步骤
ZLMediaKit部署及使用
搭建流媒体服务器,ZLMediaKit+Docker

二、准备工作

在这里我们使用最简单直接的方式:Docker安装。所以需要有docker的环境。官网提供的docker下载命令如下:

docker run -d -p 1935:1935 -p 8080:80 -p 8554:554 -p 10000:10000 -p 10000:10000/udp -p 8000:8000/udp --name zlmediakit zlmediakit/zlmediakit:master

直接使用在后续可能会出现一个错误。在这里直接提供修改之后的代码。
在创建docker之前,做好如下配置

1、下载原始的ZLMediaKit

docker run -d -p 1935:1935 -p 8080:80 -p 8554:554 -p 10000:10000 -p 10000:10000/udp -p 8000:8000/udp --name zlmediakit zlmediakit/zlmediakit:master

2、修改ZLMediaKit配置文件

docker cp -a zlmediakit:/opt/media /home/docker/zlmediakit
docker rm -f zlmediakit  #删除
cd /home/docker/zlmediakit/media/conf
vi config.ini

在这里插入图片描述

在这里插入图片描述
修改[http]相关配置

[api]
apiDebug=1
defaultSnap=./www/logo.png
downloadRoot=./www
#修改secret,当然也可以使用默认值,这个后续要用到
secret=Icetc   
snapRoot=./www/snap/
.................
.................
[http]
#是否显示文件夹菜单,开启后可以浏览文件夹
dirMenu=1
#允许访问http api和http文件索引的ip地址范围白名单,置空情况下不做限制,初始值不为空
allow_ip_range=

启动流程

1、启动docker

按上述修改完配置文件之后就可以重新启动我们的docker了,注意启动的时候要使用我们自己的配置文件。

docker run -d -p 1935:1935 -p 8080:80 -p 8554:554 -p 10000:10000 -p 10000:10000/udp -p 8000:8000/udp -p 30000-30500:30000-30500 -p 30000-30500:30000-30500/udp --name zlmediakit --restart=always --env MODE=standalone -e TZ="Asia/Shanghai" -v /home/docker/zlmediakit/media/bin:/opt/media/bin -v /home/docker/zlmediakit/media/conf:/opt/media/conf zlmediakit/zlmediakit:master

2、检查docker是否启动成功

我们在网页上输入http://{你的ip地址}:8080如果出现一下页面,说明启动成功。
在这里插入图片描述
有一个错误可能是your ip is not allowed to access the service,原因是在之前配置文件中未修改设置allow_ip_range=

3、添加推流

在这里我们就使用第一个使用rtsp方式推流,官方提供的测试命令如下:
推流测试

ffmpeg -re -i "/path/to/test.mp4" -vcodec h264 -acodec aac -f rtsp -rtsp_transport tcp rtsp://127.0.0.1/live/test

但是我们是在docker里,没有测试视频,需要把服务器中的测试视频上传到docker里。

docker cp /home/fight_test.mp4 zlmediakit:/

这样有了测试视频之后我们再进行推流测试。而且要在docker容器中运行,修改成我们的测试视频地址。

docker exec zlmediakit ffmpeg -re -i /fight_test.mp4 -vcodec h264 -acodec aac -f rtsp -rtsp_transport tcp rtsp://127.0.0.1/live/test

可能出现的一个问题:[aac @ 0x560f6b976780] Too many bits 8832.000000 > 6144 per frame requested, clamping to max
解决办法是至少设置一个参数即可修复卡住的错误,具体原因不明。其中ab 为码率,ar 为采样率,ac为声道。
在这里设置就设置一下-ar,完整命令如下:

docker exec zlmediakit ffmpeg -re -i /fight_test.mp4 -vcodec h264 -ar 44100 -acodec aac -f rtsp -rtsp_transport tcp rtsp://127.0.0.1/live/test

出现以下页面说明添加推流成功!
在这里插入图片描述

4、查看推流

在这里插入图片描述
在这里插入图片描述
来到这个页面之后就可以查看刚才添加的推流了:
在这里插入图片描述
还可以查看观看人数。

5、获取视频

在这里插入图片描述
播放url规则
在这里插入图片描述
在这里插入图片描述

根据上面的讲述,可以知道我们的视频流地址创建的时候是这样的:rtsp://127.0.0.1/live/test
打开浏览器输入推流地址:rtsp://127.0.0.1:{端口号}/live/test或者正在别的主机上ip换成推流主机的ip,说明docker内使用推流的端口号是554,这个在浏览器页面都能够查看到,在服务器上输入的推流地址需要做简单修改,docker映射在一开始启动docker的时候有8554:554,所以应该是rtsp://127.0.0.1:8554/live/test
输入之后,弹出直播了,操作成功!之后把测试视频地址修改成摄像头地址,测试成功。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/433756.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UE5: Content browser工具编写02

DebugHeader.h 中的全局变量,已经在一个cpp file中被include了,如果在另一个cpp file中再include它,就会有一些conflicts。先全部给加一个static Add static keyword to debug functionsWrap all the functions inside of a namespaceprint …

【Redis技能熟练掌握之十年内功】

Redis技能熟练掌握之十年内功 1.redis是什么?为什么要使用redis?2.redis一般应用于什么场景(四个场景)?3. Redis持久化机制是什么?各自的优缺点?一般咋么用?4. redis五个基础类型支持…

【开源免费】基于SpringBoot+Vue.JS服装销售平台(JAVA毕业设计)

博主说明:本文项目编号 T 054 ,文末自助获取源码 \color{red}{T054,文末自助获取源码} T054,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析…

docker -私有镜像仓库 - harbor安装

文章目录 1、镜像仓库简介2、Harbor简介3、下载与安装3.1、下载3.2、安装3.2.1、上传harbor-offline-installer-v2.8.2.tgz到虚拟机中解压并修改配置文件3.2.2、解压tgz包3.2.3、切换到解压缩后的目录下3.2.4、准备配置文件3.2.5、修改配置文件 4、启动Harbor5、启动关闭命令6、…

gitlab添加CI自动测试

1. CI运行规格配置文件.gitlab-ci.yml yml 配置文件语法: https://docs.gitlab.com/17.3/ee/ci/yaml/index.html 添加.gitlab-ci.yml文件并配置 : ## 定义几个阶段 stages: # List of stages for jobs, and their order of execution- buil…

982. 按位与为零的三元组

1. 题目 982. 按位与为零的三元组 2. 解题思路 随机选择两个数,记录两个数的与结果。以及它的次数。 然后再遍历数组,用第三个数去与前两个数的结果,如果等于0,则满足条件。 3. 代码 3.1. 注意点 首先用简单的思路切入&…

【顺序表使用练习】发牌游戏

【顺序表使用练习】发牌游戏 1. 介绍游戏2. 实现52张牌3. 实现洗牌4. 实现发牌5. 效果展示 1. 介绍游戏 首先先为大家介绍一下设计要求 实现52张牌(这里排除大小王)洗牌——打乱牌的顺序发牌——3个人,1人5张牌 2. 实现52张牌 创建Code对象创…

MMD模型及动作一键完美导入UE5-IVP5U插件方案(二)

1、下载并启用IVP5U插件 1、下载IVP5U插件, IVP5U,点击Latest下载对应引擎版本,将插件放到Plugins目录,同时将.uplugin文件的EnableByDefault改为false 2、然后通过Edit->Plugins启用插件 2、导入pmx模型 1、直接在Content的某个目录拖入pmx模型,选择默认参数 2、…

项目实战:k8s部署考试系统

一、新建nfs服务器(192.168.1.44) 1.基础配置(IP地址防火墙等) 2.配置时间同步 [rootlocalhost ~]# yum -y install ntpdate.x86_64 [rootlocalhost ~]# ntpdate time2.aliyun.com 27 Sep 10:28:08 ntpdate[1634]: adjust tim…

【巅峰算力,静谧之作】4卡4090GPU深度学习“静音”服务器

各位同仁,随着人工智能浪潮的汹涌澎湃,我们正步入一个前所未有的创新纪元。在这个充满挑战与机遇的时代,我愈发频繁地在工作场景中邂逅那些致力于深度学习探索的智者们。他们,对计算力的渴望如同对知识的追求一般,永无…

React表单:formik、final-form和react-hook-form

表单无处不在,它是每个网站的必备部分。在用React构建web应用时,处理表单是不可避免的。 你可以选择自己的方式来处理,或者选择社区中现成的库。然而,当你选择一个第三方库时,你会立即面临一个问题:有太多的…

Spring Boot 学习之路 -- 配置项目

前言 最近因为业务需要,被拉去研究后端的项目,代码框架基于 Spring Boot,对我来说完全小白,需要重新学习研究…出于个人习惯,会以 Blog 文章的方式做一些记录,文章内容基本来源于「 Spring Boot 从入门到精…

SpringMVC5-域对象共享数据

目录 使用ServletAPI向request域对象共享数据 使用ModelAndView向request域对象共享数据 使用Model向request域对象共享数据 使用map向request域对象共享数据 使用ModelMap向request域对象共享数据 Model、ModelMap、Map的关系 向session域共享数据 向application域共享…

SQLite3模块使用详解

目录 一、引言 1.1 SQLite3 简介 1.2 Python sqlite3 模块 二、连接数据库 2.1 导入 sqlite3 模块 2.2 连接数据库 2.3 创建游标对象 三、执行 SQL 语句 3.1 创建表 3.2 插入数据 3.3 查询数据 3.4 更新数据 3.5 删除数据 四、处理查询结果 4.1 fetchall() 4.2…

探探Java与python中的闭包

说在前面:在计算机科学中,闭包是指一个函数以及其引用的周围环境(变量)所组成的整体。简单来说,闭包允许一个函数访问并操作其外部函数作用域中的变量,即使外部函数已经执行完毕。 Java函数式编程—闭包&am…

C++map与set

文章目录 前言一、map和set基础知识二、set与map使用示例1.set去重操作2.map字典统计 总结 前言 本章主要介绍map和set的基本知识与用法。 一、map和set基础知识 map与set属于STL的一部分,他们底层都是是同红黑树来实现的。 ①set常见用途是去重 ,set不…

【Java】包装类【主线学习笔记】

文章目录 前言包装类基本数据类型与包装类之间的转换基本数据类型转换为包装类可以通过以下几种方式:包装类转换为基本数据类型可以通过以下几种方式:初始化值不同与String之间的转换 前言 Java是一门功能强大且广泛应用的编程语言,具有跨平台…

“数字武当”项目荣获2024年“数据要素×”大赛湖北分赛文化旅游赛道一等奖

9月26日,由国家数据局、湖北省人民政府指导的首届湖北省数据要素创新大会暨2024年“数据要素”大赛湖北分赛颁奖仪式在湖北武汉举行。由大势智慧联合武当山文化旅游发展集团有限公司参报的武当山“数字武当”项目,荣获文化旅游赛道一等奖。 据悉&#x…

在系统开发中提升 Excel 数据导出一致性与可维护性的统一规范与最佳实践

背景: 在系统开发过程中,数据导出为 Excel 格式是一个常见的需求。然而,由于各个开发人员的编码习惯和实现方式不同,导致导出代码风格不一。有的人使用第三方库,有的人则自定义实现。这种多样化不仅影响了代码的一致性…

【笔记】X射线物理基础

一、X射线衍射分析简史 1895年X射线发现 1896 年 2 月对骨折的观察:G.和 E. Frost是第一个使用 X 射线进行医疗用途 1897 年法国海关官员的行李扫描。 X射线衍射理论1 X射线衍射理论2 元素的特征X射线 X射线光电子的应用 电磁波的粒子属性 X射线层析成像法 X-ray…