Media player video playback replication

Hello,

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.

Hey, can you tell me how you implemented the play/pause function in the video? I have a 360-degree video that I’m trying to play and pause by using hand controllers of VR but not able to. Any help would be appreciated!!

hey, you can control unreal media playback with blueprint nodes, see this doc for more info:

Thanks a lot!

Have you achieved it ? Replication for media playback !

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.