Go to file
Joni Räsänen ba8b0cba80 common: Reverse the order of the header includes
I tried to make the headers be included in local to global order. This
way any potential missing includes are detected making it easier to
make changes to header location and includes.
2021-06-02 11:06:17 +03:00
docs doc: Fix example code 2021-05-30 07:52:40 +03:00
include common: Reverse the order of the header includes 2021-06-02 11:06:17 +03:00
src common: Reverse the order of the header includes 2021-06-02 11:06:17 +03:00
.gitignore build: Update .gitignore with build directory 2021-05-18 16:41:42 +03:00
BUILDING.md doc: Update build instructions with c++ version 2021-05-27 12:21:19 +00:00
CMakeLists.txt build: Make msvc define the __cplusplus macro 2021-05-27 15:12:47 +03:00
COPYING Update copyright 2021-03-23 01:16:42 +02:00
Doxyfile Add Doxygen main page 2021-03-23 01:19:47 +02:00
README.md doc: Readme fixes and clarifications 2021-04-27 08:15:30 +03:00
uvgRTP.pro build: Add H266 files to uvgRTP.pro 2021-05-29 08:19:30 +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 Versitile 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. For SRTP/ZRTP support, uvgRTP uses Crypto++ library. Currently uvgRTP is currently not under active development, but we will do our best to fix any issues and we warmly welcome any contributions to the project.

Currently supported specifications:

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

Notable features

  • Built-in support for:
    • AVC/HEVC/VVC video streaming
    • Opus audio streaming
    • Delivery encryption with SRTP/ZRTP
  • Generic interface for custom media types
  • UDP hole punching
  • Simple to use API
  • 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

Paper

If you use uvgRTP in your research, please cite the following paper:

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.