Page content last modified on 2023-09-13.

uvgRTP

uvgRTP is a high-performance Real-Time Transport Protocol (RTP) library designed for efficient and intuitive media delivery over the Internet, offering support for a range of video and audio codecs, including VVC, HEVC, AVC, and Opus. uvgRTP also provides End-to-End Encryption (E2EE) capabilities through Secure RTP (SRTP) and ZRTP. This cross-platform library is licensed under the permissive BSD 2-Clause License and is compatible with Linux, Windows, and Mac OS (with community support).

Please cite the following paper (or any from the publication section) for any usage of uvgRTP:

H. Tampio, J. Räsänen, M. Viitanen, A. Mercat, G. Gautier, and J. Vanne, “uvgRTP 3.0: towards V3C volumetric video communication,” in Proc. ACM Multimedia Syst. Conf., Bari, Italy, Apr. 2024.

System overview of uvgRTP.

System overview of uvgRTP.

Sending and receiving processes of encrypted VVC media.

Sending and receiving processes of encrypted VVC media.

uvgRTP is a Real-Time Transport Protocol (RTP) library written in C++ with a focus on simple to use and high-efficiency media delivery over the Internet. It features an intuitive and easy-to-use Application Programming Interface (API), built-in support for transporting Versatile Video Coding (VVC), High Efficiency Video Coding (HEVC), Advanced Video Coding (AVC) encoded video and Opus encoded audio. uvgRTP also supports End-to-End Encrypted (E2EE) media delivery using the combination of Secure RTP (SRTP) and ZRTP. uvgRTP has been designed to minimize memory operations to reduce its CPU usage and latency.

uvgRTP is licensed under the permissive BSD 2-Clause License. This cross-platform library can be run on both Linux and Windows operating systems. Mac OS is also supported, but the support relies on community contributions. For SRTP/ZRTP support, uvgRTP uses the Crypto++ library.

Currently supported specifications:

  • RFC 3550: RTP: A Transport Protocol for Real-Time Applications
  • RFC 3551: RTP Profile for Audio and Video Conferences
  • RFC 6184: RTP Payload Format for H.264 Video
  • RFC 7798: RTP Payload Format for High Efficiency Video Coding (HEVC)
  • RFC 9328: RTP Payload Format for Versatile Video Coding (VVC)
  • 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

Notable features

  • AVC/HEVC/VVC video streaming, including packetization
  • Ready support for many formats which don't need packetization, including Opus
  • Delivery encryption with SRTP
  • Encryption key negotiation with ZRTP
  • UDP firewall hole punching
  • Easy to use API
  • Working examples
  • Permissive license

Publications

H. Tampio, J. Räsänen, M. Viitanen, A. Mercat, G. Gautier, and J. Vanne, “uvgRTP 3.0: towards V3C volumetric video communication,” in Proc. ACM Multimedia Syst. Conf., Bari, Italy, Apr. 2024.

J. Räsänen, A. Altonen, A. Mercat, and J. Vanne, “Open-source RTP library for end-to-end encrypted real-time video streaming applications,” in Proc. IEEE Int. Symp. Multimedia, Naples, Italy, Nov.-Dec. 2021. [Tuni.fi] [PDF]

A. Altonen, J. Räsänen, A. Mercat, and J. Vanne, “uvgRTP 2.0: open-source RTP library for real-time VVC/HEVC streaming,” in Proc. IEEE Int. Conf. Multimedia Expo, Shenzhen, China, July 2021. [Tuni.fi] [PDF]

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. [Tuni.fi] [PDF]