gimesketvirtadieni/slimstreamer

How about the synchronization performance of multi-room playback?

Closed this issue · 1 comments

Didn't understand how your devices are playing synchronously? thanks!

Hi. In theory it is quite simple: SlimProto clients (for example squeezelite) report back to the server accurate Play Points (basically a Play Point is a pair of a timestamp and a duration played in millisec). Reported play points are used to calculate a drift of a particular player. If drift reaches some threshold then server issues one of two commands: skip ahead by X frames or pause by Y frames.
In practice it is very difficult to get right due to network latency and time difference (client vs server). Please note that SlimStreamer does not require using NTP or any other time synchronization means.
Current development status is that coordinated simultaneous playback start is working, playback drift calculation is almost done and drift correction is the next task to complete.
Feel free to reopen this issue if you have further questions ;)