Coder Social home page Coder Social logo

audiostreaming's Introduction

Audio Streaming library for Qt5

Cross platform audio streaming and VoIP library for local networks.

Features:

  • Fully multi threaded.
  • Audio can be compressed using Opus codec.
  • Audio can be buffered to reduce the occurrence of buffer underflow in the client side.
  • Can work on Broadcast or Walkie Talkie modes.
  • Can be compiled targeting any Qt5 supported platform.
  • Low latency modes are supported.

Needed:

Qt 5.x

C++11 compiler.

You can choose to compress audio with Opus codec or not. If choose to compress you'll need to compile Opus to your targets(Windows, Linux, macOS or Android). To compile Opus for android see the opus-android README, and need to download r8brain

If you want to static link OpenSsl,(independently if generating a shared or static library) just compile OpenSsl to fit your needs.

If not compressing audio and not directly dealing with OpenSsl the only requirement is Qt5 and a C++11 compiler.

Compilation Info:

To compile the library you need to choose if you want to compress audio using Opus codec or not, and if you want to static link OpenSsl or not.

If you want to use Opus edit AudioStreamingLibSettings.pri setting OPUS_ENABLED = TRUE, with the appropriated version of Opus compiled just set the include folder of r8brain and Opus, and the Opus libraries location in AudioStreamingLibSettings.pri. If you don't want to use Opus leave OPUS_ENABLED blank or with any other value than TRUE.

The same applies to OpenSsl, if you want to static link OpenSsl set OPENSSL_ENABLED = TRUE.(Please not that even if OpenSsl won't be statically linked it may be available through dynamic linking at runtime.) With the appropriated version of OpenSsl compiled just set the include folder and the libraries location of OpenSsl in AudioStreamingLibSettings.pri.

With the appropriate settings set (using Opus or not, static linking OpenSsl or not) build the buildlib.pro, if it's already built and you are changing settings remember to re-run qmake and rebuild.

Using the library:

Using the library is easy, just add include(path/to/AudioStreamingLib.pri) to your project file.

To get started coding add #include <AudioStreamingLibCore> to your header/source file.

This project comes with demos of usage, just build and test them.

For more information of how to use the APIs, see the Wiki.

Third party libraries:

Eigen

Opus

OpenSsl

Kiss FFT

audiostreaming's People

Contributors

antonypro avatar

Watchers

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