Media player video playback replication


I am currently working on a multiplayer collaboration tool for VR+PC. One of the use-cases is playing videos for everyone who is connected. They can also control the video using basic media player functions like Play/pause, seek, etc.

Now my problem is, that I can’t keep the videos in sync for everyone across the network and can’t find any replication settings for the Media Players.

Is that possible? What is the right path here?

I did this by thinking of the server as the timekeeper. I made a replicated variable of the elapsed time on the server and then I RPC that to the clients on a given interval. If a client drifts too behind/ahead in time, the server will attempt to re-sync them, by doing a seek on the client to match the server’s time.

However ultimately I found it’s nearly impossible to keep everyone in sync and have a fluid experience. Constantly trying to correct sync can cause stutters etc. I just let everyone know that their video playback may fall out of sync and just live with it. I then ask the group if the video is finished to get confirmation before moving on.

Thanks for the answer! I think I will do something similar. Only sync up everyone if some kind of media player command is executed like play,pause,seek. And then work with a disclaimer, that stuff might run out of sync.