https://github.com/kunkundi/minirtc
A lightweight cross-platform real-time audio and video transmission engine | 一个轻量级跨平台实时音视频传输引擎
https://github.com/kunkundi/minirtc
audio-decoding audio-encoding av1 h264 libdatachannel libnice opus rtc rtp srtp video-decoding video-encoding webrtc
Last synced: 27 days ago
JSON representation
A lightweight cross-platform real-time audio and video transmission engine | 一个轻量级跨平台实时音视频传输引擎
- Host: GitHub
- URL: https://github.com/kunkundi/minirtc
- Owner: kunkundi
- License: lgpl-3.0
- Created: 2023-07-13T06:18:39.000Z (over 2 years ago)
- Default Branch: reliable-transmission
- Last Pushed: 2025-12-24T10:12:21.000Z (about 2 months ago)
- Last Synced: 2025-12-25T07:45:23.866Z (about 2 months ago)
- Topics: audio-decoding, audio-encoding, av1, h264, libdatachannel, libnice, opus, rtc, rtp, srtp, video-decoding, video-encoding, webrtc
- Language: C++
- Homepage:
- Size: 11.9 MB
- Stars: 94
- Watchers: 4
- Forks: 30
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# MiniRTC
[]()
[](https://www.gnu.org/licenses/lgpl-3.0)
[]()
[]()
[]()
[ [English](README_EN.md) / 中文 ]
**轻量级跨平台实时音视频传输库**,专为 P2P 通信设计,低延迟、高性能、安全可靠。MiniRTC 提供完整的音视频编解码、加密传输和网络优化方案,并已在开源远程桌面项目 [CrossDesk](https://github.com/kunkundi/crossdesk.git) 中稳定应用。
---
## 核心特性
- **跨平台支持**:Windows、Linux、macOS 等主流平台
- **P2P 音视频传输**:点对点直连,降低延迟,提高实时性
- **多视频编码支持**:
- **AV1** 软件编解码
- **H.264** 硬件加速编码/解码
- Windows / Linux: **NVIDIA Video Codec SDK (NVENC/NVDEC)**
- macOS: **Video Toolbox**
- **音频编码支持**:**Opus** 编解码,高质量低延迟
- **安全加密**:支持 **SRTP 协议 (RFC 3711)**,保障音视频传输安全
- **网络透传**:基于 **RFC 5245 (ICE)** 的 NAT 穿透,适应复杂网络环境,实现直接连接
- **QoS 保证**:复用 WebRTC 核心模块,实现丢包恢复、带宽管理与网络抖动补偿
- **轻量化设计**:核心库体积小,易于集成到各类项目
## 如何编译
依赖:
- [xmake](https://xmake.io/#/guide/installation)
- [cmake](https://cmake.org/download/)
Linux环境下需安装以下包:
```
sudo apt-get install -y software-properties-common git curl unzip build-essential libx11-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev libxcb-randr0-dev libxcb-xtest0-dev libxcb-xinerama0-dev libxcb-shape0-dev libxcb-xkb-dev libxcb-xfixes0-dev libxv-dev libxtst-dev libasound2-dev libsndio-dev libxcb-shm0-dev libasound2-dev libpulse-dev
```
编译
```
git clone https://github.com/kunkundi/minirtc.git
cd minirtc
xmake b minirtc
```
#### 无 CUDA 环境下的开发支持
对于未安装 **CUDA 环境** 的Linux开发者,这里提供了预配置的 [Ubuntu 22.04 Docker 镜像](https://hub.docker.com/r/crossdesk/ubuntu22.04)。
该镜像内置必要的构建依赖,可在容器中开箱即用,无需额外配置即可直接编译项目。
进入容器,下载工程后执行:
```
export CUDA_PATH=/usr/local/cuda
export XMAKE_GLOBALDIR=/data
xmake b --root minirtc
```
## 关于 Xmake
#### 安装 Xmake
使用 curl:
```
curl -fsSL https://xmake.io/shget.text | bash
```
使用 wget:
```
wget https://xmake.io/shget.text -O - | bash
```
使用 powershell:
```
irm https://xmake.io/psget.text | iex
```
#### 编译选项
```
# 切换编译模式
xmake f -m debug/release
# 可选编译参数
-r :重新构建目标
-v :显示详细的构建日志
-y :自动确认提示
# 示例
xmake b -vy minirtc
```
更多使用方法可参考 [Xmake官方文档](https://xmake.io/guide/quick-start.html) 。