# 一个基于C++11的高性能运营级流媒体服务框架 [![License]][MIT License] [![Language]][C++ Reference] 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上编译 1. 安装GCC 5.2+(若GCC版本低于4.7)。 2. 安装CMake(若CMake版本低于3.1)。 3. 切换到更高版本的GCC。 4. 执行以下命令进行编译: ```bash mkdir build cd build cmake .. make ``` #### 在macOS上编译 ```bash mkdir build cd build cmake .. make ``` #### 在iOS上编译 ```bash cd build cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/ios.toolchain.cmake .. make ``` #### 在Android上编译 使用Android NDK编译,确保NDK版本符合要求。 #### 在Windows上编译 使用Visual Studio 2015或更高版本打开项目文件进行编译。 ## 怎么使用 ### 二进制文件下载 提供二进制文件下载链接,支持多种平台。 ### Docker 镜像 持续集成自动编译推送,与代码保持同步。详细部署方式请参考[k8s部署建议](./k8s_readme.md)。 ## 合作项目 - [MediaSoup][MediaSoup GitHub] - [FFmpeg][FFmpeg Official Site] ## 授权协议 ZLMediaKit采用[MIT License](./LICENSE),详细请查看项目根目录下的`LICENSE`文件。 ## 联系方式 - 邮箱:zlmediakit@163.com - QQ群:557078143 ## 怎么提问? 请参考[如何提问?](./.github/ISSUE_TEMPLATE/compile.md) ## 特别感谢 感谢[MediaSoup](https://github.com/versatica/mediasoup)开源项目。 ## 使用案例 - 视频会议系统 - 在线教育平台 - 安防视频监控平台 - 直播平台 [License]: https://img.shields.io/badge/license-MIT-green.svg [MIT License]: https://github.com/ZLMediaKit/ZLMediaKit/blob/master/LICENSE [Language]: https://img.shields.io/badge/language-c++-red.svg [C++ Reference]: https://en.cppreference.com/ [MediaSoup GitHub]: https://github.com/versatica/mediasoup [FFmpeg Official Site]: https://ffmpeg.org/