Features¶
High-level features¶
- streaming CD-quality audio using RTP
- maintaining pre-configured fixed latency
- restoring lost packets using Forward Erasure Correction codes
- communicating redundant packets using FECFRAME
- encoding and decoding using OpenFEC
- resampling
- converting between the sender and receiver clock domains (on receiver)
- converting between the network and input/output sample rates (on receiver and sender)
- configurable resampler backends and profiles for different CPU and quality requirements
- multiplexing
- mixing simultaneous streams from multiple senders on the receiver
- binding receiver to multiple ports with different protocols
- connecting sender to multiple receivers with different protocols
- support for unicast, multicast, and broadcast
- interleaving packets to increase chances of successful loss recovery
- session watchdog
- detecting session shutdown and removing the session
- detecting playback problems and restarting the session
Protocols and encodings¶
See also
- RTP
- RTP AVP L16 encoding (lossless 44100Hz PCM 16-bit stereo)
- RTCP
- FECFRAME
- Reed-Solomon (m=8) FEC scheme (lower latency, lower rates)
- LDPC-Staircase FEC scheme (higher latency, higher rates)
API and tools¶
See also
- transport API
- roc_sender — send audio stream to receiver
- roc_receiver — receive and mix audio streams from senders
- command-line tools
- roc-send — read audio stream from audio device or file and send to receiver
- roc-recv — receive and mix audio streams from senders and write to audio device or file
- roc-conv — run Roc resampler from command-line
- PulseAudio modules
- module-roc-sink — send audio stream written to the sink to receiver
- module-roc-sink-input — receive and mix audio streams from senders and write to the connected sink
- PipeWire modules
- roc-sink — send audio stream written to the sink to receiver
- roc-source — receive and mix audio streams from senders and write to the connected apps
- Mobile apps
- Roc Droid – Android app that connects your phone to other Roc senders and receivers
Portability¶
See also
- supported operating systems
- GNU/Linux
- macOS
- Android
- tested hardware architectures
- x86_64
- i686
- ARMv6
- ARMv7 (Cortex-A 32-bit)
- ARMv8 (Cortex-A 64-bit)