Giter VIP home page Giter VIP logo

roc's Introduction

Roc: real-time audio streaming over network

Roc is a library and tools for real-time streaming of high-quality audio over unreliable network.

Goals:

  • guaranteed latency;
  • good quality of service on unreliable networks, such as 802.11 (Wi-Fi);
  • portability;
  • relying on open, standard protocols.

Status

Docker images used in Travis are availale on Docker Hub. See Continuous integration page for details.

Branch Linux
master
develop

Work in progress!

There is no public release yet. See Roadmap and open issues for current and future plans.

The upcoming 0.1 release will include the following features:

  • Simple public API for sender and receiver
  • Command line tools for sender and receiver
  • Network I/O
  • Sound I/O (in tools)
  • Audio processing pipeline with dynamic resampling
  • RTP support with uncompressed 16-bit linear PCM
  • FECFRAME support with Reed-Solomon and LDPC-Staircase FEC codes using OpenFEC
  • Documentation
  • Linux support, including Raspberry Pi
  • Mac OS X support
  • Proof of concept Roc-based network transport for PulseAudio

Documentation

Building

See examples on wiki. See also INSTALL for further details.

Try it

After building, tools are instaleld into bin/<host>/ directory.

Example usage:

  • Start receiver listening on all interfaces on UDP ports 10001 and 10002:

    $ roc-recv -vv -s :10001 -r :10002
    
  • Send WAV file to the receiver:

    $ roc-send -vv -s <receiver_ip>:10001 -r <receiver_ip>:10002 -i file.wav
    

See --help option for usage details.

Supported platforms

  • Linux
  • Mac OS X (work in progress)

There are plans to support other platforms, notably other *nix systems, Android, and maybe some embedded systems like FreeRTOS.

Supported protocols

There are plans to support RTCP, SAP/SDP, and RTSP in upcoming releases.

Contributing

Contributions are always welcome! Please read CONTRIBUTING for general hints and look at Roadmap and open issues to figure out what's going on.

  • If you'd like to report a bug, ask a question, or suggest a feature, feel free to create an issue.

  • If you'd like to submit a patch, create a pull request. For non-trivial changes, it may be reasonable to start with discussing the implementation details in an existing or a new issue.

Licensing

Roc source code is licensed under MPL-2.0, see LICENSE. Roc logos by botanicahouse are licensed under CC BY-SA 4.0.

Issues with external dependencies:

  • Roc may be configured to use FEC codec from OpenFEC, which is licensed under CeCILL, a GPL-like and GPL-compatible license. When Roc is built with OpenFEC support enabled, it must be distributed under a lincense compatible with CeCILL.

Authors

See AUTHORS.

roc's People

Contributors

gavv avatar baranovmv avatar adrianopol avatar

Watchers

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