OBS Studio is the most widely-used free broadcasting software — this guide covers configuring it to stream to your own self-hosted RTMP server rather than a third-party platform.
Prerequisites
- OBS Studio installed on your streaming computer
- A working RTMP server (see How to Set Up Nginx RTMP for Live Video Streaming)
Step 1 — Open OBS Studio Settings
Navigate to Settings → Stream.
Step 2 — Select "Custom" as the Streaming Service
Rather than choosing a pre-configured platform (Twitch, YouTube), select Custom... to specify your own server.
Step 3 — Enter Your Server URL
Server: rtmp://YOUR_SERVER_IP/live
Or, if using a domain: rtmp://stream.yourdomain.com/live
Step 4 — Set a Stream Key
Stream Key: any-identifier-you-choose
This becomes part of the stream's identification on your server — if you configured publish restrictions in your RTMP server config, ensure this matches what's expected.
Step 5 — Configure Output Settings
Under Settings → Output, set your desired bitrate based on your upload bandwidth and target stream quality — higher bitrates need more upload bandwidth from your streaming location and more processing capacity on the receiving server.
Recommended Starting Bitrates
| Resolution | Suggested Bitrate |
|---|---|
| 720p30 | 2,500-4,000 kbps |
| 1080p30 | 4,500-6,000 kbps |
| 1080p60 | 6,000-9,000 kbps |
Step 6 — Configure Encoder Settings
Choose hardware encoding (NVENC, QuickSync) if your streaming computer supports it, for lower CPU usage during broadcast; software (x264) encoding offers more quality control at higher CPU cost.
Step 7 — Start Streaming
Click Start Streaming in OBS — verify on your server (check RTMP server logs, or view the HLS output if configured) that the stream is actually being received.
Testing Before a Real Broadcast
Always do a private test stream before any important live event — verify video/audio quality, check for dropped frames (shown in OBS's stats panel), and confirm playback works correctly on the viewer-facing side.
Monitoring Stream Health During Broadcast
OBS's built-in stats (View → Stats) show dropped frames and encoding lag — frequent dropped frames indicate either insufficient upload bandwidth or the encoder struggling to keep up with the configured settings.
Adding an Overlay or Scene Transitions
OBS supports scenes, overlays, and transitions independent of the streaming destination — configure these as you would for any platform; they work identically when streaming to a self-hosted server.
Common Errors
"Failed to connect to server" — verify the RTMP server is running and the firewall allows port 1935; test connectivity from the streaming machine directly if possible.
Stream connects but stutters — usually an upload bandwidth issue on the streaming side, or the RTMP server being under-resourced for the configured bitrate/transcoding load.
Continue Reading
- How to Set Up Nginx RTMP for Live Video Streaming
- How to Set Up HLS Streaming with Nginx
- VPS Requirements for Media Streaming Servers
Browse more articles in Media & Streaming Servers.