首页
/ 5分钟上手ZLMediaKit:从部署到推流播放全攻略

5分钟上手ZLMediaKit:从部署到推流播放全攻略

2026-02-04 04:11:52作者:平淮齐Percy

项目简介

ZLMediaKit是一款基于C++11开发的高性能流媒体服务框架,支持WebRTC/RTSP/RTMP/HTTP/HLS等多种协议互转,广泛应用于视频监控、直播系统等场景。其核心优势在于跨平台兼容性(Linux/macOS/Windows/Android/iOS)和低延迟传输能力(最低可达100毫秒),适合构建高并发的流媒体服务。

项目架构

官方文档:README.md
配置文件模板:conf/config.ini

快速部署指南

方式1:Docker一键启动

# 映射常用端口(RTMP/HTTP/WebRTC等)
docker run -id -p 1935:1935 -p 8080:80 -p 8554:554 -p 10000:10000/udp zlmediakit/zlmediakit:master

镜像构建脚本:build_docker_images.sh

方式2:源码编译(Linux)

# 克隆仓库
git clone https://gitcode.com/GitHub_Trending/zl/ZLMediaKit
cd ZLMediaKit

# 编译依赖与项目
mkdir build && cd build
cmake ..
make -j4

# 启动服务
cd ../release/linux/Debug
./MediaServer -d

核心功能演示

1. 推流与播放测试

RTMP推流(使用FFmpeg)

ffmpeg -re -i test.mp4 -c:v libx264 -c:a aac -f flv rtmp://localhost/live/stream1

多协议播放

  • HTTP-FLV: http://localhost:8080/live/stream1.flv
  • HLS: http://localhost:8080/live/stream1/playlist.m3u8
  • WebRTC: 通过www/webrtc页面播放

2. 配置文件详解

核心配置路径:conf/config.ini

[RTMP]
port=1935                  # RTMP服务端口
max_connections=1000       # 最大连接数

[HTTP]
port=8080                  # HTTP服务端口
index=/index.html          # 默认首页

3. WebRTC实时通信

通过内置WebRTC客户端测试:

  1. 访问 http://localhost:8080/webrtc
  2. 输入房间号即可建立P2P连接

WebRTC源码:webrtc/WebRtcSession.cpp

常见问题解决

端口占用冲突

修改配置文件中对应服务端口,如修改RTSP端口:

[RTSP]
port=5554  # 默认为554,避免与系统服务冲突

低延迟优化

编辑conf/config.ini

[HLSEncoder]
hls_fragment=0.5           # HLS切片大小(秒)
hls_window=3               # 播放窗口大小(切片数)

监控与扩展

状态监控

通过HTTP API获取服务状态:

curl http://localhost:8080/index/api/getMediaList

API文档:postman/ZLMediaKit.postman_collection.json

集群部署

支持溯源模式集群,配置conf/config.ini

[Cluster]
secret=your_secret_key     # 集群通信密钥
origin_url=rtmp://origin_server/live/stream1  # 源站地址

总结

ZLMediaKit提供了从协议转换到集群部署的全栈流媒体解决方案,无论是嵌入式设备还是云端服务器,都能稳定高效地处理音视频流。通过灵活的配置和丰富的API,可快速集成到安防监控、在线教育、直播平台等场景。

更多功能:功能清单
贡献指南:AUTHORS

觉得有用?收藏本文,关注项目获取更新!
下期待续:《ZLMediaKit与GB28181国标协议对接实战》

登录后查看全文
热门项目推荐
相关项目推荐