Because most packet handlers do not require the raw UDP datagram received through the socket, it makes little sense to relay those parameters to them. Additionally, there's a clear distinction between crafting an RTP frame and operating on it so having one handler type for both operations is not the best design choice. Thus the packet handlers are divided into primary and auxiliary handlers. Primary handlers are responsible for creating a packet that the auxiliary handlers can operate on and auxiliary handlers are responsible for doing all other operations on the packet such as gathering sessions statistic information or decrypting the packet. |
||
|---|---|---|
| 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
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,” Accepted to IEEE Int. Workshop on Multimedia Signal Processing, Tampere, Finland, Sept. 2020.