前言
音视频通信与流媒体技术迅猛发展,开发一个高性能、高可靠、跨平台且协议兼容性强的流媒体服务系统,已成为众多企业与开发的核心需求。不管是直播平台、智能安防、车载监控,还是远程协作与边缘计算场景,都亟需一套既能满足极致性能要求,又能灵活适配多样化协议生态的底层引擎。
本文推荐一款基于 C++11 开发的开源流媒体框架,历经多年线上打磨,不仅具备卓越的并发处理能力与极低延迟特性,还全面打通了传统视频监控(如 GB28181)与现代互联网直播(如 WebRTC、HLS、FLV)之间的协议壁垒。
其设计兼顾嵌入式设备资源限制与数据中心级吞吐需求,真正实现了"一套代码,全平台部署;一个流,多协议互通"。
项目概览
语言/标准:C++11(无裸指针,RAII管理资源)
目标定位
- 嵌入式 & 移动端跨平台流媒体解决方案
- 商用级流媒体服务器(可直接部署)
- 网络编程 SDK(提供 C API,供其他语言调用)
功能脑图
核心特性
多协议支持(全栈互通)
| 协议类型 | 支持方向 | 特性 |
|---|---|---|
| RTSP/RTSPS | 推/拉/代理/转协议 | 支持 UDP/TCP/HTTP/组播,H.265,鉴权 |
| RTMP/RTMPS | 推/拉/录制/转协议 | 支持 Enhanced-RTMP(H.265/VP9/OPUS等) |
| HLS | 生成/播放/转协议 | 支持 fMP4/TS,Cookie追踪实现“伪长连接” |
| HTTP-FLV / WS-FLV | 直播推拉 | 低延迟(<500ms),支持多轨道 |
| HTTP-TS / WS-TS | 直播 | 兼容 IPTV 场景 |
| fMP4 (Fragmented MP4) | HTTP/WS | 支持 WebRTC、HLS-fMP4 |
| MP4 | 点播/录制/Seek | 支持多轨道 |
| GB28181 | 国标视频监控 | 支持主动拉流、双向对讲、PS/TS/ES |
| WebRTC | 推/拉/P2P/WHIP/WHEP | 支持 Simulcast、NACK/RTX、TWCC、DataChannel、秒开GOP |
| SRT | (闭源专业版) | 高可靠低延迟传输 |
| JT/T 1078 | 部标协议(闭源) | 车载视频监控,兼容 GB28181 接口 |
协议互转能力极强:任意输入协议 → 任意输出协议(如 RTSP → WebRTC、GB28181 → HLS)
性能与稳定性
- 并发能力:单机支持 10万+ 播放器连接,100Gb/s IO 带宽
- 延迟:最低 100ms,典型 <500ms
- 架构:多路复用 + 多线程 + 异步 I/O(基于 epoll/kqueue/IOCP)
- 长期商用验证:已在多个生产环境稳定运行
- 按需处理:无人观看时自动停止拉流/转码,节省资源
跨平台 & 指令集支持
| 平台 | 支持 |
|---|---|
| 操作系统 | Linux / macOS / Windows / iOS / Android |
| CPU 架构 | x86 / ARM / RISC-V / MIPS / 龙芯 / 申威 |
完美适配国产化信创环境
开发与集成方式
三种使用模式
1、作为 SDK:通过 标准 C API 集成到其他语言(Python/Go/Java 等)
2、独立服务器:直接部署 MediaServer,通过 RESTful API + WebHook 控制业务
3、二次开发:基于 C++ 源码扩展功能(提供完整测试用例)
配套工具
- Docker 镜像(自动 CI 构建)
- FFmpeg 代理拉流(支持任意格式)
- 实时截图 API
- 配置/SSL 热加载
- 虚拟主机 & 流量统计 & 鉴权回调
闭源专业版增强功能
| 功能模块 | 说明 |
|---|---|
| 音视频转码 | H.264 ↔ H.265、AAC ↔ OPUS/G711 等;支持软硬编解码、OSD、滤镜、按需转码 |
| JT1078 部标 | 车载视频接入,支持级联与对讲 |
| IPTV 版本 | TS 透传/解复用,支持组播、SRT |
| S3 云存储 | 直接写入 MinIO/S3,HTTP 点播云文件 |
| WebRTC 集群 | 解决 K8s 下信令与媒体分离问题 |
| AI 推理插件 | YOLO 目标检测、OCR、多边形布防;支持 TensorRT / ONNX / Ascend CANN;C++/Python 混合开发 |
快速启动(Docker)
docker run -id \
-p 1935:1935 \ # RTMP
-p 8080:80 \ # HTTP-FLV / HLS
-p 8554:554 \ # RTSP
-p 8443:443 \ # HTTPS / WSS
-p 10000:10000 \ # RTP over UDP (GB28181/WebRTC)
-p 10000:10000/udp \
-p 8000:8000/udp \ # WebRTC ICE
-p 9000:9000/udp \
zlmediakit/zlmediakit:master
学习与使用建议
-
新手入门:先使用 Docker 镜像 + RESTful API 快速搭建服务
-
嵌入式/IoT:交叉编译 SDK 到 ARM/RISC-V 设备
-
视频监控项目:重点使用 GB28181 + RTSP + WebRTC
-
直播平台:结合 HLS/FLV/WebRTC + 按需转码 + 集群部署
-
AI 视频分析:启用 Python 插件 + YOLO + TensorRT
官方资源
GitHub: github.com/ZLMediaKit/…
总结
ZLMediaKit 是一款集 高性能、高兼容性、高稳定性 于一体的现代化流媒体服务框架。它以 C++11 为基础,采用现代 C++ 编程范式,摒弃裸指针,确保内存安全;通过异步 I/O 与多线程模型,实现单机十万级并发连接与百 Gb/s 级带宽吞吐;支持从 RTSP/RTMP 到 WebRTC/HLS/GB28181 等十余种主流音视频协议,并具备强大的协议互转能力。
其跨平台特性覆盖 Linux、Windows、macOS、iOS、Android 及国产 CPU 架构(龙芯、申威等),完美适配信创环境。同时,项目提供标准 C API、RESTful 接口、WebHook 机制及 Docker 镜像,极大降低了集成与运维门槛。闭源专业版进一步扩展了转码、AI 推理、部标协议、云存储等企业级功能,满足复杂业务场景需求。
不管是希望快速部署一台商用流媒体服务器,还是需要一个可深度定制的 SDK 嵌入到自有系统中,ZLMediaKit 都是一个不错的选择。
关键词
ZLMediaKit、C++11流媒体框架、多协议互通、低延迟直播、高并发流媒体服务器、跨平台支持、国产化适配、WebRTC支持、按需转码与AI推理、商用级SDK与RESTful API
最后
如果你觉得这篇文章对你有帮助,不妨点个赞支持一下!你的支持是我继续分享知识的动力。如果有任何疑问或需要进一步的帮助,欢迎随时留言。
也可以加入微信公众号 [DotNet技术匠] 社区,与其他热爱技术的同行一起交流心得,共同成长!
优秀是一种习惯,欢迎大家留言学习!