(第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文件夹到程序目录。