Media player video playback replication

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.