From OBS to VDO.Ninja using WHIP
Publishing from OBS Studio to VDO.Ninja using WHIP
OBS Studio v30 now has WHIP output support, which means that you can stream directly to VDO.Ninja without a browser or other software. While there are a few serious limitations with OBS's current WHIP implementation, when used with VDO.Ninja it still offers a great way to stream from one computer to another, on the same LAN, while minimizing CPU overhead and latency.
Prerequisites
OBS Studio (version 30 or later)
A stable internet connection
Access to VDO.Ninja
Steps
Prepare VDO.Ninja
Make up a unique stream token (e.g.,
STREAMTOKEN123
)Create your VDO.Ninja link:
https://vdo.ninja/?hidemenu&whip=STREAMTOKEN123
Open this link in a web browser on the receiving end
Configure OBS Studio
Open OBS Studio
Go to Settings > Stream
Select "WHIP" as the service
For the server, enter:
https://whip.vdo.ninja
For the Stream Key, enter your unique stream token (STREAMTOKEN123)
Choose Encoding Settings
In OBS, go to Settings > Output
Select your preferred encoder:
Software (x264) for H.264
NVIDIA NVENC for H.264 (if you have an NVIDIA GPU)
AMD AMF for H.264 (if you have an AMD GPU)
AV1 (if supported by your hardware and OBS version)
Set your desired bitrate (e.g., 2500-6000 Kbps for 1080p)
Go Live
In OBS, click "Start Streaming"
The stream should appear automatically in the opened VDO.Ninja window
The stream token you give to OBS is the stream ID you specified in VDO.Ninja.
Encoder options that can offer smooth playback
Some H264 settings that have reported offered good results are the following:
Rate Control: CRF
CRF: 23
Keyframe Interval: 1s
Preset: Veryfast
Profile: High
Tune: Fastdecode (required for WebRTC playback)
x264 Options: bframes=0 (required for WebRTC playback)
In some cases, adding &buffer=2500
to the VDO.Ninja view link can further help reduce any lost of skipped frames, but at the cost of increased latency.
Additional Notes
Codec Choice:
H.264 is widely supported and offers good quality/compression balance
AV1 provides better compression but requires more processing power and may not be supported on all devices
Network Considerations:
OBS Studio's WHIP implementation doesn't support STUN (NAT traversal)
The receiving computer must be on the same LAN or accessible via a public IP without firewall restrictions
Troubleshooting:
If the stream doesn't appear, check your firewall settings
Ensure both OBS and VDO.Ninja are using the same stream token
Verify that your internet connection is stable and has sufficient upload bandwidth
Quality vs. Performance:
Lower resolutions and bitrates will reduce latency and improve stability
Higher resolutions and bitrates will increase quality but may introduce more delay
Remember to test your setup before any important broadcasts to ensure everything works smoothly.
Streaming WHIP over the Internet or to more than one viewer
I offer https://Meshcast.io, for free, which supports WHIP input and can broadcast to dozens of viewers online. There's also MediaMTX, which is a self-hosted broadcasting server option that VDO.Ninja supports. Deeper integration with MediaMTX is being added to VDO.Ninja all the time.
In the future, OBS should be able to support 1 to 1 over the Internet, despite firewalls, with VDO.Ninja, in a peer to peer fashion. This could be added at any time, so we'll wait and see; for now to stream over the Internet peer to peer, you need to enable port forwarding / DMZ / tunneling to have it work.
Alternative browser-free option
If looking for alternatives to publishing into VDO.Ninja, consider checking out Raspberry.Ninja also, which supports a broad range of encoders, including AV1-AOM, Intel QuickSync, Raspberry Pis, Nvidia Jetson, and many other hardware and software options. Playback is smooth, with support for multiple viewers. Runs on most systems, including Linux and Windows for Linux Subsystem (WSL).
Related WHIP videos:
Last updated