Syncplay / syncplay

Client/server to synchronize media playback on mpv/VLC/MPC-HC/MPC-BE on many computers
http://syncplay.pl/
Apache License 2.0
2.11k stars 215 forks source link

Question only: Can the po5/grouplay repo work with the syncplay repo? #299

Closed mgw-sbex closed 4 years ago

mgw-sbex commented 4 years ago

Hi, We would like to see the group try to stay in sync more closely than 1-2sec. Can the po5/grouplay repo on Github work with syncplay to make the sync more like .2 seconds?

Thank you!

Et0h commented 4 years ago

Syncplay wasn't designed to try to maintain that level of precision, but you might be able to achieve it if you:

  1. Use mpv as the media player
  2. Press "play" from a different instance of Syncplay from the one that you are using for primary playback
  3. Setting a lower value for SLOWDOWN_KICKIN_THRESHOLD in syncplay.ini/.syncplay (1.5 seconds by default)

Syncplay behaviour for advancing music on playlists in Syncplay has been changed in version 1.6.5 which is not out yet, but a pre-release version is available from: https://bintray.com/syncplay/Syncplay/Syncplay/v1.6.5#files - if you have general problems using the shared playlist with music then try out this version.

I have not used https://github.com/po5/groupwatch_sync but it doesn't look like you can use them both at the same time as they use different approaches to staying in sync. If someone wanted to make a Syncplay/groupwatch_sync hybrid they would need to get the author's permission first for it to be released under an appropriate FLOSS license.

daniel-123 commented 4 years ago

As a side note about times you mentioned - Syncplay unpause precision should be in line with sum of the packet trip time to server and back to other clients. In my own case of server being on the same continent, but different country and decent internet connection I see around 0.2-0.3 second delay. Seeking behavior is different as it is allowed to compensate for pings - assuming the video player performs well (read that as - it's mpv) for me that brings the difference down to around single frame of video.

Both of those values are within the same realm as VoIP delays which is the design goal. Only exception might be if clients are on the other side of the world to the server. But then you can just host the server yourself.

Better precision for unpause syncing was discussed much earlier, but it runs into issues with performance on player side. Players other than mpv are just way too slow to react. mpv itself also is often forced to render a P-frame which inherently requires more processing power so for this to work smoothly you'd also need a fast PC. Back in the day we decided that benefits of this approach are negligible for the amount of issues that stem from it.

mgw-sbex commented 4 years ago

Etoh,

Thank you for this. We are using mpv. Can you say more about your point 2, I don't understand. In our case we have from 4 people up to 100 people who are in the same town but not able to leave home. In the case of 4 people, are we saying to run 5 instances of Syncplay? Where would the 5th be?

Thank you!

Et0h commented 4 years ago

@mgw-sbic The 5th can be on any of the 4 computers, but because it has to go to the server and back it means everyone should be synced at the same time. Based on what @daniel-123 says, if you seek to 1 second into that file on the 5th instance it might do an event better job of syncing everyone up if if the server takes the latency into account when telling the various clients which position it should seek to.

Furthermore, in line with what @daniel-123 also said, if you want to avoid the round trip to our server in France then you can also run your own private server in the country you are running Syncplay in to keep latency and jitter as low as possible.

mgw-sbex commented 4 years ago

Hi Again Etoh, thank you. Can you say a little more about this:

"because it has to go to the server and back it means everyone should be synced at the same time"

How can we sync everyone at the same time? That is sort of the problem we are hoping Syncplay will solve.

On Sun, Apr 19, 2020 at 10:51 AM Etoh notifications@github.com wrote:

@mgw-sbic https://github.com/mgw-sbic The 5th can be on any of the 4 computers, but because it has to go to the server and back it means everyone should be synced at the same time. Based on what @daniel-123 https://github.com/daniel-123 says, if you seek to 1 second into that file on the 5th instance it might do an event better job of syncing everyone up if if the server takes the latency into account when telling the various clients which position it should seek to.

Furthermore, in line with what @daniel-123 https://github.com/daniel-123 also said, if you want to avoid the round trip to our server in France then you can also run your own private server in the country you are running Syncplay in to keep latency and jitter as low as possible.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Syncplay/syncplay/issues/299#issuecomment-616194688, or unsubscribe https://github.com/notifications/unsubscribe-auth/AF2ZFMOH47UQOXJNSZZOKHTRNM2ZZANCNFSM4MLOP4UA .

mgw-sbex commented 4 years ago

Hi all,

I gave this a shot between two computers using your servers in France, I was able to get better sync using mpv because it slowed and adjusted to each other. I’m going to try using my own local server to see just how fast it can be, but I have a question, I couldn’t find that particular parameter SLOWDOWN_KICKIN_THRESHOLD in syncplay.ini/.syncplay. I’m Including the file so you can point me in the right direction:

Thanks! Jon

On Apr 19, 2020, at 11:09 AM, Michael Glenn Williams michael.glenn.williams@smartblondeco.com wrote:

https://meetings.hubspot.com/michael-glenn-williams
Michael Williams CEO | CTO Smart Blonde Experiential

8054991994 michael.glenn.williams@smartblondeco.com mailto:michael.glenn.williams@smartblondeco.com totalvu.tv https://totalvu.tv/ 13900 Marquesas Way, Marina Del Rey, CA http://totalvu.tv/ https://www.facebook.com/boldstream/app/128953167177144/ https://twitter.com/smartblondecorp https://www.linkedin.com/in/michaelglennwilliams/

---------- Forwarded message --------- From: Etoh <notifications@github.com mailto:notifications@github.com> Date: Sun, Apr 19, 2020 at 10:51 AM Subject: Re: [Syncplay/syncplay] Question only: Can the po5/grouplay repo work with the syncplay repo? (#299) To: Syncplay/syncplay <syncplay@noreply.github.com mailto:syncplay@noreply.github.com> Cc: Michael Glenn Williams <michael.glenn.williams@smartblondeco.com mailto:michael.glenn.williams@smartblondeco.com>, Mention <mention@noreply.github.com mailto:mention@noreply.github.com>

@mgw-sbic https://github.com/mgw-sbic The 5th can be on any of the 4 computers, but because it has to go to the server and back it means everyone should be synced at the same time. Based on what @daniel-123 https://github.com/daniel-123 says, if you seek to 1 second into that file on the 5th instance it might do an event better job of syncing everyone up if if the server takes the latency into account when telling the various clients which position it should seek to.

Furthermore, in line with what @daniel-123 https://github.com/daniel-123 also said, if you want to avoid the round trip to our server in France then you can also run your own private server in the country you are running Syncplay in to keep latency and jitter as low as possible.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Syncplay/syncplay/issues/299#issuecomment-616194688, or unsubscribe https://github.com/notifications/unsubscribe-auth/AF2ZFMOH47UQOXJNSZZOKHTRNM2ZZANCNFSM4MLOP4UA.

Et0h commented 4 years ago

Just checked and it is actually just called slowdownThreshold.

mgw-sbex commented 4 years ago

Hey Etoh!

Thank you for this!

We are wondering how many different locations/participants/nodes/IP addresses has sync play been used with?

Can we achieve a number as high as 80 to 100? Has that been tried by anyone?

Thank yoU!

On Wed, May 13, 2020 at 4:15 PM Etoh notifications@github.com wrote:

Just checked and it is actually just called slowdownThreshold.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Syncplay/syncplay/issues/299#issuecomment-628293944, or unsubscribe https://github.com/notifications/unsubscribe-auth/AF2ZFMKQEURERB5D7R7PBMTRRMSZLANCNFSM4MLOP4UA .

-- https://meetings.hubspot.com/michael-glenn-williams Michael Williams

CEO | CTO

Smart Blonde Experiential 8054991994 michael.glenn.williams@smartblondeco.com totalvu.tv 13900 Marquesas Way, Marina Del Rey, CA http://totalvu.tv [image: facebook] https://www.facebook.com/boldstream/app/128953167177144/ [image: twitter] https://twitter.com/smartblondecorp [image: linkedin] https://www.linkedin.com/in/michaelglennwilliams/

daniel-123 commented 4 years ago

@mgw-sbic: My intuition says it should work, but only if you use managed rooms feature (it's in "Advanced" menu). The reasoning is as follows:

Managed rooms in general cause the sync to work one-way. Room operators (authenticated by simple password) can pause, unpause, rewind etc. while non-operators only receive sync information with no ability to influence the state of room.

mgw-sbex commented 4 years ago

Daniel,

Thank you so much for this. Are the Managed Rooms in 1.6.4a? We had to stick with that because we found 1.6.5 had exactly the behavior you describe, even though all the participants had good computers and Internet.

Any thoughts on how we might be able to keep the managed rooms in sync with each other?

On Wed, May 13, 2020 at 11:44 PM Daniel Wróbel notifications@github.com wrote:

@mgw-sbic https://github.com/mgw-sbic: My intuition says it should work, but only if you use managed rooms feature (it's in "Advanced" menu). The reasoning is as follows:

  • Syncplay server itself can easily handle well over hundred users simultaneously if they are dispersed in small rooms. It also uses very little resources to do so.
  • Standard room works well only if there is a few people in it. This is because in larger groups you'll always end up with somebody having a very slow PC, extremely unreliable connection or whatever else. One such user will cause slowdown for everybody else by a bit, but if there is more then you can end up with a feedback loop of slowdowns and rewinds. This is the main reason why managed rooms were coded into Syncplay in first place.

Managed rooms in general cause the sync to work one-way. Room operators (authenticated by simple password) can pause, unpause, rewind etc. while non-operators only receive sync information with no ability to influence the state of room.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Syncplay/syncplay/issues/299#issuecomment-628424136, or unsubscribe https://github.com/notifications/unsubscribe-auth/AF2ZFMP6P6XVQKWZSICGONLRROHK7ANCNFSM4MLOP4UA .

-- https://meetings.hubspot.com/michael-glenn-williams Michael Williams

CEO | CTO

Smart Blonde Experiential 8054991994 michael.glenn.williams@smartblondeco.com totalvu.tv 13900 Marquesas Way, Marina Del Rey, CA http://totalvu.tv [image: facebook] https://www.facebook.com/boldstream/app/128953167177144/ [image: twitter] https://twitter.com/smartblondecorp [image: linkedin] https://www.linkedin.com/in/michaelglennwilliams/

daniel-123 commented 4 years ago

Managed rooms are a feature introduced in Syncplay 1.3.

What I meant is that you should set everybody to use a single managed room, but only few people (or just one person) are an operator.

You can find more details about how to use them in the cilent guide: https://syncplay.pl/guide/client/