Kvazzup is a High Efficiency Video Coding (HEVC) video call software written in C++ and built on Qt application framework. The aim of Kvazzup is to be pave way for better quality video calls while valuing usability, security and privacy. Kvazzup is also designed to work as a testbed novel video call technologies that improve the video call experience. Kvazzup makes use of the following open-source tools: Kvazaar for HEVC encoding, OpenHEVC for HEVC decoding, Opus Codec for audio encoding and decoding, uvgRTP for media delivery and Speex DSP for Acoustic Echo Cancellation (AEC).
Kvazzup is under development and new features will become available.
Currently Kvazzup has the following features:
- Initiating call through Session Initiation Procol (SIP) proxy (authentication is not yet supported)
- Initiating call peer-to-peer (firewall needs to have an open port 5060 for incoming TCP)
- Peer-to-peer media delivery with NAT traversal using Interactive Connectivity Protocol (ICE)
- Contacts list
- Enable/disable audio and video
- Screen sharing
- Video and audio Settings which are saved to the disk
- Live call parameter adjustment
- A statistics window for monitoring the call quality
Kvazzup requires the following external libraries to operate:
Qt Creator is the recommended tool for compiling Kvazzup. Make sure you use the same compiler and bit version for all the dependencies and for Kvazzup. If you want to use media encryption, you should compile uvgRTP with crypto++ by adding -D__RTP_CRYPTO__
to uvgRTP CXXFLAGS.
Install Qt and Qt multimedia. Make sure Opus, Speex DSP and OpenMP are installed. Compile and install openHEVC, Kvazaar and uvgRTP.
Make sure OpenMP is installed in your build environment. Add compiled libraries to PATH or to ../libs
folder and headers to PATH or ../include
.
Compile the dependencies. Add compiled libraries to PATH or to ../msvc_libs
folder, and headers to PATH or ../include
.
When compiling Kvazaar, select Dynamic Lib(.dll) in kvazaar_lib project Properties: General/Configuration Type and add ;PIC to C/C++ Preprocessor/Preprocessor Definitions.
In Kvazzup, please make sure:DEFINES += PIC
is included in Kvazzup.pro file.
Please uncomment: DEFINES += KVZ_STATIC_LIB
in Kvazzup.pro file.
If you are using Kvazzup in your research, please refer to the following paper:
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.
- The Linux version of Kvazzup has a bug with QCamera which prevents from changing the default resolution.
- The Opus codec is disabled on Linux until issues with it have been resolved.
- RFC 3261 Authentication
- Contact presence monitoring
- Multiparty video conferences
- TLS Encryption
- Automatic call parameter adjustment