Disable SCD for now because there's just too much technical debt to keep up with and the unknown lifetime of the RTP packet buffers for SCD make SRTP almost an impossible task to implement properly. Better scheme for RTP frame allocation and packet construction must be implemented at some point. |
||
|---|---|---|
| examples | ||
| include | ||
| src | ||
| .gitignore | ||
| BUILDING.md | ||
| CMakeLists.txt | ||
| COPYING | ||
| Makefile | ||
| README.md | ||
| uvgRTP.pro | ||
| uvgRTP.sln | ||
| uvgRTP.vcxproj | ||
| uvgRTP.vcxproj.filters | ||
README.md
uvgRTP
uvgRTP is an RTP library written in C++ with a focus on usability and efficiency. It features a very intuitive and easy-to-use API, built-in support for HEVC and Opus, SRTP and ZRTP. In ideal conditions it is able to receive a goodput of 600 MB/s for HEVC stream.
uvgRTP is licensed under the permissive BSD 2-Clause License
For SRTP/ZRTP support, uvgRTP uses Crypto++
Supported specifications:
- RFC 3350: RTP: A Transport Protocol for Real-Time Applications
- RFC 7798: RTP Payload Format for High Efficiency Video Coding (HEVC)
- RFC 7587: RTP Payload Format for the Opus Speech and Audio Codec
- RFC 3711: The Secure Real-time Transport Protocol (SRTP)
- RFC 6189: ZRTP: Media Path Key Agreement for Unicast Secure RTP
Based on Marko Viitanen's fRTPlib
Notable features
- Builtin support for:
- HEVC
- Opus
- SRTP/ZRTP
- Generic interface for custom media types
- UDP hole punching
- Simple API
- Permissive license
Building and linking
See BUILDING.md for instructions on how to build and use uvgRTP
Examples
See examples directory for different uvgRTP examples