Overview
Video streaming is the foundation of VRSL’s DMX system. This guide covers how to configure your streaming setup for optimal DMX data transmission and live event performance.While streaming is required for DMX control, AudioLink-only setups do not need external video streaming.
Understanding VRSL Streaming
VRSL encodes DMX data as colored pixels in a video grid. This video is then streamed to VRChat, where VRSL’s shaders decode the pixels back into lighting data.Why Video Streaming?
Advantages:- Universal Sync: All players see the same data
- Works Today: No waiting for VRChat features
- Flexible: Any video player can work
- Live Control: Real-time DMX during performances
- Latency (typically 2-8 seconds)
- Requires bandwidth
- Compression can affect data quality
- Requires external streaming setup
Streaming Architecture
Prerequisites
Hardware Requirements
Minimum:- CPU: Intel i5 8th gen / AMD Ryzen 5 2600 or better
- GPU: NVIDIA GTX 1060 / AMD RX 580 or better
- RAM: 16GB
- Upload Speed: 10 Mbps minimum
- Extra Monitor: 1920x1080 resolution
- CPU: Intel i7 10th gen / AMD Ryzen 7 3700X or better
- GPU: NVIDIA RTX 2060 / AMD RX 5700 XT or better
- RAM: 32GB
- Upload Speed: 25+ Mbps
- Dedicated streaming PC (for large events)
- Wired network connection
Software Requirements
Streaming Software (choose one):- OBS Studio (recommended, free)
- Streamlabs OBS
- XSplit
- vMix (professional)
- Artnet Grid Node (for DMX control)
- Local streaming server (for reduced latency)
- Network monitoring tools
OBS Studio Configuration
Installation
- Download OBS Studio from obsproject.com
- Install with default settings
- Launch OBS and complete first-time setup wizard
- Skip the auto-configuration wizard (we’ll configure manually)
Video Settings
- Navigate to Settings > Video
- Set to
1920x1080 - This is your working resolution
- Set to
1920x1080 - Must match base resolution for DMX (no scaling)
- Set to
Lanczos(highest quality) - Only matters if you’re scaling (which you shouldn’t for DMX)
- Set to
30for standard streaming - Can use
60for smoother motion (requires more bandwidth)
Output Settings
- Navigate to Settings > Output
- Set Output Mode to
Advanced
NVIDIA NVENC H.264(if you have NVIDIA GPU) - RecommendedQuickSync H.264(if you have Intel integrated graphics)x264(software encoding, CPU intensive)
- Set to
CBR(Constant Bitrate) - Ensures consistent quality for DMX data
- Minimum:
6000 Kbps - Recommended:
8000-12000 Kbps - High Quality:
15000-20000 Kbps - Balance based on your upload speed
- Set to
2seconds - Lower values reduce latency
- Don’t go below 1
- NVENC:
QualityorHigh Quality - QuickSync:
Quality - x264:
veryfastorfaster
- Set to
high
- Disable both
- These can interfere with DMX data accuracy
Advanced Settings
- Navigate to Settings > Advanced
- Color Format:
NV12 - Color Space:
709 - Color Range:
Partial
- Start with
0 - Can add delay if needed for sync
- Enable Automatically reconnect
- Retry Delay:
10seconds - Maximum Retries:
20
Scene Setup for DMX
Windows 10 (1903 and up)Streaming Destinations
Local Streaming Server (Lowest Latency)
Run your own RTMP server for minimum latency: Using nginx-rtmp:
Advantages:
- Lowest possible latency (0.5-2 seconds)
- No external service dependency
- No bandwidth costs
- Full control
- Requires server setup
- Must manage port forwarding
- Limited to your upload speed
YouTube Live (Balanced)
Good balance of latency and reliability:- Go to YouTube Studio
- Click Create > Go Live
- Choose Streaming Software
- Configure:
- Latency: Ultra Low (1-2 seconds)
- Visibility: Unlisted (for DMX streams)
- Copy Stream URL and Stream Key
- In OBS:
- Service:
YouTube - RTMPS - Server: Primary YouTube ingest server
- Stream Key: [paste your key]
- Service:
- Ultra-low latency mode available
- Reliable infrastructure
- Free
- Can serve multiple worlds simultaneously
- Still 2-5 second latency
- Requires YouTube account
- Subject to YouTube terms
Twitch (Alternative)
Similar to YouTube:- Go to Twitch Dashboard
- Enable Low Latency Mode
- Copy Stream Key
- In OBS:
- Service:
Twitch - Server: Closest server
- Stream Key: [paste your key]
- Service:
- Low latency mode
- Gaming-focused platform
- Reliable
- 3-6 second latency
- Less control than local server
- Requires Twitch account
Video Player Setup in Unity
Once streaming, configure Unity to receive the stream:Choose Video Player System
VRSL supports multiple video player systems: TekOSC (Recommended):- Uses OSC instead of traditional video
- Lower latency
- Better reliability
- Included with VRSL
- Most common in VRChat
- Good compatibility
- Requires separate package
- Feature-rich
- Good UI
- Requires separate package
- High performance
- Modern features
- Requires separate package
Configure Video Player
- Spawn your chosen DMX reader from VRSL Control Panel
- Select the video player component
- Set Default URL to your stream:
- YouTube:
https://youtu.be/[VIDEO_ID] - Twitch:
https://twitch.tv/[USERNAME] - RTMP:
rtmp://your-server/live/stream
- YouTube:
- Configure playback:
- Auto Play: Enabled
- Loop: Enabled (for testing)
- Volume: 0 (DMX data is silent)
- Set video resolution to 1920x1080
Optimizing Streaming Quality
Reduce Compression Artifacts
In OBS:- Use highest bitrate your connection allows
- Use hardware encoding (NVENC/QuickSync) over x264
- Use “Quality” preset, not “Performance”
- Disable look-ahead and psycho visual tuning
- Keep keyframe interval at 2
- Enable interpolation in CRT materials (compensates for artifacts)
- Use maximum smoothing (0) on fixtures
- Enable signal detection system for error recovery
Reduce Latency
Streaming:- Use local RTMP server if possible
- Use hardware encoding (lower processing delay)
- Use wired network connection
- Reduce keyframe interval (but not below 1)
- Choose geographically close streaming server
- Position video screen near spawn point
- Use efficient video player (TekOSC recommended)
- Pre-load/pre-buffer when possible
Network Optimization
Upload:- Reserve bandwidth for stream (QoS on router)
- Use wired connection, not WiFi
- Close bandwidth-heavy applications
- Test your upload speed before events
- Watch dropped frames in OBS
- Monitor bitrate stability
- Check network usage
- Have fallback plan for connection issues
Testing Your Stream
- Dropped Frames: Should be 0%
- CPU Usage: Should be under 70%
- Render Lag: Should be 0
Common Issues
High Latency
Causes:- Distance to streaming server
- Buffering in video player
- Network congestion
- Slow encoding preset
- Use local RTMP server
- Use faster encoding preset
- Reduce keyframe interval
- Use wired connection
- Choose closer server
Dropped Frames
Causes:- Insufficient upload bandwidth
- CPU/GPU overload
- Network instability
- Reduce bitrate
- Use hardware encoding
- Close other applications
- Check network quality
- Reduce canvas resolution (last resort, may affect DMX)
Compression Artifacts
Causes:- Bitrate too low
- Aggressive encoding preset
- Network packet loss
- Increase bitrate (minimum 6000 kbps)
- Use “Quality” preset
- Enable maximum smoothing in VRSL
- Use hardware encoding
Stream Not Playing in World
Check:- URL is correct and accessible
- Video player is configured properly
- Stream is actually live
- Permissions in VRChat
- Video player has correct permissions in world
Advanced Configuration
Multi-PC Streaming Setup
For large events, separate streaming from DMX control: PC 1 (DMX Control):- Runs lighting software
- Runs Artnet Grid Node
- Outputs to capture card
- Receives capture card input
- Runs OBS for streaming
- Handles network upload
- No performance impact on DMX
- Dedicated resources for streaming
- Can use different network connections
Stream Backup System
Create redundancy for critical events:- Primary Stream: Live DMX via YouTube/Twitch
- Backup Stream: Pre-recorded DMX loop on second URL
- Fallback: AudioLink-only mode
Quality Profiles
Create OBS profiles for different situations: Testing Profile:- Lower bitrate (3000 kbps)
- Faster preset
- Local streaming
- Medium bitrate (6000 kbps)
- Balanced preset
- Public streaming service
- High bitrate (12000+ kbps)
- Quality preset
- Local or reliable service
Best Practices
Reliability:- Use wired connections everywhere possible
- Have backup internet connection
- Use stable, proven software versions
- Document your entire setup
- Train backup operator
- Use hardware encoding (NVENC/QuickSync)
- Keep OBS scenes simple
- Close unnecessary applications
- Monitor system resources
- Use dedicated streaming PC for large events
Next Steps
- Complete your DMX Setup
- Learn Performance Optimization
- Integrate AudioLink as backup
- Create Custom Fixtures