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.
Docker images used in Travis are availale on Docker Hub. See Continuous integration page for details.
Branch | Linux |
---|---|
master |
|
develop |
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
See detailed building instructions on wiki. See also INSTALL for dependencies and command-line options.
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.
Currently only Linux is supported. There are plans to add support for other *nix, Mac OS X, Windows, and embedded platforms like FreeRTOS.
work in progress
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.
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.
See AUTHORS.