Streaming Into VRChat With OBS, Topaz Chat, And Twitch

Use this guide when you want a live video feed on a screen inside a VRChat world. The practical setup is usually OBS sending video to a streaming service, then a VRChat video player loading a URL that viewers can play in-world.

For low-latency PC viewing, Topaz Chat is the common path. For Quest and Android users, plan a separate fallback such as a Twitch channel URL, a service that gives you a documented Quest/mobile playback URL, or a tested Topaz Player setup for the exact player version in your world.

Recommended Setup

Use Topaz Chat for PC VRChat viewers and a Twitch channel link as the Quest-friendly fallback.

  1. In OBS, stream to rtmp://topaz.chat/live with the stream key shown in the world or chosen for your world.
  2. For PC Topaz playback, use rtspt://topaz.chat/live/YOUR_STREAM_KEY.
  3. For Quest, test the exact player version: current Topaz Player docs say to use rtsp://, while Topaz's GitHub README still warns that Quest does not work.
VRChat note

VRChat's official video player docs separate AVPro and Unity Video Player behavior. Use AVPro for live streams such as Twitch. Use direct .mp4 or .webm links when you are serving normal video files instead of a live stream.

What You Need

  • A VRChat world with a video player that uses VRCAVProVideoPlayer for livestream playback.
  • OBS Studio on the streaming PC.
  • A Topaz Chat stream key, meaning the public stream identifier used by the world/player and by OBS.
  • A Twitch channel if you want a simple HTTPS fallback for Quest users.
  • Optional: a VRCDN account if you need a dedicated VR streaming service with separate PC and Quest playback links.
  • A real PC VRChat test and a real Quest or Android VRChat test before the event.

How The Stream Reaches VRChat

Do not think of OBS as the thing VRChat connects to directly. OBS usually pushes a stream to a service, and VRChat loads the playback URL from that service.

Step Topaz Chat Example Twitch Example Why It Matters
Encoder OBS OBS Captures the screen, camera, browser source, or game feed.
Ingest URL rtmp://topaz.chat/live Twitch's ingest service through OBS This is where OBS sends the stream.
Stream key The Topaz stream key shown in the world or chosen for the world Your Twitch stream key or connected account Identifies the stream at the service.
VRChat playback URL rtspt://topaz.chat/live/YOUR_STREAM_KEY https://www.twitch.tv/YOUR_CHANNEL This is what the in-world video player loads.

If a link works in a browser but not in VRChat, check whether it is a direct playback URL that the VRChat video player can resolve. Browser pages, short links, redirects, and service dashboards are not always usable video-player URLs.

Pick The Right Playback Link

Audience OBS Destination VRChat Playback URL Notes
PC VRChat viewers, low latency rtmp://topaz.chat/live rtspt://topaz.chat/live/YOUR_STREAM_KEY Best fit when the world and audience are PC-only.
Quest or Android viewers, simple fallback Twitch ingest through OBS https://www.twitch.tv/YOUR_CHANNEL Use a tested fallback because Topaz Quest guidance differs between Topaz sources.
Quest or Android viewers, TopazChat Player 3.0/3.3.1 rtmp://topaz.chat/live rtsp://topaz.chat/live/YOUR_STREAM_KEY The current Booth listing says Quest worlds should use rtsp://, not rtspt://. Test on Quest before the event.
Mixed PC and Quest audience Topaz plus Twitch Provide both URLs in the world UI or event notes. Test both paths because latency and reliability will differ.
Dedicated VR streaming service VRCDN ingest through OBS Use the service's PC or Quest URL from its control panel. VRCDN documents RTSP for PC and MPEG-TS for Quest/mobile playback.
Self-hosted fallback Your own streaming server HTTPS HLS URL, usually .m3u8 Use only if you can configure HTTPS, MIME types, and bandwidth correctly.

Topaz's OBS ingest is RTMP, but the playback URL used in VRChat is RTSP-style. Topaz's GitHub README documents rtspt://topaz.chat/live/StreamKey for PC setup. The current TopazChat Player Booth page says Quest worlds should use rtsp:// instead of rtspt://. Keep the same stream key in OBS and in the player URL.

OBS Baseline Settings

OBS settings depend on the service you stream to. Start from the service's own guidance, then test in VRChat before the event.

Setting Area Topaz Chat Starting Point Twitch Fallback Starting Point Notes
Stream service Custom Twitch OBS supports built-in services and custom streaming servers.
Video bitrate 2000 kbps or lower Follow Twitch's current broadcasting guidelines Topaz documents a 2 Mbps video cap. Twitch publishes separate quality targets.
Audio bitrate Keep within the service limit Follow Twitch's current broadcasting guidelines Topaz documents 320 kbps stereo audio.
Resolution/FPS Start modest, then test Follow Twitch's current broadcasting guidelines OBS notes that 60 FPS costs more system resources than 30 FPS.
Test method Start OBS, then load the VRChat URL Start Twitch, then load the channel URL Confirm the service sees your stream before troubleshooting the world.

OBS can use scenes and sources for game capture, display capture, browser sources, capture cards, images, and cameras. Keep the event scene simple enough that the streaming PC can run OBS, VRChat, and any source app without dropped frames.

OBS To Topaz Chat

  1. Open OBS.
  2. Add your video source, such as game capture, display capture, a browser source, a capture card, or a camera.
  3. Check audio in the OBS mixer before you go live.
  4. Open Settings > Output.
  5. Set video bitrate to 2000 kbps or lower for Topaz Chat video.
  6. Open Settings > Stream.
  7. Set service to Custom.
  8. Set server to rtmp://topaz.chat/live.
  9. Set stream key to the key shown in the world, or to the key chosen for your world, for example my-event-room.
  10. Start streaming in OBS.
  11. In VRChat, load rtspt://topaz.chat/live/my-event-room in the player.
  12. Use the player's sync or global sync control after the stream is already live.

If you are visiting an existing world, use the stream key displayed by that world's Topaz player or ask the world owner. If you are building the world, choose a unique stream key and display it for event staff. Do not use your Twitch stream key as a Topaz stream key.

Topaz's stream key is part of the playback URL, so treat it as a public routing label for that stream rather than a private account credential. A generic key such as test, music, or stream is more likely to collide with somebody else's stream.

Topaz Playback URL Pattern

Use this pattern in the VRChat player:

rtspt://topaz.chat/live/YOUR_STREAM_KEY

Replace only YOUR_STREAM_KEY. For example, if OBS is streaming with the key my-event-room, the PC Topaz playback URL is:

rtspt://topaz.chat/live/my-event-room

Do not paste rtmp://topaz.chat/live into the VRChat player. That is the OBS ingest server, not the viewer playback URL.

For Quest or Android testing with TopazChat Player 3.0/3.3.1, the Booth listing says to use this pattern instead:

rtsp://topaz.chat/live/YOUR_STREAM_KEY

Because Topaz's own GitHub README still says Quest is not supported, do not publish a Quest event on Topaz without testing the exact world prefab/player version on a Quest headset.

Topaz Source Check

Topaz's own sources do not say exactly the same thing, so check the player version in the world before relying on one URL pattern:

  • The TopazChat GitHub README says OBS uses rtmp://topaz.chat/live and a stream key listed in the world. It also documents rtspt://topaz.chat/live/StreamKey for the player source path and says the current viewing path is Windows VRChat only.
  • The TopazChat Player Booth listing for TopazChat Player 3.0/3.3.1 says PC and Quest are supported. It says the default StreamURL is rtspt://topaz.chat/live/StreamKey, that StreamKey should be replaced with an arbitrary alphanumeric stream key, and that Quest worlds should use rtsp:// instead of rtspt://.
  • Because those statements conflict, use rtspt:// as the PC Topaz pattern, test rtsp:// only with the current TopazChat Player on Quest, and keep Twitch or VRCDN ready as a fallback.

OBS To Twitch For Quest Users

If you use Twitch as the Quest fallback, give Quest users the normal HTTPS Twitch channel link. The simplest public fallback is usually:

https://www.twitch.tv/YOUR_CHANNEL

In OBS:

  1. Open Settings > Stream.
  2. Choose Twitch and connect your account, or use a Twitch stream key.
  3. Follow Twitch's current broadcasting guidance for bitrate, resolution, and framerate.
  4. Start streaming.
  5. Paste the Twitch channel URL into the VRChat video player, or place it in your world UI as the Quest fallback.

Keep the Topaz and Twitch paths separate in your event notes:

  • PC Topaz link: rtspt://topaz.chat/live/YOUR_STREAM_KEY
  • Quest Topaz test link: rtsp://topaz.chat/live/YOUR_STREAM_KEY
  • Quest Twitch fallback link: https://www.twitch.tv/YOUR_CHANNEL

Twitch will usually add more delay than a low-latency Topaz setup, but it is a safer fallback when you cannot verify the Topaz player version or Quest playback behavior before the event.

Optional VRCDN Quest Alternative

If you need a VR-focused streaming service instead of a public Twitch fallback, VRCDN is worth testing. VRChat's allowlist includes VRCDN domains, and VRCDN's own setup guide tells VRChat users to copy different playback URLs for different platforms:

Platform VRCDN Link Type Use Case
PC-only VRChat instances RTSP/RTSP-style link from the VRCDN panel Lowest-latency PC route according to VRCDN's guide.
Standalone VR such as Quest MPEG-TS link from the VRCDN panel VRCDN documents this as the standalone/mobile path.
Mixed instances without dual URL support MPEG-TS link from the VRCDN panel VRCDN documents this as the broader compatibility option.

Treat this as a service-specific workflow. Use the exact ingest server, stream key, and playback links from the VRCDN control panel, then test inside VRChat on both PC and Quest.

Supported Video Formats And Player Choice

VRChat worlds can use VRCAVProVideoPlayer or VRCUnityVideoPlayer. The player choice matters:

Need Use Why
Live streams such as Twitch AVPro VRChat's docs say AVPro supports live streams on multiple platforms.
Direct hosted video files Unity Video Player or AVPro VRChat's docs call out direct .mp4 and .webm links as supported file-style URLs.
Editor Play Mode testing Unity Video Player VRChat's docs note that AVPro needs Build & Test for real playback checks.
Event screens in published worlds AVPro It is the practical choice for live or service-hosted URLs.

For normal files, use these encoding choices first:

Format Best Use Notes
.mp4 with H.264 video and AAC audio General PC and Quest compatibility This is the safest default for broad playback. Enable fast start or web optimized export for hosted files.
.webm with VP8 video and Vorbis audio Cross-platform fallback files Useful in some Unity workflows, but can cost more CPU than hardware H.264.
HLS .m3u8 over HTTPS Custom live fallback for Android/Quest Test in VRChat on the target devices before relying on it for an event.

Avoid making HEVC/H.265, VP9, AV1, MKV, or unusual audio codecs your only event source. Some players and devices may handle them, but they are worse defaults for a public VRChat event than H.264/AAC in MP4 or a tested livestream service.

World Builder Setup Notes

If you are building the world, give event staff a video player setup that exposes the right URL fields and sync controls.

  • Use an AVPro-backed player for live stream URLs.
  • Label PC and Quest inputs separately if the player supports more than one URL.
  • If the player only accepts one URL, decide whether the event is PC-only or mixed-platform before publishing.
  • Keep the stream screen, audio source, and sync controls near the staff area or in a clear booth.
  • Avoid loading several player URLs at once. VRChat rate-limits new video URL handling, and late joiners can trigger multiple loads if a world has several active players.
  • For custom Udon, store the current stream URL as state for late joiners rather than relying only on one-time events.
  • Give staff a resync button and a simple way to reload the active URL.

Related streaming tools

  • Open Broadcaster Software - the core streaming/recording tool behind most VRChat live-video workflows.
  • VRchat HLS Guide - community guide for alternate VRChat streaming workflows.
  • SUVA - useful when the same creator pipeline also needs vtuber-style avatar output for Twitch or broadcast overlays.

VRChat And Quest Compatibility Notes

  • VRChat on Android will not play video from a host that is not using HTTPS.
  • If a host is not on VRChat's video player allowlist, viewers may need Allow Untrusted URLs enabled.
  • VRChat's current allowlist includes Topaz Chat and Twitch domains, but short links and redirected URLs can still fail if the final media URL is not on an allowed domain.
  • Topaz sources conflict on Quest: the GitHub README says current viewing is Windows VRChat only and Quest does not work, while the current TopazChat Player Booth listing says PC/Quest are both supported and tells Quest worlds to use rtsp://.
  • Build and test the world in VRChat itself. The Unity editor is not enough for AVPro livestream validation.
  • For Udon URLs, VRChat's external URL rules depend on the relevant allowlist unless the user allows untrusted URLs.

Best Practices

  • Keep one primary event screen and one fallback path instead of several competing players.
  • Start OBS and confirm the service is receiving video before asking people to sync the in-world player.
  • For Topaz Chat, stay at or below the documented 2000 kbps video limit.
  • Avoid x264 zerolatency tuning and NVENC low latency presets for Topaz Chat unless you have specifically tested them with the exact player setup.
  • If your Udon player changes URLs, respect VRChat's URL rate limit and avoid firing several video loads at once.
  • Put the PC and Quest links somewhere event staff can copy exactly.
  • Test late joiners, player ownership, global sync, and resync controls before the public instance opens.
  • Use content you have permission to stream, especially for public events and Twitch broadcasts.

Event-Day Test Checklist

Run this once before the public instance opens:

Check PC Viewer Quest Viewer
OBS source visible Confirm the correct scene is live. Confirm the same source is going to the Quest fallback service.
Audio present Check music, voice, and capture-card audio separately. Check the fallback link from the Quest headset, not just a desktop browser.
URL copied correctly Paste the Topaz PC playback URL exactly. Paste the tested Topaz Quest URL, Twitch URL, VRCDN Quest URL, or HTTPS fallback URL exactly.
Sync controls Test global sync and local resync. Test reload/resync after the fallback is live.
Late joiner Join after the stream starts. Join after the stream starts.
Staff recovery Stop and restart OBS once during rehearsal. Confirm staff know which fallback link to reload.

Keep a plain-text run sheet for staff:

PC low-latency link:
rtspt://topaz.chat/live/YOUR_STREAM_KEY

Quest Topaz test link:
rtsp://topaz.chat/live/YOUR_STREAM_KEY

Quest Twitch fallback link:
https://www.twitch.tv/YOUR_CHANNEL

OBS Topaz ingest:
rtmp://topaz.chat/live

Event staff action:
Start OBS first, confirm the service preview, then press Global Sync in the world.

Troubleshooting

The Topaz stream works for PC users but not Quest users.

First check the player version and URL scheme. TopazChat Player 3.0/3.3.1's Booth listing says Quest worlds should use rtsp://, but the GitHub README still says Quest does not work. If Quest testing is not reliable, use the Twitch or VRCDN Quest fallback instead.

The video player shows nothing after I paste the Topaz link.

Start the OBS stream first, confirm the stream key displayed in the world matches the playback URL, then use the player's sync or resync control. For Udon players, also check whether the user loading the URL has untrusted URLs enabled when needed.

I pasted the RTMP URL into VRChat and it did not play.

Use the playback URL, not the OBS ingest URL. For Topaz Chat, OBS sends to rtmp://topaz.chat/live, while VRChat loads rtspt://topaz.chat/live/YOUR_STREAM_KEY.

The stream is delayed or keeps falling behind.

Lower bitrate, reduce resolution or framerate, and check viewer framerate in the world. Topaz notes that unstable client performance can damage playback quality or cause delay buildup.

Only some players can load the URL.

Check the domain against VRChat's video player allowlist, avoid short links, and test whether the affected players have untrusted URLs disabled. On Android or Quest, also confirm the host uses HTTPS.

A direct video file takes a long time to start.

For MP4 files, export with fast start or web optimized enabled so the video can begin streaming before the whole file downloads.

Official References

Related Pages