What This Guide Covers
- 01 What You'll Need Before You Start
- 02 Installing and Opening OBS Studio
- 03 Configuring Output Settings for YouTube
- 04 Adding Your Video as a Media Source
- 05 Connecting OBS to Your YouTube Channel
- 06 Going Live — The Final Steps
- 07 Setting Up Looping for Continuous Playback
- 08 Best Settings for Pre-Recorded Video Quality
- 09 Troubleshooting Common OBS Problems
- 10 The Honest Limits of the OBS Approach
- 11 When to Move Beyond OBS
You have a video — a lecture you recorded, a music compilation you edited, a product demo, a film — and you want it to appear as a live broadcast on YouTube rather than a regular uploaded video. Maybe the "LIVE" badge matters to you for visibility. Maybe you want the real-time chat engagement that only lives streams get. Maybe you're building a 24/7 channel and researching how it's done. Whatever the reason, OBS Studio can do this, and this guide shows you exactly how.
OBS (Open Broadcaster Software) is the free, open-source streaming tool used by millions of creators worldwide. Its Media Source feature is the specific component that lets you play a local video file through OBS and push it to YouTube's live stream endpoint — making it appear to viewers exactly as a live broadcast. The mechanics behind it are the same RTMP ingest process used by every professional streaming setup.
This is a complete guide. We'll cover installation, every setting that matters, the exact steps to go live, and the specific places where this approach fails — because understanding the failure modes is just as important as knowing how to get it working. If you're planning to run a stream for a few hours or a specific event, the OBS method works well. If you're thinking about running something 24/7, read the whole guide before committing to this approach.
What You'll Need Before You Start
Before touching OBS, make sure you have these in place. Missing any one of them will stop you at some point in the process.
- A Windows, Mac, or Linux computer. OBS runs on all three. For a stable encoding session, you want at least 8GB RAM, a quad-core processor, and a dedicated GPU helps but isn't required for pre-recorded video streaming. The machine must stay on and running for the entire duration of your stream.
- A stable internet upload connection. For 1080p/30fps streaming, you need a sustained upload speed of at least 6 Mbps — ideally 10+ Mbps with headroom to spare. Test your current upload speed at fast.com or speedtest.net before starting. Wireless connections introduce variability; wired Ethernet is strongly preferred for streaming.
- Your video file. MP4 with H.264 video and AAC audio is the most reliable format for OBS Media Source. MKV, MOV, and AVI files work too, but MP4 is most consistent. If your file is in another format, convert it first using HandBrake (free).
- A YouTube channel with live streaming enabled. New channels have a 24-hour wait period after enabling live streaming. See our lofi channel setup guide for the exact steps to enable it.
- OBS Studio 30.x or newer. The screenshots and settings in this guide correspond to current OBS versions. If you're on an old version, update it — the UI has changed significantly in recent releases and older guides won't match what you see.
Installing and Opening OBS Studio
Download OBS Studio from the official source: obsproject.com. Do not download it from anywhere else — unofficial sources carry modified versions that may contain malware or outdated builds with security vulnerabilities. The official site has native installers for Windows (.exe), macOS (.dmg), and Linux (Flatpak or apt repository).
Install and launch OBS. The first time you open it, the Auto-Configuration Wizard may appear. You can run it or skip it — for our use case, we'll configure the relevant settings manually, so either choice is fine. If the wizard runs and asks what you're optimizing for, select "Optimize for streaming."
When OBS loads, you'll see its main window: a preview area in the center, and panels for Scenes, Sources, Audio Mixer, Scene Transitions, and Controls along the bottom. The interface looks complex, but for streaming a pre-recorded video, you only need to interact with three areas: the Sources panel, the Settings dialog, and the Controls panel (the Start Streaming button).
Configuring Output Settings for YouTube
Before adding your video, configure OBS's output settings correctly. Getting these right before you start saves a lot of frustration later. Click Settings in the Controls panel (bottom right), then navigate through the sections below.
In Settings → Stream, set the Service to "YouTube - RTMPS" (or "YouTube - RTMP" if RTMPS isn't listed). For Server, use "Primary YouTube ingest server" or the auto-selection. Leave the Stream Key field empty for now — we'll add it in the stream key step. Enable "Use authentication" if prompted.
In Settings → Output, switch to Advanced mode (dropdown at top of Output section). Under the Streaming tab:
- Encoder: x264 (software) or your GPU encoder if available (NVENC for Nvidia, AMF for AMD, VideoToolbox for Mac). x264 is most universally compatible and recommended unless you know your GPU encoder well.
- Bitrate: 4500 kbps for 1080p/30fps. Set CBR (Constant Bit Rate) — VBR causes issues with YouTube's ingest.
- Keyframe Interval: 2 (this is seconds). This is the most commonly misconfigured setting — it must be 2 for YouTube.
- CPU Usage Preset (x264 only): veryfast or superfast. For pre-recorded video, you don't need slow encoding — faster presets use less CPU with negligible quality impact at streaming bitrates.
- Profile: high. Level: auto.
- Tune: film (for most content) or none.
Still in Settings → Output, under the Audio tab: set Audio Bitrate to 160 kbps (or 192 kbps if music quality is a priority). In Settings → Audio separately, set Sample Rate to 44.1 kHz and Channels to Stereo. These must match what YouTube expects from an RTMP stream.
In Settings → Video: set Base (Canvas) Resolution and Output (Scaled) Resolution both to 1920×1080. Set Common FPS Values to 30. These are the canvas settings — they define the resolution and frame rate OBS encodes at, independently of your source video's native resolution.
| Setting | OBS Location | Required Value | Why |
|---|---|---|---|
| Service | Settings → Stream | YouTube - RTMPS | YouTube prefers encrypted ingest |
| Encoder | Settings → Output → Streaming | x264 or GPU encoder | H.264 required; GPU = lower CPU load |
| Rate Control | Settings → Output → Streaming | CBR | VBR causes ingest issues on YouTube |
| Bitrate | Settings → Output → Streaming | 4500 kbps | 1080p/30fps sweet spot; within YouTube max |
| Keyframe Interval | Settings → Output → Streaming | 2 | Platform requirement — non-2 causes quality artifacts |
| Canvas Resolution | Settings → Video | 1920×1080 | Match your video source resolution |
| Frame Rate | Settings → Video | 30 fps | Standard for non-gaming content |
| Audio Bitrate | Settings → Output → Audio | 160–192 kbps | Higher for music content |
| Sample Rate | Settings → Audio | 44.1 kHz | YouTube ingest standard |
Click Apply, then OK to save settings. Don't skip this — OBS doesn't save settings until you explicitly apply them.
Adding Your Video as a Media Source
This is the core step. The Media Source is OBS's built-in component for playing local video and audio files through a scene. It's different from a "Video Capture Device" (which captures live camera input) or a "Display Capture" (which mirrors your screen). Media Source reads a file from disk and plays it through OBS's encoder pipeline exactly as if it were a live input.
In the Scenes panel (bottom left), click the + button to add a new scene. Name it something clear — "Pre-recorded Stream" or the name of your video. OBS can have multiple scenes, but for this use case you only need one.
In the Sources panel, click the + button and select Media Source from the dropdown list. In the dialog that appears, give it a name (e.g., "My Video") and click OK.
The Media Source properties window opens. This is where the critical configuration happens.
In the Media Source properties window, configure exactly these settings:
- Local File: Check this box. Then click Browse and navigate to your video file. Select it and click Open.
- Loop: Check this box if you want the video to loop when it ends. Leave unchecked if you want it to play once and stop.
- Restart playback when source becomes active: Check this. It ensures the video restarts from the beginning whenever you switch back to this scene.
- Use hardware decoding when available: Check this. It offloads video decoding to your GPU, reducing CPU usage during the stream.
- Speed (%): Leave at 100. Changing this will desync audio and video.
Click OK to save the Media Source properties. You should see your video appear in the OBS preview canvas. If it doesn't fill the canvas fully, right-click the source in the preview, select Transform → Fit to Screen (or press Ctrl+F / Cmd+F on Mac).
In the Audio Mixer panel, you should see a level meter labeled "Media Source" (or whatever you named it) showing activity when the video plays. If you see the meter moving, audio is routing correctly through OBS and will be captured in your stream. If you see no audio level, double-check that the video file has audio and that the Media Source isn't muted (the speaker icon in the mixer).
If your video file has multiple audio tracks (common with MKV files or professionally exported MP4s), OBS Media Source plays the first audio track by default. If you hear no audio or the wrong audio, right-click the Media Source → Properties → Audio Track and select the correct track number.
Connecting OBS to Your YouTube Channel
OBS needs two pieces of information to push your stream to YouTube: the RTMP ingest URL and your unique stream key. These are found in YouTube Studio.
Go to studio.youtube.com. Click the camera icon (Create) at top right and select Go Live. In the left sidebar, click Stream. You'll see your Stream URL (rtmp://a.rtmp.youtube.com/live2/) and your Stream Key (a long alphanumeric string).
Copy the Stream Key. Keep it private — anyone with this key can broadcast to your channel. If it's ever compromised, you can regenerate it in YouTube Studio → Settings → Channel → Advanced → Stream key.
In OBS, go to Settings → Stream. In the Stream Key field, paste the key you just copied. OBS will mask it with asterisks after you paste — that's normal, it's just hiding it from screen capture. Click Apply and OK.
Alternatively, if you selected YouTube as your service, OBS may offer to connect directly to your YouTube account via OAuth (a "Connect Account" button). This is slightly more convenient because it lets OBS create and manage streams directly from the OBS interface without manual key copying. Either method works identically for the stream itself.
Going Live — The Final Steps
Before clicking Start Streaming, verify: your video is playing in the OBS preview canvas (press the spacebar or click anywhere on the preview if it's paused), the audio meter in the mixer is showing levels, and your internet connection is stable — run a quick speed test if you haven't recently.
In the Controls panel (bottom right of OBS), click Start Streaming. OBS will begin encoding and pushing your stream to YouTube's RTMP ingest server. The status bar at the bottom of OBS will show the live bitrate, dropped frames percentage, and elapsed time. You want dropped frames at or near 0% — any sustained dropped frame rate above 1–2% indicates a network or encoding bottleneck.
Switch to YouTube Studio → Go Live → Stream. After 10–30 seconds, you should see a live preview of your video appearing in the YouTube stream monitor. You'll see "Stream Health: Good" in green if everything is working correctly.
Click Go Live on the YouTube side to make the stream public. Your stream is now visible to the world. Open an incognito browser window and visit your channel to confirm it appears as live.
Back in YouTube Studio, you can edit your stream's title, description, thumbnail, category, and tags while it's live. The changes take effect within a minute. Take the time to optimize this metadata — it's the difference between the algorithm finding your stream and it sitting unwatched. See our title and tag optimization guide for specific recommendations.
Setting Up Looping for Continuous Playback
If you want your video to loop automatically when it finishes — playing the same video on repeat for as long as OBS is running — the setup is simple: the Loop checkbox in Media Source properties is all you need. When checked, OBS automatically restarts the video from the beginning the moment it ends. The loop is seamless from an RTMP perspective; YouTube sees a continuous stream, not individual plays.
For a cleaner loop experience, export your video file with a brief crossfade at the end that matches the beginning, so the transition between the end and restart is less noticeable to regular viewers. Most video editors can do this in a few minutes.
Looping a Playlist (Multiple Videos)
OBS doesn't have a native playlist mode for Media Source — it plays a single file and optionally loops it. If you want to cycle through multiple videos in sequence, you have two options:
- Pre-combine your videos into one long file. Edit all your videos together into a single MP4 using DaVinci Resolve or any video editor, then play that single combined file in OBS. This is the simplest and most reliable approach. A 4-hour combined video file loops at the 4-hour mark, giving viewers variety throughout the loop cycle.
- Use the Advanced Scene Switcher plugin. OBS's plugin ecosystem includes the Advanced Scene Switcher, which can automatically switch scenes (and therefore Media Sources) on a timer schedule. This allows cycling through multiple clips, but it introduces complexity and potential switching latency that can create brief black frames visible to viewers. It's workable but not clean.
For most continuous streaming use cases, pre-combining into a single file is significantly more reliable than attempting playlist management in OBS. Scene switches in OBS create brief encoding transitions that sometimes show as visible glitches on the stream. A single long looping file eliminates this entirely. Build a 4–8 hour master file and let it loop — simpler and cleaner.
Best Settings for Pre-Recorded Video Quality
Pre-recorded video has a different optimal encoding profile than live camera or screen capture. Because your source is a file with fixed content, not a real-time input, you have more flexibility in how OBS encodes it. Here are the specific recommendations for getting the best quality-to-bitrate ratio.
For Music or Static Visual Content (Lofi, Ambience, Slides)
If your video has a mostly static or slowly-changing visual — a lofi illustration, a campfire, a rainscape — the H.264 encoder can compress it very efficiently. You don't need a high bitrate because there's very little motion to encode. A static lofi image with a rain animation overlay streams beautifully at 2,000–3,000 kbps. Setting a bitrate higher than this wastes bandwidth without any visible quality improvement.
For High-Motion Video Content (Gaming, Action, Sport)
High-motion content needs more bits to look clean. Push to 6,000 kbps for 1080p/60fps gaming content. Use the zerolatency tune setting in x264 for content where motion clarity matters more than compression efficiency.
CPU vs GPU Encoding
For pre-recorded video, GPU encoding (NVENC for Nvidia, AMF for AMD) is generally the better choice if you have a dedicated GPU. It uses far less CPU — freeing your system to stay responsive during long streaming sessions — and modern GPU encoders produce quality comparable to x264 at equivalent bitrates. If your system gets hot or the CPU usage is high during x264 encoding, switch to NVENC/AMF. In OBS Settings → Output → Streaming, change the Encoder to "NVIDIA NVENC H.264" or "AMD HW H.264."
| Content Type | Bitrate | Encoder Preset | x264 Tune |
|---|---|---|---|
| Lofi / Static visual with audio | 2000–3000 kbps | veryfast | film |
| Animated / motion-light video | 3500–4500 kbps | veryfast | film |
| Talking head / lecture / podcast video | 3000–4000 kbps | veryfast | film |
| High-motion / gaming / action | 5500–6000 kbps | superfast | zerolatency |
| Screen recording / tutorial | 3000–4500 kbps | veryfast | animation |
Troubleshooting Common OBS Problems
These are the issues that actually come up — not theoretical edge cases, but the specific problems that appear in OBS forums, support threads, and in conversations with streamers who've set this up before. Work through these in order when something isn't working.
The Honest Limits of the OBS Approach
This guide has shown you how to make OBS stream a pre-recorded video to YouTube. It works, and it works well for the scenarios it was designed for. But there are real limits to this approach that deserve direct, honest treatment — because understanding them upfront is what lets you make the right decision for your use case rather than discovering the problems after weeks of investment.
None of this is criticism of OBS — it's a phenomenal tool for what it was designed to do. These are simply the architectural realities of using a desktop application running on residential infrastructure for a task that fundamentally requires always-on cloud infrastructure to do correctly.
When to Move Beyond OBS
OBS is the right tool for pre-recorded streaming in two scenarios: you're streaming a specific event or scheduled broadcast for a defined period of hours, or you're testing and learning how streaming works before committing to a longer-term setup. For either of those, the guide above is exactly what you need.
The moment you start thinking about running the stream beyond a session — overnight, across a weekend, for a week, indefinitely — the OBS-on-PC approach stops being practical and starts being a maintenance burden. The reliability gap between a desktop app on residential internet and a cloud-hosted streaming service compounds quickly over time. A week of 85% uptime means 25+ hours of dead stream. Three months of it means your channel has never had the sustained live presence that the algorithm needs to start compounding your recommendations.
| Scenario | OBS on PC | StreamKite (Cloud) |
|---|---|---|
| Single event stream (2–6 hrs) | ✓ Perfect fit | ✓ Works fine too |
| Overnight stream (8–12 hrs) | Risky — no monitoring | ✓ Fully automatic |
| Weekend / multi-day stream | Not recommended | ✓ Designed for this |
| 24/7 continuous loop | Wrong tool | ✓ Core use case |
| Crash recovery while you sleep | None — manual only | ✓ Automatic, <5 sec |
| Stream without PC running | Impossible | ✓ Cloud-hosted |
| Multi-platform simultaneous | Requires relay service | ✓ 40+ platforms native |
| Cost | Free software + electricity | From $1.60/stream/mo |
The transition from OBS-on-PC to a cloud streaming service like StreamKite doesn't require relearning anything — you use the same YouTube stream key, the same video file, the same RTMP ingest system. The only difference is where the encoder lives: instead of on your laptop, it lives on a server in a datacenter with professional uptime standards, automatic crash recovery, and a scheduler so you never have to manually start or stop anything. You go from spending mental energy managing infrastructure to spending it on content.
For one-off streams and learning purposes, OBS is excellent. For building a channel that grows because the stream never stops — that's a different infrastructure problem, and it deserves the right tool.