Everything In This Guide
- 01 How Streaming Pre-Recorded Video Through OBS Works
- 02 Step 1 — Setting Up Your Media Source (the Video File)
- 03 Step 2 — Stream Settings: Service, Server & Stream Key
- 04 Step 3 — Choosing Your Encoder: x264 vs NVENC vs AMF
- 05 Step 4 — Output Settings: Bitrate, Keyframe & Profile
- 06 Step 5 — Video Settings: Canvas, Output Resolution & FPS
- 07 Step 6 — Audio Settings: Sample Rate, Bitrate & Tracks
- 08 Step 7 — Advanced Settings: Color Format & Process Priority
- 09 Platform-Specific RTMP URLs & Setting Differences
- 10 Bitrate Selection Guide by Resolution & Upload Speed
- 11 Going Live & What to Monitor
- 12 OBS Troubleshooting: Dropped Frames, No Signal & More
OBS Studio is the most widely used free broadcasting software on earth — and it's capable of turning any pre-recorded video file into a professional live stream delivered to any RTMP destination: YouTube, Twitch, Kick, Facebook, Instagram, Rumble, or any custom server. The challenge for new streamers isn't the concept — it's that OBS has dozens of settings that interact with each other, and the wrong combination of bitrate, keyframe interval, encoder, or resolution produces streams that buffer, drop frames, look pixelated, or fail to connect entirely.
This guide gives you the exact settings — not a range to experiment with, but the specific values that work cleanly across all major platforms. We explain why each setting matters, how to diagnose when it's wrong, and the platform-specific differences you need to know. Work through it once and you'll have a stable, high-quality stream configuration you can rely on indefinitely.
How Streaming Pre-Recorded Video Through OBS Works
When you stream a pre-recorded video through OBS using an RTMP stream key, the data flow works like this: OBS reads your video file as a Media Source, re-encodes it in real time using your configured encoder and bitrate settings, packages the encoded stream as FLV (the standard container for RTMP), and pushes it continuously to your platform's ingest server using the RTMP URL and stream key you provide. The ingest server broadcasts it to viewers as a live stream.
The critical detail that many beginners miss: OBS is re-encoding your video in real time. Even if your source video file is already H.264 at 1080p, OBS doesn't just pass it through — it decodes the file and re-encodes it to your configured settings. This means your computer must have enough CPU or GPU capacity to perform this re-encoding in real time without falling behind. If it falls behind, you get dropped frames. This is why encoder choice and preset selection matter.
For truly passive 24/7 streaming of a pre-recorded video — where you want the stream to run unattended without your computer being on — OBS is not the right tool. OBS requires a running computer, and if it crashes, the stream stops. For 24/7 reliability, a cloud streaming service like StreamKite runs from server infrastructure independently of your devices, with automatic crash recovery and no PC requirement. OBS is excellent for occasional or supervised streams; cloud infrastructure is better for always-on operation.
Step 1 — Setting Up Your Media Source (the Video File)
Before configuring any output settings, you need to add your pre-recorded video file as a source in OBS. The Media Source is the component that reads your file and feeds it into the OBS encoding pipeline.
In the Sources panel at the bottom of OBS, click the + button. Select Media Source from the list. Give it a name (e.g., "Pre-Recorded Video") and click OK.
In the Properties dialog, configure exactly these options:
- Local File: checked
- Browse: navigate to your MP4 video file and select it
- Loop: checked — this is what makes it loop continuously for 24/7 operation
- Restart playback when source becomes active: checked — ensures the video starts from the beginning when OBS launches
- Use hardware decoding when available: checked — reduces CPU usage during decoding
- Close file when inactive: unchecked — leave this off to avoid file loading delays
Click OK.
Right-click on the source in the OBS preview window. Select Transform → Fit to Screen. This scales your video to fill the canvas resolution. Verify the video appears cleanly in the preview. Check the Audio Mixer at the bottom — you should see level indicators moving if your video has audio. If the Audio Mixer shows no activity, your video's audio track may not be loaded correctly — check the file has an audio track by opening it in VLC.
Video file format matters. OBS Media Source works best with MP4 files containing H.264 video and AAC audio. MKV, MOV, AVI, and other containers may cause issues — sync problems, missing audio, or playback failures. If your source file is in a different format, convert it to MP4/H.264/AAC first using HandBrake (free) before adding it to OBS. This eliminates an entire category of source-side problems.
Step 2 — Stream Settings: Service, Server & Stream Key
Stream settings tell OBS where to send your stream — which platform, which server, and which stream key to authenticate with. This is where your RTMP URL and stream key from your platform's dashboard get entered.
OBS includes many popular platforms — YouTube, Twitch, Facebook Live, and others — as named services in its dropdown. When you select a named service, OBS automatically configures the correct RTMP server URL and may offer to connect your account via OAuth for automatic stream key retrieval. This is the simplest path for major platforms.
For platforms not in OBS's dropdown — or when you prefer manual control — select "Custom..." and enter the RTMP URL and stream key directly. The RTMP URL typically looks like rtmp://ingest.example.com/live/ or rtmps://live-api.example.com:443/rtmp/ (for platforms requiring RTMPS like Facebook and Instagram). See the platform-specific reference table later in this guide for exact URLs.
Never share your stream key. It is the authentication credential that lets anyone broadcast to your channel. If it's ever exposed — in a screenshot, a screen recording, a live stream — reset it immediately in your platform's dashboard. Facebook and Instagram use RTMPS (note the S at the end) — using plain rtmp:// for those platforms will fail with a connection refused error. Always verify which protocol your platform requires before troubleshooting connection failures.
Step 3 — Choosing Your Encoder: x264 vs NVENC vs AMF
The encoder is the software or hardware component that compresses your video for transmission. Choosing the right encoder is one of the most impactful decisions in your OBS setup — it determines stream quality, CPU/GPU load, and the encoding options available to you.
veryfast preset produces excellent quality with manageable CPU use.
The recommendation for pre-recorded video streaming: use x264 at the veryfast preset unless your CPU is consistently above 80% usage during streaming. At veryfast, x264 produces noticeably better compression quality than hardware encoders at the same bitrate — meaning cleaner video at lower bandwidth cost. If CPU is a constraint, switch to NVENC (NVIDIA) or AMF (AMD) with the Quality preset.
Step 4 — Output Settings: Bitrate, Keyframe & Profile
Output settings are where most streaming quality problems originate. These settings live in Settings → Output → Advanced → Streaming tab. Switching to Advanced mode (dropdown at the top of the Output page) gives you access to all relevant controls.
The Keyframe Interval — The Most Critical Setting
The keyframe interval tells your encoder how frequently to insert a full "key frame" (a complete image, rather than just a difference from the previous frame) into the video stream. Every major streaming platform — YouTube, Twitch, Kick, Facebook, Instagram, Rumble — requires a keyframe interval of exactly 2 seconds. This requirement exists because platforms use keyframes as synchronization points for their adaptive bitrate systems.
If you set this to 0 (auto), 1, 3, or any other value, the platform's quality adaptation system malfunctions. Viewers see compression artifacts, blockiness, and quality degradation that looks like a bitrate problem but isn't. Setting keyframe interval to 2 is a 30-second fix that eliminates a category of stream quality complaints entirely.
Rate Control — Always CBR for Live Streaming
CBR (Constant Bitrate) maintains your configured bitrate consistently throughout the stream. VBR (Variable Bitrate) adjusts the bitrate based on scene complexity — it uses more bandwidth during complex scenes and less during simple ones. VBR is appropriate for local recording or file export; it is not appropriate for live streaming. Platform ingest servers expect a steady, predictable bitrate. Sending variable bitrate can cause connection instability, buffering, and dropped frames at the ingest level. Always use CBR for live streaming, with no exceptions.
x264 CPU Preset Explanation
The x264 preset (ultrafast, superfast, veryfast, faster, fast, medium, slow) controls the speed/quality tradeoff. Slower presets produce better compression quality at the same bitrate but use more CPU. For live streaming of pre-recorded video:
- veryfast — the recommended starting preset. Good quality, manageable CPU use. Use this unless you have headroom to go slower.
- faster / fast — noticeably better quality than veryfast; use if CPU usage stays below 70% at veryfast.
- medium — best practical quality for live streaming; use only if CPU is consistently under 50% at faster.
- superfast / ultrafast — lower quality but much lower CPU use; fall back to these if you're getting encoding overload warnings.
Step 5 — Video Settings: Canvas, Output Resolution & FPS
Video settings control your canvas size and the final resolution and framerate of what OBS sends to the streaming platform. These live in Settings → Video.
Set your Base (Canvas) Resolution to match your source video file's resolution. If your video file is 1920×1080, set the canvas to 1920×1080. If it's 1280×720, set the canvas to 1280×720. Mismatching the canvas and source resolution forces OBS to scale the source, which adds unnecessary processing and can introduce quality loss.
The Output (Scaled) Resolution can be set lower than the canvas if you need to reduce the final bitrate requirement. Downscaling from 1920×1080 to 1280×720 allows you to use roughly half the bitrate for equivalent visual quality, which is useful when your upload speed is limited. Use the Lanczos downscale filter for the sharpest downscaled output.
FPS selection: 30fps is the right choice for ambient music, lofi, and slow-motion content — the lower FPS requires less bitrate for equivalent quality. 60fps is worth considering for gaming content or fast-motion video where smooth motion matters. Match the FPS to your source video file's native framerate — streaming at 30fps from a 60fps source requires OBS to drop frames, which can cause quality issues. Streaming at 60fps from a 30fps source adds no quality and wastes bitrate.
Step 6 — Audio Settings: Sample Rate, Bitrate & Tracks
Audio is where streaming quality is most often lost and most noticed by viewers. The audio settings in OBS are in two places: Settings → Audio for global settings, and Settings → Output → Audio (when in Advanced mode) for output bitrate.
Sample rate mismatch is a silent destroyer of audio quality. If your video file's audio is at 44.1 kHz and OBS is set to 48 kHz (or vice versa), OBS has to resample the audio in real time. This resampling introduces subtle quality degradation and can cause audio drift over long streams — the audio gradually falls out of sync with the video. Set OBS's sample rate to exactly match your source file's sample rate.
For most music and ambient streams, the source audio is at 44.1 kHz (the standard for music production). Set OBS to 44.1 kHz. For content recorded at 48 kHz (the broadcast standard, common for video recorded on cameras), set OBS to 48 kHz. When in doubt, 44.1 kHz is the safe default for music content.
Disable Desktop Audio and Mic/Auxiliary Audio when streaming pre-recorded video only. If these are enabled and picking up anything — system sounds, fans, ambient room noise — that audio gets mixed into your stream alongside the video's audio track. With Desktop Audio enabled, a notification sound or system beep will be heard by all your viewers. Disable them both, leaving only the Media Source audio active in your mixer.
Audio bitrate: 160 kbps AAC is the minimum for good quality audio streaming. For music content specifically — lofi, ambient, classical, EDM — use 192 kbps. The difference in bandwidth cost is approximately 4 kbps, which is negligible, but the quality improvement on music is noticeable, particularly in the high-frequency range. Facebook and Instagram cap audio at 128 kbps — for those platforms, you cannot go above 128 kbps even if you configure it higher in OBS.
Step 7 — Advanced Settings: Color Format & Process Priority
The Advanced settings panel (Settings → Advanced) contains a few additional items that affect stream quality and system stability for pre-recorded video streaming.
Color Format: NV12 is the correct setting for streaming. NV12 is a YUV 4:2:0 format that every streaming platform's ingest infrastructure processes natively. Using I420 or I444 can cause compatibility issues with certain platforms. NV12 is universally safe.
YUV Color Space: 709 ensures your stream displays with correct HD colors on viewer screens. If this is set to 601 (SD), colors appear slightly washed out or oversaturated on modern displays. If you're experiencing color issues that look like incorrect saturation or contrast, this setting is likely the cause — switch to 709.
Auto-Reconnect: Enable this in Settings → Stream (scroll down to find it). Set retry delay to 10 seconds and max retries to 20 or higher. This tells OBS to automatically attempt to reconnect to the stream server if the connection drops — a basic crash recovery mechanism. With reconnect enabled, a brief network hiccup that drops the connection for a few seconds will self-resolve without manual intervention.
Platform-Specific RTMP URLs & Setting Differences
Most output settings are identical across all platforms — the same bitrate, keyframe interval, encoder, and audio settings work everywhere. What differs is the RTMP server URL, the protocol (RTMP vs RTMPS), the maximum bitrate ceiling, and a few platform-specific behaviors.
| Platform | RTMP Server URL | Protocol | Max Bitrate | Key Format |
|---|---|---|---|---|
| YouTube | rtmp://a.rtmp.youtube.com/live2/ | RTMP | 9,000 kbps | Separate field |
| Twitch | rtmp://jfk.contribute.live-video.net/app/ | RTMP | 6,000 kbps | Appended to URL |
| Kick | rtmp://fa723fc1b171.global-contribute.live-video.net/app/ | RTMP | 6,000 kbps | Appended to URL |
| rtmps://live-api-s.facebook.com:443/rtmp/ | RTMPS only | 4,000 kbps | Appended to URL | |
| rtmps://live-upload.instagram.com:443/live/ | RTMPS only | 3,500 kbps | Appended to URL | |
| Rumble | rtmp://[your-assigned-ingest]/live/ | RTMP | 6,000 kbps | From dashboard |
| Custom / Other | rtmp://[server-url]/[app-name]/[key] | Varies | Platform-specific | Varies |
Facebook and Instagram require RTMPS (note the S) — not plain RTMP. RTMPS is the TLS-encrypted version running on port 443. In OBS, when using Custom... service, enter the full RTMPS URL exactly as shown. If OBS is configured with Facebook Live selected from the Service dropdown, it handles RTMPS automatically. If using Custom... for Facebook, the URL must start with rtmps:// — using rtmp:// will result in a connection refused error every time.
How Stream Keys Are Used
Platforms handle stream keys in two different ways in OBS's Custom... service mode:
- YouTube (separate field): Enter the Server URL in the Server field (
rtmp://a.rtmp.youtube.com/live2/) and paste your stream key in the Stream Key field separately. OBS combines them internally. - Twitch, Kick, Facebook, Instagram (appended): Some configurations require appending the stream key directly to the end of the Server URL:
rtmp://ingest.platform.com/live/YOUR_STREAM_KEY. Alternatively, many tools accept the key in a separate field. When using OBS's named service for Twitch, the key goes in the Stream Key field; when using Custom..., check your platform's documentation for whether to append or separate.
Bitrate Selection Guide by Resolution & Upload Speed
Bitrate is the amount of data per second your stream sends to the ingest server. Too low: the image looks blurry and compressed. Too high: dropped frames and stream instability as your connection can't sustain the load. The correct bitrate depends on three things: your resolution, your framerate, and your upload speed.
Recommended Bitrate by Resolution & FPS
Always add audio bitrate to video bitrate when calculating your total stream bitrate. If you're streaming at 4,500 kbps video + 160 kbps audio, your total is 4,660 kbps. This needs to be under your maximum safe bitrate (75% of upload speed) and under your platform's ceiling.
Going Live & What to Monitor
With all settings configured, starting the stream is straightforward. But knowing what to watch after clicking Start Streaming is what separates a creator who catches problems immediately from one who discovers a broken stream hours later.
Before clicking Start Streaming in OBS, open your platform's stream dashboard in a separate browser window. For YouTube: Studio → Go Live. For Twitch: Creator Dashboard. For Kick: Kick Dashboard. This lets you see the incoming signal and stream health from the platform's perspective as soon as OBS connects.
Click Start Streaming in OBS Controls. The status bar at the bottom of OBS shows three critical values to monitor:
- Bitrate: Should read near your configured value (e.g., 4,498 kbps when configured at 4,500 kbps). If it shows 0 or fluctuates wildly, the connection failed or is unstable.
- Dropped frames: Should read 0.0%. Any consistent dropped frame percentage above 0.5% indicates a bitrate or network problem. Over 5% is a serious problem requiring bitrate reduction.
- CPU usage: Should stay under 80%. If CPU is maxing out, OBS may fall behind on encoding — switch to a faster x264 preset or use a hardware encoder.
Open your channel in a fresh browser window (logged out, or in incognito mode) and verify the stream appears as live, the video plays correctly, and the audio is present and clean. Check the video quality selector — if the platform has transcoded your stream to multiple quality levels, verify the highest quality looks correct. Look specifically for: color accuracy (not washed out or oversaturated), audio sync (lips match words if applicable), and absence of compression artifacts.
OBS Troubleshooting: Dropped Frames, No Signal & More
These are the specific problems that come up most frequently with OBS pre-recorded streaming and their root causes and fixes.
| Problem | Root Cause | Fix |
|---|---|---|
| Consistent dropped frames (5%+) | Bitrate exceeds sustainable upload speed | Reduce video bitrate to 75% of upload speed; switch to Ethernet if on WiFi |
| Stream connects but no signal on platform | Wrong RTMP URL, expired stream key, or 2FA not enabled (Twitch) | Verify URL and key; regenerate key; enable Twitch 2FA |
| Colors washed out / overexposed | HDR source video or wrong YUV Color Space setting | Set Color Space to 709; re-export source video with HDR disabled |
| Blocky compression artifacts despite high bitrate | Wrong keyframe interval (not set to exactly 2) | Settings → Output → Keyframe Interval → set to exactly 2 |
| No audio in stream | Media Source audio not routed; Desktop Audio muted wrong source | Check Audio Mixer — Media Source should show level activity; disable Desktop Audio and Mic if not needed |
| Audio slowly drifts out of sync | Sample rate mismatch between OBS and source file | Match OBS sample rate (Settings → Audio) to source file's sample rate exactly |
| OBS encoding overload warning | x264 preset too slow for available CPU | Change CPU preset from veryfast to superfast, or switch to NVENC/AMF |
| Facebook / Instagram connection refused | Using rtmp:// instead of rtmps:// | Change server URL to start with rtmps:// — Facebook and Instagram require RTMPS on port 443 |
| Video freezes periodically then catches up | Disk read speed can't keep up with Media Source demand | Move video file to SSD; reduce file resolution/bitrate; or transcode file to a less CPU-intensive format |
| Stream quality looks worse than expected | Output resolution higher than bitrate can support cleanly | Downscale output resolution to 720p if streaming under 4,000 kbps; or increase bitrate if upload allows |
Complete Settings Reference — Copy-Paste Ready
The exact settings in one place. Copy these into your OBS configuration for a clean 1080p/30fps pre-recorded stream at 4,500 kbps — the universal starting point that works on every platform.
| Settings Panel | Setting | Value | Notes |
|---|---|---|---|
| Output → Streaming | Encoder | x264 | Switch to NVENC/AMF if CPU >80% |
| Output → Streaming | Rate Control | CBR | Never use VBR for live streaming |
| Output → Streaming | Bitrate | 4500 kbps | Adjust based on upload speed and platform limit |
| Output → Streaming | Keyframe Interval | 2 | Critical — must be exactly 2 seconds, not 0 |
| Output → Streaming | CPU Preset (x264) | veryfast | Try faster/fast if CPU headroom allows |
| Output → Streaming | Profile | high | Leave at high — main for older device compatibility |
| Output → Audio | Track 1 Bitrate | 160 kbps | Use 192 kbps for music; 128 max for Facebook/Instagram |
| Video | Base Resolution | 1920×1080 | Match your video file's native resolution |
| Video | Output Resolution | 1920×1080 | Downscale to 1280×720 if upload is limited |
| Video | FPS | 30 | Match your source video's native FPS |
| Audio | Sample Rate | 44.1 kHz | Must match source file — 48 kHz if source is 48 kHz |
| Audio | Channels | Stereo | Never use Mono for music content |
| Advanced | Color Format | NV12 | Best platform compatibility |
| Advanced | YUV Color Space | 709 | Required for correct HD color rendering |
| Advanced | YUV Color Range | Partial | Standard for streaming — not Full |
| Stream | Auto-Reconnect | Enabled | Retry delay: 10s; Max retries: 20 |
✅ OBS Pre-Recorded Stream Launch Checklist
- Video file is MP4, H.264, AAC — convert with HandBrake if in another format
- Media Source added with Loop enabled — Transform → Fit to Screen applied
- Desktop Audio and Mic disabled in Audio Mixer — only Media Source active
- Platform selected or Custom... RTMP URL entered correctly
- Stream key pasted and verified current — not expired or revoked
- Facebook/Instagram: URL starts with rtmps:// not rtmp://
- Encoder set to x264 (or NVENC/AMF)
- Rate Control set to CBR — not VBR or CQP
- Bitrate calculated at 75% of upload speed and within platform ceiling
- Keyframe Interval set to exactly 2 — not 0 (auto)
- CPU Preset: veryfast (or faster if CPU headroom exists)
- Canvas resolution matches source video resolution
- FPS matches source video framerate
- Sample Rate matches source audio sample rate (44.1 or 48 kHz)
- Audio bitrate: 160 kbps (music: 192 kbps)
- Color Format: NV12; Color Space: 709; Color Range: Partial
- Auto-Reconnect enabled in Stream settings
- Test stream run at "Only Me" privacy first — verify from viewer perspective before going public
These settings produce a reliable, high-quality stream to any RTMP destination. Once you've verified everything works with a test stream, you can stream confidently knowing the technical foundation is solid. For anything beyond occasional supervised streaming — particularly for 24/7 loops where the stream must run unattended and recover automatically from crashes — the jump to cloud streaming infrastructure removes the operational burden of maintaining an always-on PC. But for scheduled, supervised streams, this OBS configuration is everything you need.