(第8讲)ZLMediaKit 完整安装教程
·
文章目录
ZLMediaKit 完整安装教程(3种方案:Docker极速、源码编译、二进制包)
适配你的JT1078车载视频场景,原生支持RTSP推流/拉流、标准RTP、RTMP、GB28181。
一、方案1:Docker一键部署(推荐测试/快速上线,5分钟)
无需编译、自动处理依赖,端口一次性映射齐全
1. 拉取镜像
docker pull zlmediakit/zlmediakit:master
2. 启动容器(完整端口映射,覆盖RTSP/RTMP/RTP/Web管理)
docker run -d \
--name zlm \
--restart always \
-p 1935:1935 \ # RTMP
-p 8080:80 \ # HTTP-FLV、Web后台
-p 8443:443 \ # HTTPS
-p 8554:8554 \ # RTSP TCP
-p 10000:10000 \ # WebRTC TCP
-p 10000:10000/udp \# WebRTC UDP
-p 8000:8000/udp \ # RTP UDP(JT1078转标准RTP使用)
-p 9000:9000/udp \ # 国标GB28181媒体端口
zlmediakit/zlmediakit:master
3. 访问Web管理后台
浏览器打开 http://服务器IP:8080,可查看在线流、录像、API调试。
常用容器命令
# 查看日志
docker logs -f zlm
# 停止/重启
docker stop zlm
docker restart zlm
# 进入容器修改配置
docker exec -it zlm bash
二、方案2:Linux源码编译(生产环境推荐,自定义模块)
环境要求
GCC ≥4.8、CMake ≥3.2、OpenSSL ≥1.0.2
步骤1:安装系统依赖
Ubuntu / Debian
sudo apt update
sudo apt install -y build-essential cmake git libssl-dev zlib1g-dev \
libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libboost-all-dev
CentOS 7/8 / RockyLinux
sudo dnf groupinstall -y "Development Tools"
sudo dnf install -y cmake git openssl-devel zlib-devel ffmpeg-devel boost-devel
步骤2:拉取源码(国内Gitee镜像,速度快)
# 浅克隆加速
git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit
cd ZLMediaKit
# 必须初始化第三方子模块(漏了编译失败)
git submodule update --init --recursive
步骤3:一键编译脚本(最简单)
# 自动cmake+make,开启RTSP/RTMP/FFmpeg/WebRTC全功能
./build_for_linux.sh
编译完成后,程序目录:
release/linux/Debug/MediaServer
步骤4:手动cmake编译(自定义开关,按需关闭无用模块)
mkdir build && cd build
cmake .. \
-DENABLE_RTSP=ON \
-DENABLE_RTMP=ON \
-DENABLE_FFMPEG=ON \
-DENABLE_WEBRTC=ON \
-DENABLE_HTTP_API=ON
make -j$(nproc)
步骤5:复制资源文件(网页、证书,否则后台空白)
# 复制web页面
cp -r ../../www ../release/linux/Debug/
# 复制ssl证书
cp ../../tests/default.pem ../release/linux/Debug/
步骤6:启动服务
cd release/linux/Debug
# 前台启动看日志
./MediaServer
# 后台守护进程启动
nohup ./MediaServer > zlm.log 2>&1 &
三、方案3:预编译二进制包(无编译环境机器使用)
- 下载地址:GitHub/Gitee Release 自动打包
- 解压后直接运行
MediaServer,自带配置、网页、启动脚本; - 适合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 allow 1935/tcp
ufw allow 8080/tcp
ufw allow 8554/tcp
ufw allow 8000:9000/udp
ufw reload
CentOS
firewall-cmd --add-port=1935/tcp --permanent
firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --add-port=8554/tcp --permanent
firewall-cmd --add-port=8000-9000/udp --permanent
firewall-cmd --reload
六、RTSP推流测试(验证安装成功)
ffmpeg RTSP推流到ZLMediaKit
ffmpeg -re -i test.h264 -c copy -rtsp_transport tcp -f rtsp rtsp://127.0.0.1:8554/live/car001
播放器拉流观看
# ffplay
ffplay -rtsp_transport tcp rtsp://127.0.0.1:8554/live/car001
# HTTP-FLV网页播放
http://IP:8080/live/car001.flv
七、JT1078车载适配链路(你业务场景)
- Java Netty接收JT1078私有UDP包,剥离24字节私有头提取H264 NALU;
- 二选一输出到ZLMediaKit:
1)封装标准RTP UDP发送到服务器8000端口,ZLM自动识别;
2)ffmpeg管道读取byte[],转RTSP/RTMP推ZLM; - 前端通过HTTP-FLV/RTSP/WebRTC播放车辆视频。
八、常见编译报错解决
- 子模块缺失:必须执行
git submodule update --init --recursive,不要下载zip源码; - OpenSSL版本过低:手动编译安装 openssl-1.1.1w;
- 端口占用:修改config.ini端口或kill占用进程;
- Web后台空白:忘记复制www文件夹到程序目录。
更多推荐



所有评论(0)