VRChat

The VRChat Documentation Hub

Welcome to the VRChat Documentation hub. You'll find comprehensive guides and documentation to help you start working with VRChat as quickly as possible, as well as support if you get stuck. Let's jump right in!

Get Started    

VRC_SyncVideoStream

Quick Setup

Check out the Starter Guide for a quick setup.

Similar to VRC_SyncVideoPlayer, this component provides the control center and playlist options for your video. Each entry now has a SyncType which supports the following modes:

  • Normal - this is a normal playback video whose timecode is synced among viewers.
  • LiveStream - this is a live streaming source, the timecode is irrelevant, it is showing the current live stream, so is reasonably synced among viewers.
  • Karaoke - this is similar to Normal mode, except the sync is ignored after the first play start. This allows remote clients to "desync" with fastforward and rewind to adjust for singer latency. Owner Stop, Play, FF, REW will still affect everyone.

In addition, each stream has a SyncMinutes option. This indicates the period in minutes that the player will attempt to resynchronize its audio and video to compensate for drift. It currently does a simple stop, pause, play to accomplish this. Setting the value to 0 disables this feature.

Supported RPCs

  • Play, PlayIndex, Stop, Pause, Next, Previous, Shuffle, Clear, AddURL are the same as VRC_SyncVideoPlayer.
  • FastForwardSeconds / RewindSeconds - a float value indicates how much time to skip forward/backward
  • Resync attempts to fix audio desync by pausing then starting video. It should be called locally.
  • SetSyncType changes the current video's sync type, this is only useful for server-based redirected videos as the type is normally indicated in the play list entry. This should always be sent to Owner and this setting will update automatically on remotes.
  • SetSyncMinutes changes the update rate of "auto-resync". Set it to zero to disable. This should always be sent to Owner and this setting will update automatically on remotes.

Supporting Components

Starter Guide

This is a simple guide meant to help get a working stream player into a world. There are a lot of options that you can change that are not mentioned in this guide, this is just a starting point.

  1. Create an empty game object, we'll call it StreamParent. Add the VRC_SyncVideoStream component to it.
  2. Configure the VRC_SyncVideoStream component. In this example we'll be playing a YouTube stream.
    • Video Search Root: youtube.com
    • Auto Start: Your preference, but for this example it will be on
      In the "Videos" section, only use one "Url" entry.
    • URL: Paste the URL of the stream you want to watch
    • Playback Speed: 1
    • Sync Type: Live Stream
    • Sync Minutes: 0
  3. Create a new plane and make it a child of StreamParent. You'll probably want the size of the plane to be in 16:9 ratio. (The easiest way to do this to size the plane as 16m x 9m, then use the Unity scale handles to proportionally scale it down) We'll be naming this object StreamScreen. Position this mesh where you'd like to have it in your world, and add the VRC_VideoScreen component to it.
  4. Configure the VRC_VideoScreen component. In this example, all we have to do is change the target of "Video Stream" to our StreamParent object.
  5. Make a new material, and apply it to the mesh we just created. Set the shader of that material to Video/EmissiveGamma. In the shader settings, check the "Apply Gamma" box.
  6. Create a new empty game object and position it where you'd like the stream audio to come from. We'll name it StreamSpeaker and make it a child of the StreamParent object. Add the VRC_VideoSpeaker component to it.
  7. Configure StreamSpeaker. An AudioSource component will appear in the object, there are lots of settings here but I'd just recommend changing Doppler Level to 0. For the VRC_VideoSpeaker settings, set the target of "Video Stream" to StreamParent and make sure Channel Type is set to StereoMix.

After that's all done, either test or publish a new build of your world and load into it. The stream you specified in the StreamParent object will begin playing, both video and audio.

Credit to Noe#5687 for assisting with the guide test process.

VRC_SyncVideoStream


Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.