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.
Use Topaz Chat for PC VRChat viewers and a Twitch channel link as the Quest-friendly fallback.
- In OBS, stream to
rtmp://topaz.chat/livewith the stream key shown in the world or chosen for your world. - For PC Topaz playback, use
rtspt://topaz.chat/live/YOUR_STREAM_KEY. - 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'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
VRCAVProVideoPlayerfor 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
- Open OBS.
- Add your video source, such as game capture, display capture, a browser source, a capture card, or a camera.
- Check audio in the OBS mixer before you go live.
- Open Settings > Output.
- Set video bitrate to 2000 kbps or lower for Topaz Chat video.
- Open Settings > Stream.
- Set service to Custom.
- Set server to
rtmp://topaz.chat/live. - Set stream key to the key shown in the world, or to the key chosen for your world, for example
my-event-room. - Start streaming in OBS.
- In VRChat, load
rtspt://topaz.chat/live/my-event-roomin the player. - 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/liveand a stream key listed in the world. It also documentsrtspt://topaz.chat/live/StreamKeyfor 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, thatStreamKeyshould be replaced with an arbitrary alphanumeric stream key, and that Quest worlds should usertsp://instead ofrtspt://. - Because those statements conflict, use
rtspt://as the PC Topaz pattern, testrtsp://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:
- Open Settings > Stream.
- Choose Twitch and connect your account, or use a Twitch stream key.
- Follow Twitch's current broadcasting guidance for bitrate, resolution, and framerate.
- Start streaming.
- 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
- VRChat Video Players
- VRChat Video Player Allowlist
- VRChat External URLs
- TopazChat GitHub README
- TopazChat Player Booth Listing
- OBS Quick Start Guide
- OBS Studio Overview Guide
- Twitch Stream Key FAQ
- Twitch Broadcasting Guidelines
- VRCDN Getting Started
- Unity Video File Compatibility
- AVPro Video Supported Media