mirror of
https://gitee.com/xia-chu/ZLMediaKit.git
synced 2026-05-07 11:27:50 +08:00
3.9 KiB
3.9 KiB
一个基于C++11的高性能运营级流媒体服务框架
ZLMediaKit是一个高性能流媒体开发框架,使用C++11编写,支持多种协议(RTSP/RTMP/HLS/WebRTC/SRT/DASH/HTTP-FLV等),提供丰富的API,支持多种视频编码(H.264/H.265/JPEG/VP8/VP9/AV1)和音频编码(AAC/G711/OPUS/G722/PCMU/PCMA)。
项目特点
- 高性能:基于异步IO模型,支持高并发和低延迟。
- 协议丰富:支持RTMP、RTSP、HLS、WebRTC、SRT等多种流媒体协议。
- 跨平台:支持Linux、macOS、iOS、Android、Windows等多平台编译。
- 易于扩展:提供多种插件机制,便于功能扩展。
- 完善的文档:提供详细的API文档和使用示例。
项目定位
ZLMediaKit旨在为企业级流媒体服务提供一个高效、稳定、可扩展的解决方案,适用于在线教育、视频会议、安防监控、直播推流等多种场景。
功能清单
- RTMP
- 推流、拉流
- 支持H.264/H.265/AAC/OPUS/G711
- 支持直播、回放
- RTSP
- 推流、拉流
- 支持RTP/RTCP/RTCP-Bye/SRTCP
- 支持点播、暂停、快进、鉴权
- HLS
- 支持HLS直播与回放
- 支持fmp4与ts切片
- 支持多级目录结构
- WebRTC
- 支持ICE、STUN、TURN、SCTP
- 支持P2P通信
- 支持抗丢包、抗抖动
- 支持webrtc over tcp
- SRT
- 支持SRT推流和拉流
- 支持SRT over UDP
- 支持加密传输
- DASH
- 支持MPD直播与回放
- HTTP-FLV
- 支持HTTP-FLV直播
- 录像
- 支持MP4录像
- 支持H.264/H.265/AAC/G711
- 协议转换
- 支持RTMP转RTSP、RTMP转HLS等
- 高性能网络
- 支持epoll、kqueue、iocp等高性能IO模型
- 支持自定义线程池
闭源专业版
闭源专业版提供更丰富的功能,包括:
- 更强大的转码功能
- 更完善的鉴权机制
- 更丰富的RESTful API
- 更友好的调试工具
编译以及测试
系统要求
- Linux
- GCC 5.2+ 或更高
- CMake 3.1+ 或更高
- macOS
- Xcode 或 CLT 安装
- Windows
- Visual Studio 2015 Update 3 或更高
- Android
- NDK r17c 或更高
- iOS
- Xcode 或 NDK
编译方式
在Linux上编译
- 安装GCC 5.2+(若GCC版本低于4.7)。
- 安装CMake(若CMake版本低于3.1)。
- 切换到更高版本的GCC。
- 执行以下命令进行编译:
mkdir build cd build cmake .. make
在macOS上编译
mkdir build
cd build
cmake ..
make
在iOS上编译
cd build
cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/ios.toolchain.cmake ..
make
在Android上编译
使用Android NDK编译,确保NDK版本符合要求。
在Windows上编译
使用Visual Studio 2015或更高版本打开项目文件进行编译。
怎么使用
二进制文件下载
提供二进制文件下载链接,支持多种平台。
Docker 镜像
持续集成自动编译推送,与代码保持同步。详细部署方式请参考k8s部署建议。
合作项目
授权协议
ZLMediaKit采用MIT License,详细请查看项目根目录下的LICENSE文件。
联系方式
- 邮箱:zlmediakit@163.com
- QQ群:557078143
怎么提问?
请参考如何提问?
特别感谢
感谢MediaSoup开源项目。
使用案例
- 视频会议系统
- 在线教育平台
- 安防视频监控平台
- 直播平台