ZLMediaKit 使用教程
项目地址:https://gitcode.com/gh_mirrors/zlmed/ZLMediaKit
1. 项目介绍
ZLMediaKit 是一个基于 C++11 开发的高性能运营级流媒体服务框架。它支持多种流媒体协议,包括 RTSP、RTMP、HLS、HTTP-FLV、WebSocket-FLV、GB28181、HTTP-TS、WebSocket-TS、HTTP-fMP4、WebSocket-fMP4、MP4 和 WebRTC。ZLMediaKit 不仅支持协议间的互相转换,还提供了完整的媒体服务器解决方案,可以直接部署为商用服务器。
主要特性
- 跨平台支持:支持 Linux、macOS、iOS、Android 和 Windows 等主要平台。
- 多协议支持:支持多种流媒体协议,并支持协议间的互相转换。
- 高并发与高性能:采用多路复用、多线程和异步网络 IO 模型,支持海量客户端连接。
- 稳定可靠:代码经过广泛的稳定性和性能测试,已在生产环境中得到广泛应用。
- 极速启动和低延迟:提供极速启动和极低延迟(500 毫秒以内,甚至可以低至 100 毫秒)。
- C API 集成:提供全面的标准 C API,可用作 SDK 或被其他语言调用。
- RESTful API 和 Web Hook:支持丰富的业务逻辑。
2. 项目快速启动
2.1 环境准备
在开始之前,请确保您的系统已经安装了以下工具:
- Git
- CMake
- GCC 或 Clang(支持 C++11)
2.2 下载源码
git clone https://github.com/linyihong-git/ZLMediaKit.git
cd ZLMediaKit
2.3 编译项目
mkdir build
cd build
cmake ..
make -j4
2.4 启动服务器
编译完成后,您可以在 build
目录下找到生成的可执行文件。启动服务器:
./MediaServer
2.5 测试服务器
您可以使用 VLC 或其他支持 RTSP 的播放器测试服务器。例如,使用 VLC 播放 RTSP 流:
vlc rtsp://127.0.0.1:554/live/test
3. 应用案例和最佳实践
3.1 视频监控系统
ZLMediaKit 可以作为视频监控系统的流媒体服务器,支持 GB28181 协议,能够与各种摄像头设备无缝对接。通过 RESTful API 和 Web Hook,可以实现视频流的按需拉取、录制和回放。
3.2 直播平台
ZLMediaKit 支持 RTMP、HLS、HTTP-FLV 等多种直播协议,可以作为直播平台的流媒体服务器。通过 WebRTC 协议,还可以实现低延迟的直播体验。
3.3 视频会议系统
ZLMediaKit 支持 WebRTC 协议,可以作为视频会议系统的流媒体服务器。通过 WebRTC 的双向通信能力,可以实现高质量的视频会议体验。
4. 典型生态项目
4.1 视频管理平台
- wvp-GB28181-pro:Java 实现的开箱即用的 GB28181 协议视频平台。
- AKStream:C# 实现的全功能的软 NVR 接口/GB28181 平台。
4.2 播放器
- h265web.js:基于 WebAssembly 支持 H265 的播放器,支持 ZLMediaKit 多种专属协议。
- jessibuca:基于 WebAssembly 支持 H265 的播放器。
4.3 WEB 管理网站
- zlm_webassist:ZLMediaKit 配套的前后端分离 Web 管理项目。
- AKStreamNVR:前后端分离 Web 项目,支持 WebRTC 播放。
通过这些生态项目,您可以快速构建完整的流媒体解决方案。
ZLMediaKit 项目地址: https://gitcode.com/gh_mirrors/zlmed/ZLMediaKit
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考