<div dir="ltr"><div dir="ltr"><div class="gmail_default" style="font-family:verdana,sans-serif">All:</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">I've got a very stable player running, and the current challenge I'm facing is running 3 players (3 identical linux devices to 3 displays), and having them point to the same timecode (give or take maybe 100ms).  Note the videos are slightly different, and are played out using HLS from localhost, so the actual encodes are going to be slightly different, including the actual segment durations (target is 15s).</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">I'm seeking (at some point) each player to a specific timecode, but what I see when I compare the actual current timecodes of each of the playing streams, I see different current timecodes. Sometimes all are within 0.5s (which honestly I could probably live with), but sometimes 2 of the 3 are close and the third is 15s off, which isn't good. Just now, I resynced the timecodes, and all three are pretty close.  So the solution might be to do this resync on an every so often basis.</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">Seek code (with if statements/error handling removed):</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style=""><font face="monospace">    flags = Gst.SeekFlags.TRICKMODE | Gst.SeekFlags.KEY_UNIT | Gst.SeekFlags.SNAP_NEAREST |Gst.SeekFlags.FLUSH<br><br>    seek_event = Gst.Event.new_seek(1.0,<br>        Gst.Format.TIME, flags,<br>        Gst.SeekType.SET, position_nanoseconds,<br>        Gst.SeekType.NONE, 0)<br>    self._player.send_event(seek_event)<br></font></div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">Pipeline:</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div><div class="gmail_default" style=""><font face="monospace">souphttpsrc location="<a href="http://localhost/foo.m3u8">http://localhost/foo.m3u8</a>" ! parsebin name=pb ! </font></div></div><div><div class="gmail_default" style=""><font face="monospace">queue ! vaapih265dec ! video/x-raw,format=P010_10LE ! </font></div></div><div><div class="gmail_default" style=""><font face="monospace">queue max-size-bytes=100663300 ! kmssink connector-id=78 plane-id=55</font></div></div><div><div class="gmail_default" style=""><font face="monospace">pb. ! queue ! fdkaacdec ! scaletempo ! volume volume=0.5 ! alsasink</font></div></div></blockquote><div dir="ltr"><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">Clearly there's a lot going on here. How best to approach this problem? I've been grappling with various approaches (like, look at the variance from position to expected position and building a delta that I use here), but they don't really seem to help.</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">Thanks!</div><div class="gmail_default" style="font-family:verdana,sans-serif">-Bill</div></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0.8ex;border-left:1px solid rgb(204,204,204);border-right:1px solid rgb(204,204,204);padding-left:1ex;padding-right:1ex"><div dir="ltr">

</div>
</blockquote></div></div>