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

[feature request] More granular control over sync parameters. #289

Closed jeroenev closed 4 years ago

jeroenev commented 4 years ago

Currently, there are 2 ways the client tries to get back in sync:

however, it is not defined what "major" and "minor" actually is. It would be nice if we could control these parameters to control at which time-difference the programs start rewinding. It would also be nice to be able to control the slowdown speed in these scenarios (maybe even in intervals depending on how big the time-difference is.

Et0h commented 4 years ago

Hi. Firstly, how regularly is Syncplay actually rewinding or slowing down on desync for you? Has it ever been out of sync in a noticeable way?

For me it is only once in a blue moon that it ever slows down or rewinds, so it might indicate something is wrong, e.g.:

  1. Someone has a really flakey Internet connection
  2. Someone is trying to watch videos that is beyond the graphical capabilities of their computer
  3. You are trying to get too many people into a regular room, and should be using a managed room
  4. You are trying to do something which Syncplay was not designed to do, e.g. using Syncplay for public displays

Secondly, you can some of the settings as per the guide at https://syncplay.pl/guide/client/ by modifying the values (in decimal seconds) in the [client_settings] group of the syncplay.ini file, e.g.:

If you want to change the slowdown rate then you will have to modify the constants.py file, so not so easy if you're not a Python developer. The relevant constant is SLOWDOWN_RATE. A different (hacky) way to do it would be to intercept the slowdown commands in the mpv or VLC interfaces to make 0.95 be converted to a different number.

jeroenev commented 4 years ago

In my case it's definitely the first item on the list we're usually only in a room with 2 or 3 people, 1 of my friends has sometimes unreliable internet. Rewinds usually happen 1 to 3 times while watching a movie. But when it happens it seems to rewind every 5 seconds for about a minute or so. I wasn't aware there was a configuration to change these thresholds. I will definitely try to change those.

I'm a python developer, So changing the Slowdown rate should be easy. Maybe I could also help to add these options to the GUI? Although I'm not really familiar with QT.

Anyway, thanks for the valuable info.

daniel-123 commented 4 years ago

Those options are intentionally omitted from GUI, though the relevant discussion happened years ago. The conclusion was that tuning those is surprisingly complicated and can easily make players behave erratically, fall into back-and-forth loops with other users in the same room etc. Current values were tested with 3g GSM connections and worked fine there so we called it a day.

As it stands right now I don't think adding those options to GUI is desirable because they are more likely to cause trouble than help.

Et0h commented 4 years ago

If Syncplay ever gets stuck slowing down or rewinding then pause, wait 5 seconds, and resume. Also, if your friend's connection is too unreliable then one option is to set up a managed room and have everyone but them be a room operator.

jeroenev commented 4 years ago

Yeah I definitely understand the reason for not wanting it in the UI. Seems like there are a few other reasons for the syncing issues: 1) we were streaming video + using syncplay at the same time. 2) connecting VLC to a chromecast pauzes local playback for 10-30 seconds, without triggering the pause/unpause in syncplay, causing the stream to jump back a few times for all the other viewers.