Introduction
OBS Studio is the free, open-source essential for streaming and video recording in 2026. Used by millions of streamers on Twitch, YouTube, or Kick, it lets you mix sources (webcam, screen capture, overlays) into custom scenes. Why is it essential? It handles hardware encoding (NVENC, Quick Sync), advanced filters, and plugins at no cost. This beginner tutorial guides you step by step: from installation to your first live stream. Imagine overlaying your face on gameplay, adding donor alerts, and streaming 1080p60 lag-free. In 15 minutes, you'll have a pro config. We start with the basics UI, then importable JSON configs to speed things up. At the end, you'll bookmark this guide for future setups.
Prerequisites
- Computer with Windows 10+, macOS Ventura+, or Linux Ubuntu 22.04+ (NVIDIA/AMD/Intel GPU recommended for encoding).
- Webcam and mic (optional, test with internal captures).
- Twitch/YouTube account to test streaming.
- 8 GB RAM minimum, 10 Mbps upload connection.
- Download OBS from obsproject.com.
Installation via terminal (Linux/macOS)
#!/bin/bash
# Linux (Ubuntu/Debian)
sudo apt update
sudo apt install obs-studio ffmpeg
# Or via Flatpak (recommended for isolation)
flatpak install flathub com.obsproject.Studio
flatpak run com.obsproject.Studio
# macOS (via Homebrew)
brew install --cask obsThis script installs OBS via native package managers. On Linux, Flatpak avoids library conflicts; on macOS, Homebrew simplifies. Run it in the terminal for a clean install without manual downloads.
First Use and Interface
Launch OBS: The Auto-Configuration Wizard appears. Choose Optimize for streaming, select Twitch/YouTube, bitrate 6000 Kbps (adjust for your connection). Click Apply. The interface opens:
- Scenes (bottom left): your layouts (e.g., Game + Facecam).
- Sources: add captures (+ > Display, Webcam).
- Audio Mixer: mic/game levels.
- Controls: Start recording/stream.
Resize the central preview. Test with Start Recording (File > Record).
Basic Profile (export/import JSON)
{
"current_profile": "MonPremierProfil",
"profiles": {
"MonPremierProfil": {
"video": {
"base_width": 1920,
"base_height": 1080,
"output_width": 1920,
"output_height": 1080,
"fps": 60
},
"output": {
"mode": "Advanced",
"encoders": {
"NVENC": {
"bitrate": 6000
}
}
}
}
}
}This JSON defines a 1080p60 profile with NVENC at 6000 Kbps. Import via Profile > Import (save to %APPDATA%/obs-studio/profiles). It optimizes for smooth streaming, avoiding slow defaults.
Create Your First Scene
Click + in Scenes > New Scene (name: "Stream Principal"). Add sources:
- Display (game screen capture).
- Video Capture Device (webcam).
- Text (GDI+) for overlay (e.g., "Live now!").
Layout: Resize webcam as PIP (top-right corner), game as background. Add Chroma Key filter on webcam (green → transparent). Right-click source > Filters > + > Color Key > Select green (0.4 similarity, 100% smoothness).
Scene Config JSON (importable)
{
"versioned_id": "scene",
"name": "Stream Principal",
"sources": [
{
"name": "Jeu",
"type": "monitor_capture",
"settings": {
"window_index": 0
}
},
{
"name": "Webcam",
"type": "v4l2_source",
"settings": {
"device": "Integrated Webcam"
},
"filters": [
{
"type": "chroma_key_filter",
"settings": {
"keyColor": "0x00FF00",
"similarity": 0.4,
"smoothness": 100
}
}
]
}
]
}This JSON recreates a scene with screen capture and chroma-keyed webcam. Export via Scene > Export, edit, reimport. Perfect for duplicating multi-PC setups, avoiding repetitive clicks.
Streaming Output Settings (JSON)
{
"Output": {
"Mode": "Advanced",
"Streaming": {
"Type": "custom",
"url": "rtmp://live.twitch.tv/app/",
"key": "VOTRE_CLE_STREAM",
"encoder": "nvenc",
"rate_control": "CBR",
"bitrate": 6000,
"keyint": 2
},
"Recording": {
"Type": "standard",
"path": "./recordings/",
"format": "mp4"
}
}
}Configures custom Twitch RTMP stream with NVENC CBR 6000kbps. Replace VOTRE_CLE_STREAM (from Twitch dashboard). Import into basic.ini or via Advanced Output UI. Avoids lag by prioritizing stable bitrate.
Hotkeys and Testing
Tools > Hotkeys:
- Start Streaming: F5
- Mute: F2 (mic)
Test: Controls > Start Streaming. Check preview, audio mixer (green peaks). On Twitch, status "Live". Stop after 30s. Lag issue? Drop to 4500kbps.
Hotkeys (basic.ini extract)
[Hotkeys]
StartStreaming=295
StopStreaming=296
StartRecording=297
StopRecording=298
Mute=49
[General]
HotkeyMute=1
HotkeyPushToMute=0Add these lines to %APPDATA%/obs-studio/global.ini. F5=Start stream (code 295), F2=Mute (49). Reload OBS. Customize controls for gaming without mouse.
Simple Lua Script (sound alert)
-- Simple Lua script for OBS: Plays sound on source added
function script_description()
return "Plays an alert sound when a source is added"
end
function on_source_create(event)
if event["source"] then
obs.obs_play_sound("default", "beep.wav", 1.0, "default")
end
end
obs.obs_frontend_add_event_callback(function(event)
if event == "source_create" then
on_source_create(event)
end
end)This Lua script plays a beep on new source added (via Tools > Scripts). Copy to scripts/obs-plugins. Great for beginner audio feedback, extensible to Streamlabs alerts.
Best Practices
- Upload Bitrate: Test speedtest.net, max 80% capacity (e.g., 8Mbps → 6000).
- Lightweight Sources: Use NVENC/AV1, close unused apps.
- Backup Configs: Export scenes/profiles JSON weekly.
- Audio Monitoring: Enable Advanced > Monitoring for headset without echo.
- Essential Plugins: StreamFX for filters, Move for transitions.
Common Errors to Avoid
- CPU-Only Encoding: Causes lag; switch to NVENC (Settings > Output > Advanced).
- Poor Chroma: Blurry webcam → Adjust similarity 0.3-0.5, even lighting.
- Bitrate Too High: Disconnects; start at 4500, ramp up.
- No Pre-Live Test: Record 5min before first stream.
Next Steps
- Official Docs: OBS Project Wiki.
- Plugins: obsproject.com/forum.
- Advanced Streaming: Multi-audio tracks for post-production.