Page content last modified on 2023-09-13.

uvgComm Video Communication

The uvgComm usage

uvgComm is a High Efficiency Video Coding (HEVC) video communication application written in C++ and built on Qt application framework. uvgComm aims to provide a testbed for novel video conferencing solutions, while also advancing the field of Real-Time Communication (RTC). uvgComm is licensed under permissive ISC-license.

Please cite the following paper or any other paper below if you use uvgComm in your research:

J. Räsänen, M. Viitanen, J. Vanne, and T. D. Hämäläinen, “ Kvazzup: open software for HEVC video calls,” in Proc. IEEE Int. Symp. Multimedia, Taichung, Taiwan, Dec. 2017. [Tuni.fi] [PDF]
Quick info
What? Video communication using state-of-the-art technologies
Why? To test improvements to the quality of video communication
How? Implementing protocols using the Qt framework and C++

Protocols
SIP Session Initiation Protocol (SIP) is a signaling protocol that enables uvgComm to start, answer or end calls. uvgComm has its own SIP implementation and does not use any existing library. uvgComm has been tested with Kamailio SIP proxy.
SDP Session Description Protocol (SDP) is used for describing the media parameters wanted for the call and is used to negotiatiate various aspects of the call. SIP messages carry SDP messages as a payload during call initiation.
ICE Interactive Connectivity Establishement (ICE) protocol is used to find the optimal route for media traversal when call is starting. ICE candidates are transferred inside the SDP messages.
RTP Real-time Transport Protocol (RTP) is responsible for the media delivery. uvgComm sets up the delivery using our uvgRTP library. uvgRTP handles the fragmentation of video frames so they go smoothly through the network.

uvgComm is under development and new features will become available. Currently, the goal is to make uvgComm work in all network situations.

Flexible Settings

Structures tab of uvgComm video settings for adjusting video encoder parameters.

Since uvgComm uses the codecs directly, uvgComm can also offer full control for the codecs directly to user. User can adjust almost any codec parameter to their liking from settings User Interface.

Useful Statistics

Structures tab of uvgComm video settings for adjusting video encoder parameters.

The statistics of uvgComm show 1) the SIP log, 2) the call parameters, 3) statistics for delivery, 4) Filter Graph buffer statuses, and 5) the call performance. The statistics window can be used to verify correct operations and monitor the performance characteristics of uvgComm.

Clear Architecture

Structures tab of uvgComm video settings for adjusting video encoder parameters.

uvgComm is divided into subsystems than handle a particular task. There is a controller or manager class which handles the interactions between subcomponents. This division enables easier understanding of the program as a whole and also makes modifications easier because a smaller segment of the program is affected when making changes. Easy modifications should make implementing new technologies and techniques fast and convenient.

Publications

J. Räsänen, H. Tampio, A. Mercat, and J. Vanne, “uvgComm: Open software for low-latency multi-party video communication,” in Proc. ACM Int. Conf. Multimedia, Melbourne, Australia, Oct.-Nov. 2024.

J. Räsänen, A. Altonen, A. Mercat, and J. Vanne, “Live demonstration: interactive quality of experience evaluation in Kvazzup video call,” in Proc. IEEE Int. Symp. Multimedia, Naples, Italy, Dec. 2020. [Tuni.fi] [PDF]

J. Räsänen, M. Viitanen, J. Vanne, and T. D. Hämäläinen, “Live demonstration: Kvazzup 4K HEVC video call,” in Proc. IEEE Int. Symp. Multimedia, Taichung, Taiwan, Dec. 2018. [Tuni.fi] [PDF]

J. Räsänen, M. Viitanen, J. Vanne, and T. D. Hämäläinen, “Kvazzup: open software for HEVC video calls,” in Proc. IEEE Int. Symp. Multimedia, Taichung, Taiwan, Dec. 2017. [Tuni.fi] [PDF]