ZLMediaKit/README.md
2025-06-25 07:22:51 +00:00

165 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 一个基于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/