|
||
---|---|---|
examples | ||
include | ||
src | ||
.gitignore | ||
BUILDING.md | ||
CMakeLists.txt | ||
COPYING | ||
README.md | ||
uvgRTP.pro |
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, AVC, Opus, SRTP and ZRTP. In ideal conditions it is able to reach 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 6184: RTP Payload Format for H.264 Video
- 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:
- AVC
- HEVC
- Opus
- SRTP/ZRTP
- Preliminary VVC support
- 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
Paper
Please cite the following paper for uvgRTP:
A. Altonen, J. Räsänen, J. Laitinen, M. Viitanen, and J. Vanne, “Open-source RTP library for high-speed 4K HEVC video streaming,” in Proc. IEEE Int. Workshop on Multimedia Signal Processing, Tampere, Finland, Sept. 2020.