当前位置: 首页 > 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.jsqmd.com/news/1084678/

相关文章:

  • RH850/U2B汽车MCU开发板原理图设计:电源、时钟与高速接口实战解析
  • 关于动态规划【力扣123.买卖股票的最佳时机III的思考】
  • 如何高效使用APK Editor Studio:5个专业技巧对比解析
  • Deepin Boot Maker技术深度解析:跨平台启动盘制作架构剖析
  • Claude 大模型深度评测:从参数解析到实战边界,微元算力首当其冲是最优的选择!
  • 从单体到微服务,IDEA项目重构血泪史:17个真实踩坑案例(含Spring Cloud Config加密配置丢失、Eureka Zone感知错配等生产事故溯源)
  • ArkLights:如何用自动化脚本彻底解放明日方舟玩家的双手?
  • 从理论到实践:基于MATLAB的DPLL环路滤波器参数设计与仿真分析
  • Spring Cloud Gateway在IDEA本地无法拦截请求?5种常见路由失效场景+YAML语法隐藏雷区+Actuator路由实时诊断法
  • 5步掌握WinBtrfs:在Windows上解锁Btrfs文件系统完整功能的终极指南
  • 从加密包到可编辑源码:gdsdecomp逆向工程工具实战指南
  • 阿里云代理商:阿里云 CPFS 文件系统如何恢复丢失的数据?
  • 跨平台获取macOS系统镜像的3种终极方案:告别Mac电脑限制
  • Deepin Boot Maker:告别命令行,3分钟制作Linux启动盘的智能解决方案
  • Plain Craft Launcher 2:重新定义你的Minecraft游戏体验
  • Deepin Boot Maker:告别命令行恐惧,3分钟搞定Linux启动盘的终极指南
  • WinBtrfs终极实战指南:3种配置方案解锁Windows Btrfs文件系统完整功能
  • Windows字体自定义终极方案:No!! MeiryoUI完全指南
  • Figma中文界面插件终极指南:5分钟快速上手完整教程
  • RPA与Python测试自动化集成:pytest+email.mime实现智能报告分发
  • Type-C一拖多快充线:智能功率分配与选购指南
  • 94个公共Tracker服务器:彻底终结BT下载卡在99%的终极解决方案
  • 生产环境下的Agent记忆机制设计:短期上下文与长期向量库的工程化取舍
  • 软件工程实验全流程指南:从需求到部署的工程化实践
  • 硬件预取器安全挑战与PhantomFetch防御技术解析
  • 热粘塑性材料参数识别与高效仿真:非负矩拟合与hp-FCM方法实践
  • Spring Boot应用XSS与SQL注入防护实战指南
  • BetterNCM安装器:3分钟搞定网易云音乐插件系统安装
  • 正交模格与动态代数的范畴等价:量子逻辑与算子代数的统一视角
  • CTF 入门必备基础:Git、JSON、HTTP 请求头、BP 抓包全知识点整理