Go to file
Joni Räsänen 63860cd78a doc: Update readme and packaging info 2022-09-21 08:40:08 +03:00
.circleci CI: Streamline building of tests 2022-09-08 10:06:56 +03:00
cmake build: Rename version.cpp.in to version.cc.in, improve handling 2022-09-19 11:29:34 +03:00
docs doc: Update readme and packaging info 2022-09-21 08:40:08 +03:00
examples examples: Update the configuration example flags 2022-09-21 08:40:07 +03:00
include/uvgrtp common: Rename a flag for consistency with other flags 2022-09-21 08:40:07 +03:00
packaging doc: Update readme and packaging info 2022-09-21 08:40:08 +03:00
src common: Rename a flag for consistency with other flags 2022-09-21 08:40:07 +03:00
test tests: Update enum names to correct ones in tests 2022-09-21 08:40:06 +03:00
.gitignore build: Add example build files to .gitignore 2022-06-16 07:41:41 +03:00
BUILDING.md build: Set the default build type to Release 2022-09-15 09:38:37 +03:00
CMakeLists.txt build: Rename version.cpp.in to version.cc.in, improve handling 2022-09-19 11:29:34 +03:00
CONTRIBUTING.md doc: Update contributing instructions regarding commit format 2022-02-22 09:02:13 +02:00
COPYING Update copyright 2021-03-23 01:16:42 +02:00
README.md doc: Update readme and packaging info 2022-09-21 08:40:08 +03:00

README.md

uvgRTP

uvgRTP is an 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. According to our measurements uvgRTP is able to reach a goodput of 600 MB/s (4K at 700fps) for HEVC stream when measured in LAN. The CPU usage is relative to the goodput value, and therefore smaller streams have a very small CPU usage.

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 Crypto++ library.

Currently supported specifications:

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
  • Simple to use API
  • Working examples
  • Permissive license

Building and linking

See BUILDING.md for instructions on how to build and use uvgRTP

Documentation and examples

See documentation and examples to get a better understanding of uvgRTP

Contributing

We warmly welcome any contributions to the project. If you are thinking about submitting a pull request, please read CONTRIBUTING.md before proceeding.

Test framework

We also have an easy to use performance test framework for benchmarking uvgRTP against FFmpeg and Live555 on Linux OS. The framework can be found here.

Papers

If you use uvgRTP in your research, please cite one of the following papers:

Open-Source RTP Library for High-Speed 4K HEVC Video Streaming

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.

UVGRTP 2.0: Open-Source RTP Library For Real-Time VVC/HEVC Streaming

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.

Open-source RTP Library for End-to-End Encrypted Real-Time Video Streaming Applications

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.

Origin

The original version of uvgRTP is based on Marko Viitanen's fRTPlib library.