Re: synchronized music playback across multiple renderers



2013/2/13 Alexander Kanavin <alex kanavin gmail com>:
> I'm planning to figure out if it's at all feasible with gstreamer.
> This feature needs a guarantee that seeking is synchronized to the
> clock, specifically that if we issue a seek event to the point x in a
> file at clock time y, then at any time y+a in the future, the playback
> is exactly at x+a. Nothing I've seen in gstreamer documentation
> indicates this, it might be that seeking happens ad-hoc, discarding
> the timestamp of the seek event.

I did some quick tests - the (flushing) seek inaccuracy seems to be
about 0.3ms when using Python. It's still about 15 audio samples, but
should be good enough for multi-room playback scenario, considering
that for example NTP's accuracy can be several milliseconds anyway. As
for the precision multi-channel playback with sub-sample accuracy,
that requires hardware support for 802.1AS (a significantly more
accurate time synchronization protocol than NTP) on all of the
renderers, and that's currently not available on common consumer
hardware.

Also, this will only work on seekable sources (aka recordings/files).
For live sources, a completely different approach is needed - with a
protocol like RTP which allows timestamping samples.

But with these restrictions, sync playback seems totally doable in Rygel.

--
Alexander


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]