Coder Social home page Coder Social logo

uvgrtp_practice's Introduction

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. Furthermore, uvgRTP can be used to transport Visual Volumetric Video-based Coding (V3C) encoded volumetric video. 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:

You are welcome to contact us in our Discord if you have questions or comments regarding the library Discord

Notable features

  • AVC/HEVC/VVC video streaming, including packetization
  • V3C Atlas 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.

Learning to use uvgRTP

To get started using uvgRTP, check out usage file which contains a step-by-step tutorial for using uvgRTP. To see uvgRTP in action, the examples folder contains many working examples to illustrate how to use uvgRTP in variety of situations. For a more detailed description, check the documentation where you can find info on advanced topics and descriptions of all uvgRTP flags.

Furthermore, we also provide a Doxygen documentation of the public API on Github.

Contributing

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

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.

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.

Origin

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

uvgrtp_practice's People

Contributors

altonen avatar jrsnen avatar tampsa avatar mansourmoufid avatar fador avatar jheo4 avatar mathisloge avatar emka94 avatar wowaser avatar ashley-b avatar gugautie avatar lhp-git avatar roharvey avatar taeklimlee avatar juteman avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.