All Projects → ultravideo → kvazzup

ultravideo / kvazzup

Licence: ISC license
Open software for HEVC video calls

Programming Languages

C++
36643 projects - #6 most used programming language
QMake
1090 projects
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to kvazzup

libjuice
JUICE is a UDP Interactive Connectivity Establishment library
Stars: ✭ 197 (+556.67%)
Mutual labels:  sip, sdp, ice
Kalbi
Kalbi - Golang Session Initiated Protocol Framework
Stars: ✭ 85 (+183.33%)
Mutual labels:  sip, voip, voip-application
Stun
A Go implementation of STUN
Stars: ✭ 141 (+370%)
Mutual labels:  sip, voip, ice
simlar-android
Simlar for android
Stars: ✭ 61 (+103.33%)
Mutual labels:  sip, opus, voip
sdp
A Go implementation of the SDP
Stars: ✭ 89 (+196.67%)
Mutual labels:  sip, sdp, voip
Re
Generic library for real-time communications with async IO support
Stars: ✭ 444 (+1380%)
Mutual labels:  sip, voip, ice
go-sip-ua
Go SIP UA library for client/b2bua
Stars: ✭ 129 (+330%)
Mutual labels:  sip, sdp, voip
pyfreebilling
Routing and rating VoIP application for service providers - API based - AGPL v3 - Based on kamailio
Stars: ✭ 75 (+150%)
Mutual labels:  sip, voip, voip-application
baresipy
baresip python wrapper
Stars: ✭ 16 (-46.67%)
Mutual labels:  sip, voip, voip-application
kamailioexamples
configurations for voip solution architectures and usecases involving SIP servers
Stars: ✭ 59 (+96.67%)
Mutual labels:  sip, voip, voip-application
Sipsorcery
A WebRTC, SIP and VoIP library for C# and .NET Core. Designed for real-time communications apps.
Stars: ✭ 449 (+1396.67%)
Mutual labels:  sip, voip, ice
Heplify Server
HEP Capture Server
Stars: ✭ 110 (+266.67%)
Mutual labels:  sip, voip
Sippts
Set of tools to audit SIP based VoIP Systems
Stars: ✭ 116 (+286.67%)
Mutual labels:  sip, voip
Kamailio
Kamailio - The Open Source SIP Server for large VoIP and real-time communication platforms -
Stars: ✭ 1,358 (+4426.67%)
Mutual labels:  sip, voip
Ivozprovider
IVOZ Provider - Multitenant solution for VoIP telephony providers
Stars: ✭ 127 (+323.33%)
Mutual labels:  sip, voip
Dart Sip Ua
A dart-lang version of the SIP UA stack.
Stars: ✭ 132 (+340%)
Mutual labels:  sip, voip
Linphone Desktop
Linphone is a free VoIP and video softphone based on the SIP protocol. Mirror of git://git.linphone.org/linphone-desktop.git
Stars: ✭ 212 (+606.67%)
Mutual labels:  sip, voip
mystery
WebRTC Server implemented by ❤️ Rust + Node.js.
Stars: ✭ 150 (+400%)
Mutual labels:  sdp, ice
Vsaudit
VOIP Security Audit Framework
Stars: ✭ 97 (+223.33%)
Mutual labels:  sip, voip
Flutter Webrtc
WebRTC plugin for Flutter Mobile/Desktop/Web
Stars: ✭ 2,764 (+9113.33%)
Mutual labels:  sip, voip

Kvazzup

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 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.

Current features

Currently Kvazzup has the following features:

  • Initiating call through Session Initiation Protocol (SIP) proxy with authentication
  • Alternatively, initiating call peer-to-peer (firewall needs to have incoming TCP port 5060 open)
  • Peer-to-peer media delivery with NAT traversal using Interactive Connectivity Protocol (ICE)
  • Contacts list
  • Enable/disable audio and video
  • Screen sharing
  • Media settings which are saved to the disk
  • Automatic selection of best media settings with option for manual adjustment
  • Live media setting adjustment
  • A statistics window for monitoring call quality
  • Media delivery encryption

Compile Kvazzup

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. It is possible, although not recommended to use Kvazzup without Crypto++.

Kvazzup uses code indent of 2. You can change that in qt creator from Tools -> Options -> C++ -> Code Style by making a new code style with indent and tab sizes of 2.

As per usual, make sure you don't mix libraries from different compilers or bit versions. 64-bit (x64) is the recommended bit version of Kvazzup.

Linux (GCC)

Install Qt, Qt multimedia and QtCreator. Make sure Opus, Speex DSP, OpenMP and Crypto++ are installed. Compile and install OpenHEVC, Kvazaar and uvgRTP.

Ubuntu

On Ubuntu, the necessary Qt packets are qt5-default qtdeclarative5-dev libqt5svg5-dev qtmultimedia5-dev libqt5multimedia5-plugins libqt5multimediawidgets5.

Next, install qtcreator.

The following Kvazzup dependencies are available as packages: libopus-dev libspeexdsp-dev libomp-dev libcrypto++-dev. For the OpenHEVC, Kvazaar and uvgRTP, if they are not available, you will have to clone the Github repositories and compile them according to their respective instructions.

If you have trouble with Qt creator code highlights, but not compilation, make sure you have the correct version of Clang installed. When testing, the Ubuntu had clang-10 installed when Qt depended on clang-8. Installing clang-8 may solve this issue.

Note: We have not been able to get the changing of the camera formats, resolutions or frame rates to work on Linux. It is possible that we didn't have all the necessary packets installed or that there is some sort of bug in qt multimedia/multimediawidgets on Ubuntu. Any information on this would be greatly appreciated.

Windows (MinGW)

Make sure OpenMP is installed in your build environment. Compile rest of the dependencies. If you are not putting files to PATH, Kvazzup MinGW build uses the following folders for build files:

  • ../include for library headers
  • ../libs_dbg for debug builds of libraries
  • ../libs for release builds of libraries

Windows (Microsoft Visual Studio)

Compile the dependencies. If you don't exclude Crypto++, you need to compile it with dynamic C++ runtime linking. See this section for detailed instructions. After that, the easiest way to compile Crypto++ is to select Build -> Batch Build....

If you are not putting files to PATH, Kvazzup Visual Studio build uses the following folders for build files:

  • ../include for library headers
  • ../msvc_libs_dbg for debug builds of libraries
  • ../msvc_libs for release builds of libraries

Shared Kvazaar (default)

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. It is include by default.

Static Kvazaar

Please uncomment: DEFINES += KVZ_STATIC_LIB in Kvazzup.pro file and remove DEFINES += PIC.

Paper

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.

Planned features

  • Contact presence monitoring
  • Multiparty video conferences
  • TLS Encryption
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].