Skip to content

digideskio/roc

 
 

Repository files navigation

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

Roadmap for upcoming 0.1 release

Work in progress. See also open issues and TODO for current and future plans.

  • api: public API for client and server
  • stack: client/server libraries and tools
  • documentation: API, doxygen, wiki
  • protocols: RTP support
  • audio formats: uncompressed 16-bit linear PCM
  • latency: dynamic resampling in server
  • QoS: LDPC forward error correction
  • platforms: Linux (including Raspberry Pi), Mac OS X

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 server listening on all interfaces on UDP port 12345:

    $ rov-recv -vv :12345
    
  • Send WAV file to server:

    $ roc-send -vv -i song.wav <server_ip>:12345
    

See --help option for usage details.

Supported platforms

Currently only Linux is supported. There are plans to add support for other *nix, Mac OS X, Windows, and embedded platforms like FreeRTOS.

Supported protocols

work in progress

Contributing

Contributions are always welcome! Please read CONTRIBUTING for general hints and look at TODO 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, it's recommended to comment corresponding issue or create a new one to ensure that your work fits in Roc design and nobody else is already implementing it. Then, just create a pull request.

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 LDPC-Staircase codec from OpenFEC, which is licensed under CeCILL, GPL-like and GPL-compatible license. When Roc is built with OpenFEC support enabled, it must be distributed under lincense compatible with CeCILL.

Authors

See AUTHORS.

About

Real-time audio streaming over network.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 92.4%
  • Python 7.1%
  • Other 0.5%