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 214 forks source link

[Feature request] custom playback speed #115

Closed bitingsock closed 7 years ago

bitingsock commented 7 years ago

Usually when my group of friends watch movies we watch at 1.1-1.2X speed. This feature would be very desirable for us for syncplay to support. It seems that if everyone sets the speed at the same time it keeps us sync until it seeking or pausing resets it; but have a synced setting would be best.

Et0h commented 7 years ago

I can see why it'd be useful, but it'd probably need a third-party to adopt this as a project for it to get done.

http://syncplay.pl/guide/trouble/ notes that: "Manually setting the playback rate may cause problems. Syncplay generally assumes a playback rate of 1.0 and in some instances sets the playback rate to help get everyone more in sync."

Not sure how much work it would take for the clients and servers to support varying playback speeds, but it'd certainly be non-trivial.

winneon commented 7 years ago

I know that MPC-HC and VLC both support playback speeds in their own form, and they act the same. I'm currently learning mpv as my main player, so I do not know if mpv supports the same thing, but if mpv and mplayer supports the same concept, it shouldn't be difficult to implement this, correct? Of course, this is assuming each player has direct API access to control the playback speed in conjunction with the other features Syncplay provides.

Et0h commented 7 years ago

mpv supports playback rate changes, but that isn't the issue. The Syncplay client/server both assume things move forwards 1 second per second and that is an assumption made at various points in the code (e.g. using the difference in seconds to calculate current position if the player hasn't responded recently), so in addition to the protocol changes there would need to be some algorithm changes too (plus code to monitor speed to detect changes). Furthermore, if one wanted the 'slowdown on desync' feature at the same time as playback-syncing one has to be able to distinguish between them and potentially apply one to the other... eep!

daniel-123 commented 7 years ago

@winneon I agree with other guys about this being a feature not really being worthwhile - it would take considerable effort to properly implement and vast majority of users would never use it. On the other hand Syncplay already can kinda support the feature if setup in particular way:

I have tested it only with mpv, which is by far most robust out of supported players. Dunno whether others will work.

Et0h commented 7 years ago

Have added it as an idea at http://syncplay.pl/about/ideas/ and anyone is free to implement it. If it were implemented, it would need to be done properly so it would work on a per-room basis and give a warning if someone has a client/player that doesn't support it.