Roc Toolkit implements real-time streaming over unreliable networks like Internet and Wi-Fi. It works on Linux and macOS and provides C library, CLI tools, modules for PulseAudio and PipeWire, and Android app.

https://github.com/roc-streaming/roc-toolkit

  • Admiral Patrick@dubvee.org
    link
    fedilink
    English
    arrow-up
    3
    ·
    edit-2
    7 months ago

    Latency is low enough to not be noticeable when playing video on my laptop and streaming audio to the desktop.

    That’s basically my use case. Want to use my HTPC as the source and some RasPi’s or repurposed thin clients as the sinks - pretty much what I do now with MPD and Snapcast. I absolutely do not want to have to mess with audio offset settings in Emby to keep the dialog in sync. lol

    I’ve only skimmed the docs (holidays are a huge time sink haha), but do you know if it can do one-to-many or just one-to-one? Like, can I have one source and multiple receivers? The docs seemed to imply it could do one-to-many, but I didn’t get to dive into them deep enough.

    • chtk@feddit.nl
      link
      fedilink
      arrow-up
      2
      ·
      7 months ago

      Sorry for the late reply.

      I don’t know if ROC can do multicast on its own. I use the Pipewire source and sink. And I only do the one-to-one setup.

      I did some tests in Pipewire:

      Configuring multiple sinks is possible on a machine. They simply present as additional output devices. So if you want to switch audio to another source, that should be doable by switching to another output device.

      Doing one-to-many: I don’t know if that is possible with ROC alone. You might be able to do something with Pipewire graphs