I want to stream synchronized media to multiple devices (also called multi-room audio), similar to what is done with Sonos or AirPlay. I figured this would be easy to do using RTP multicast, as you only need to set up one multicast stream using VLC (or a GStreamer/ffmpeg/etc. server) to which all clients can connect. This seems to work fine over ethernet, but causes problems over WiFi (apparently due to low bandwidth allocation for multicast packets on most routers).
A syncronized VLC streaming setup described here is a good solution, but only works with an earlier version of VLC (0.8.6b).
Are there any other options for synchronized media streaming over WiFi?
A few months later, and I finally have an answer to my own question.
The best solution seems to be to use Logitech Media Server (aka SqueezeCenter) as a streaming server and Logitech Squeezeboxes (HW solution) and/or SqueezePlay (SW solution for Mac/Win/Linux) for media playback. SqueezePlay and Media Server are free and a Squeezebox is around €140/$180. You can also use the Squeezebox apps on Android/iOS as controllers.
I have tested synchronization between two Squeezeboxes and one SqueezePlay instance (Mac) connected to a Media Server (Linux) and it worked without problems. The streaming protocol and how synchronization is performed is explained here.
If you want to programmatically control the devices, there is a Logitech SqueezeCenter Telnet CLI (see Help > Technical Information > Command Line Interface on the Logitech Media Server), as well as a Python wrapper for the CLI.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With