当前位置: 首页 > news >正文

(第8讲)ZLMediaKit 完整安装教程

文章目录

  • ZLMediaKit 完整安装教程(3种方案:Docker极速、源码编译、二进制包)
    • 一、方案1:Docker一键部署(推荐测试/快速上线,5分钟)
      • 1. 拉取镜像
      • 2. 启动容器(完整端口映射,覆盖RTSP/RTMP/RTP/Web管理)
      • 3. 访问Web管理后台
      • 常用容器命令
    • 二、方案2:Linux源码编译(生产环境推荐,自定义模块)
      • 环境要求
      • 步骤1:安装系统依赖
        • Ubuntu / Debian
        • CentOS 7/8 / RockyLinux
      • 步骤2:拉取源码(国内Gitee镜像,速度快)
      • 步骤3:一键编译脚本(最简单)
      • 步骤4:手动cmake编译(自定义开关,按需关闭无用模块)
      • 步骤5:复制资源文件(网页、证书,否则后台空白)
      • 步骤6:启动服务
    • 三、方案3:预编译二进制包(无编译环境机器使用)
    • 四、核心配置文件 config.ini 关键参数(适配RTSP/JT1078)
    • 五、防火墙放行端口(必须操作,否则外部无法推流)
      • Ubuntu
      • CentOS
    • 六、RTSP推流测试(验证安装成功)
      • ffmpeg RTSP推流到ZLMediaKit
      • 播放器拉流观看
    • 七、JT1078车载适配链路(你业务场景)
    • 八、常见编译报错解决

ZLMediaKit 完整安装教程(3种方案:Docker极速、源码编译、二进制包)

适配你的JT1078车载视频场景,原生支持RTSP推流/拉流、标准RTP、RTMP、GB28181

一、方案1:Docker一键部署(推荐测试/快速上线,5分钟)

无需编译、自动处理依赖,端口一次性映射齐全

1. 拉取镜像

dockerpull zlmediakit/zlmediakit:master

2. 启动容器(完整端口映射,覆盖RTSP/RTMP/RTP/Web管理)

dockerrun-d\--namezlm\--restartalways\-p1935:1935\# RTMP-p8080:80\# HTTP-FLV、Web后台-p8443:443\# HTTPS-p8554:8554\# RTSP TCP-p10000:10000\# WebRTC TCP-p10000:10000/udp\# WebRTC UDP-p8000:8000/udp\# RTP UDP(JT1078转标准RTP使用)-p9000:9000/udp\# 国标GB28181媒体端口zlmediakit/zlmediakit:master

3. 访问Web管理后台

浏览器打开http://服务器IP:8080,可查看在线流、录像、API调试。

常用容器命令

# 查看日志dockerlogs-fzlm# 停止/重启dockerstop zlmdockerrestart zlm# 进入容器修改配置dockerexec-itzlmbash

二、方案2:Linux源码编译(生产环境推荐,自定义模块)

环境要求

GCC ≥4.8、CMake ≥3.2、OpenSSL ≥1.0.2

步骤1:安装系统依赖

Ubuntu / Debian
sudoaptupdatesudoaptinstall-ybuild-essential cmakegitlibssl-dev zlib1g-dev\libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libboost-all-dev
CentOS 7/8 / RockyLinux
sudodnf groupinstall-y"Development Tools"sudodnfinstall-ycmakegitopenssl-devel zlib-devel ffmpeg-devel boost-devel

步骤2:拉取源码(国内Gitee镜像,速度快)

# 浅克隆加速gitclone--depth1https://gitee.com/xia-chu/ZLMediaKitcdZLMediaKit# 必须初始化第三方子模块(漏了编译失败)gitsubmodule update--init--recursive

步骤3:一键编译脚本(最简单)

# 自动cmake+make,开启RTSP/RTMP/FFmpeg/WebRTC全功能./build_for_linux.sh

编译完成后,程序目录:
release/linux/Debug/MediaServer

步骤4:手动cmake编译(自定义开关,按需关闭无用模块)

mkdirbuild&&cdbuild cmake..\-DENABLE_RTSP=ON\-DENABLE_RTMP=ON\-DENABLE_FFMPEG=ON\-DENABLE_WEBRTC=ON\-DENABLE_HTTP_API=ONmake-j$(nproc)

步骤5:复制资源文件(网页、证书,否则后台空白)

# 复制web页面cp-r../../www../release/linux/Debug/# 复制ssl证书cp../../tests/default.pem../release/linux/Debug/

步骤6:启动服务

cdrelease/linux/Debug# 前台启动看日志./MediaServer# 后台守护进程启动nohup./MediaServer>zlm.log2>&1&

三、方案3:预编译二进制包(无编译环境机器使用)

  1. 下载地址:GitHub/Gitee Release 自动打包
  2. 解压后直接运行MediaServer,自带配置、网页、启动脚本;
  3. 适合ARM开发板、边缘车载网关快速部署。

四、核心配置文件 config.ini 关键参数(适配RTSP/JT1078)

路径:release/linux/Debug/conf/config.ini

[rtsp] port=8554 # RTSP监听端口 auth=0 # 0关闭鉴权,1开启账号密码 handshakeSecond=15 tcpDelay=0 # 关闭延迟,车载低延迟优先 [rtp] port_range=8000-9000 # 标准RTP UDP端口范围,JT1078转RTP用 [http] port=80 # Web管理、HTTP-FLV端口 [general] mediaRoot=./www # 网页根目录 logPath=./logs # 日志目录

修改配置后重启MediaServer生效。


五、防火墙放行端口(必须操作,否则外部无法推流)

Ubuntu

ufw allow1935/tcp ufw allow8080/tcp ufw allow8554/tcp ufw allow8000:9000/udp ufw reload

CentOS

firewall-cmd --add-port=1935/tcp--permanentfirewall-cmd --add-port=8080/tcp--permanentfirewall-cmd --add-port=8554/tcp--permanentfirewall-cmd --add-port=8000-9000/udp--permanentfirewall-cmd--reload

六、RTSP推流测试(验证安装成功)

ffmpeg RTSP推流到ZLMediaKit

ffmpeg-re-itest.h264-ccopy-rtsp_transporttcp-frtsp rtsp://127.0.0.1:8554/live/car001

播放器拉流观看

# ffplayffplay-rtsp_transporttcp rtsp://127.0.0.1:8554/live/car001# HTTP-FLV网页播放http://IP:8080/live/car001.flv

七、JT1078车载适配链路(你业务场景)

  1. Java Netty接收JT1078私有UDP包,剥离24字节私有头提取H264 NALU;
  2. 二选一输出到ZLMediaKit:
    1)封装标准RTP UDP发送到服务器8000端口,ZLM自动识别;
    2)ffmpeg管道读取byte[],转RTSP/RTMP推ZLM;
  3. 前端通过HTTP-FLV/RTSP/WebRTC播放车辆视频。

八、常见编译报错解决

  1. 子模块缺失:必须执行git submodule update --init --recursive,不要下载zip源码;
  2. OpenSSL版本过低:手动编译安装 openssl-1.1.1w;
  3. 端口占用:修改config.ini端口或kill占用进程;
  4. Web后台空白:忘记复制www文件夹到程序目录。
http://www.gsyq.cn/news/1596624.html

相关文章:

  • RH850/U2B汽车MCU开发板原理图设计:电源、时钟与高速接口实战解析
  • 阿里云代理商:阿里云 CPFS 文件系统如何恢复丢失的数据?
  • 跨平台获取macOS系统镜像的3种终极方案:告别Mac电脑限制
  • Deepin Boot Maker:告别命令行恐惧,3分钟搞定Linux启动盘的终极指南
  • Figma中文界面插件终极指南:5分钟快速上手完整教程
  • 热粘塑性材料参数识别与高效仿真:非负矩拟合与hp-FCM方法实践
  • BetterNCM安装器:3分钟搞定网易云音乐插件系统安装
  • CTF 入门必备基础:Git、JSON、HTTP 请求头、BP 抓包全知识点整理
  • 【CANdelaStudio-从入门到深入到实战】67 从“配置自由”到“配置文化”:如何用看板让团队告别“手滑”
  • Apache ActiveMQ CVE-2016-3088漏洞:从任意文件写入到命令执行实战剖析
  • HTML5安全实战指南:从CORS配置到CSP策略的全面防护
  • 2026保姆级人像抠图换背景教程:手机/电脑/免费在线工具手把手教学
  • 内存清理工具合集!大小不到1M的软件,让Windows瞬间丝滑!
  • 告别重复操作:鸣潮自动化工具如何解放你的游戏时间
  • SU(2)规范理论构建引力模型:动机、策略与挑战
  • 2026好用的抠图软件推荐!电脑手机在线免费抠图工具保姆级教程,新手也能上手
  • 设计院图纸版本管理 5 大坑:从 1832 张 CAD 到巴别鸟 32 维权限
  • 3 篇论文同一天截止?Gradpaper15 分钟出一篇,赶 due 不用熬通宵
  • 【JAVA毕设源码分享】基于SpringBoot+Vue的眼科患者随访管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)
  • Python加密与在线工具结果不一致?详解AES/DES参数匹配与调试
  • 从SL₂(F)树结构到Kac-Moody代数:几何对称性与无穷维李代数的构建
  • 结婚证书翻译模板是什么?结婚证书翻译怎么办理?一篇读懂不踩坑
  • 【紧急预警】IntelliJ IDEA 2024新版已悄然变更Spring Boot项目默认配置!3类高危兼容性风险正在爆发,立即自查这4个关键节点
  • 优必选U1预售火爆,却面临竞争与财务双重挑战,能否实现经济可行?
  • 苹果多产品线全面涨价,内存成本压力下iPhone能否“独善其身”?
  • 如何快速配置大气层系统:面向Switch新手的完整指南
  • Android分包安装实战指南:SAI完整使用方案解析
  • 终极番茄小说下载神器:离线阅读的完美解决方案
  • 重新定义桌面交互:开源数字伙伴框架的5大创新设计
  • 高效抢票软件深度解析:基于Rust与Vue的跨平台解决方案