45 lines
1.8 KiB
Markdown
45 lines
1.8 KiB
Markdown
# 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++](https://www.cryptopp.com/)
|
|
|
|
Supported specifications:
|
|
* [RFC 3350: RTP: A Transport Protocol for Real-Time Applications](https://tools.ietf.org/html/rfc3550)
|
|
* [RFC 7798: RTP Payload Format for High Efficiency Video Coding (HEVC)](https://tools.ietf.org/html/rfc7798)
|
|
* [RFC 6184: RTP Payload Format for H.264 Video](https://tools.ietf.org/html/rfc6184)
|
|
* [RFC 7587: RTP Payload Format for the Opus Speech and Audio Codec](https://tools.ietf.org/html/rfc7587)
|
|
* [RFC 3711: The Secure Real-time Transport Protocol (SRTP)](https://tools.ietf.org/html/rfc3711)
|
|
* [RFC 6189: ZRTP: Media Path Key Agreement for Unicast Secure RTP](https://tools.ietf.org/html/rfc6189)
|
|
|
|
Based on Marko Viitanen's [fRTPlib](https://github.com/fador/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](BUILDING.md) for instructions on how to build and use uvgRTP
|
|
|
|
## Examples
|
|
|
|
See [examples](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.```
|