If you've ever recorded a stream in OBS and been surprised that the file came out as .mkv instead of .mp4, this is the reason. OBS Studio is deliberately trying to protect you from losing hours of footage to a single crash - and the way it does that has consequences for how the file plays back.
Here's what's actually going on. An MP4 file has a small piece of bookkeeping at the end called the "moov atom" - basically a table of contents that tells any player where each second of video lives in the file. Without that table, the player has no idea how to seek, and often no idea how to start playing at all. That table only gets written when the file is closed cleanly. If OBS crashes mid-recording, the file never gets closed, the moov atom never gets written, and the resulting .mp4 is a dead lump of bytes that no player can open.
MKV is built differently: it writes its own index in tiny chunks as the recording goes, so even a hard crash leaves you with a playable file up to the last written chunk. That's why every OBS tutorial ever says "record MKV, convert to MP4 later" - it's not stylistic preference, it's crash insurance.
But there are two ways to configure OBS to write MP4 directly without giving up that insurance. Which one you pick depends on whether you value fast turnaround (send the clip to Discord the second recording stops) or maximum compatibility (send the file to someone using older editing software).
#Option 1: Fragmented MP4 (OBS 30+)
Fragmented MP4 (usually shortened to fMP4) solves the crash problem by chopping the recording into a series of small self-contained pieces, each with its own tiny table of contents. Think of it like the difference between a novel with a single index at the back (regular MP4 - crashes lose everything) and a collection of short stories each with its own table of contents (fMP4 - a crash only loses the last story, everything before it still reads fine). Every fragment written up to the crash is playable independently; the recording after the crash is gone, but everything before it survives cleanly. Same crash-safety property as MKV, but the file comes out as .mp4.
Configuration: Settings → Output → Recording, and set:
- Recording Format: fragmented MP4 (.mp4)
- Video Encoder: your choice (NVENC H.264, x264, NVENC HEVC on RTX 20+, VideoToolbox H.264 on Apple)
- Audio Encoder: AAC
fMP4 recordings play in every modern MP4 player (VLC, QuickTime, mpv, browsers, mobile OSes). Some older tools that expect a monolithic MP4 with a single moov may not read them - Adobe Premiere Pro handles them from CC 2022 onward, Final Cut Pro from 10.5 onward. When in doubt, Wave's OBS to MP4 page can remux fMP4 to standard MP4 in seconds.
#Option 2: Hybrid MP4 (built-in remux at stop)
OBS has a checkbox that automatically remuxes the recording from MKV to MP4 the moment recording stops. Configuration: Settings → Advanced → Recording, set "Automatically remux to MP4" to yes. Recording still happens as MKV (with all its crash-safety); as soon as you click Stop Recording, OBS runs the remux and saves both the .mkv and .mp4 files to your recording folder. Crash-safe recording, MP4 output automatically.
Trade-off: the remux step takes 10-60 seconds depending on the recording length. If you're in a fast turnaround workflow (streaming clip → immediate upload), that pause is annoying. If you're recording longer sessions and reviewing/editing later, the pause doesn't matter.
#Option 3: Direct MP4 (fragile, not recommended)
You can also just tell OBS to write MP4 directly with a single moov at the end - Settings → Output → Recording → Recording Format: MP4 (.mp4). This works. It also means an OBS crash during recording produces an unrecoverable file, which is a terrible surprise the first time it happens on a long stream. This is not the recommended path unless you're confident OBS won't crash and you need MP4 output without the remux latency of Option 2.
#Which encoder settings matter for the MP4 output
Once you've chosen how the file gets written, the other set of choices is which chip in your computer actually does the compression, and how aggressively. This is the Settings → Output → Recording panel. Here's what each dropdown means in plain English:
- Video Encoder: which piece of hardware (or which piece of software) does the compression. NVENC uses a dedicated chip on NVIDIA GTX 10-series or newer cards - fastest, doesn't tax your CPU, ideal while gaming. QuickSync uses a similar dedicated chip built into Intel processors from 8th-gen onward. VideoToolbox is the Apple equivalent on modern Macs. x264 is the software fallback - runs on your CPU, produces slightly better quality per megabyte, but ties up cores you probably need for the game or app you're recording. Pick the hardware option matching whatever GPU you have.
- Rate Control: how the encoder decides how many bits to spend on each moment of video. CBR (Constant Bit Rate) uses exactly the same number of bits every second - predictable file size, but wastes bits on a static menu screen and starves bits during a fast action scene. CQP (Constant Quantiser Parameter) targets a fixed visual quality and lets the file size land wherever it lands. VBR (Variable Bit Rate) is the middle ground - aim for an average bitrate but spend more where the action needs it. For local recording (not streaming), CQP set to 20-23 is the sensible default: high quality, moderate file size.
- Keyframe Interval: how often the encoder writes a "full picture" frame that a player can seek to directly. Every other frame is a delta from the last full frame. 2 seconds is the modern standard - it means a player can jump anywhere in the file within 2 seconds of your click. Older tools sometimes defaulted to 10 seconds which made scrubbing feel awful.
- Preset: how hard the encoder tries. Slower presets squeeze better quality out of the same file size but need more CPU or more time. For NVENC, "Quality" or "Max Quality" is the sensible pick. For x264, "veryfast" or "faster" for real-time recording; "slow" only if you're batch-encoding later with no time pressure.
- Profile: High. This is a compression-feature tier - "High" enables tricks the encoder can use to make files smaller at the same quality. Every player made after 2010 handles it, so there's no compatibility risk.
- B-frames: 2. These are a specific type of compressed frame that references both the frame before AND after it in time. Using them makes the encoder slightly smarter about spending bits and produces smaller files at the same quality. The "2" means up to two B-frames between reference frames.
#When the MP4 output still needs Wave
- Multi-language / multi-track audio. OBS supports separate audio tracks for desktop, browser, microphone, and game audio - useful for post-editing. Fragmented MP4 preserves multiple audio tracks; some monolithic MP4 players don't. Wave's OBS page can strip to a single default track if the target is a chat client that doesn't handle multi-track.
- Legacy destinations that expect standard MP4. Some upload pipelines refuse fMP4. Wave remuxes fMP4 to standard MP4 in seconds.
- Compression to a specific size. OBS records at your chosen bitrate; if the recording is bigger than your destination allows (Discord tier, email attachment), a compression pass follows the recording. Wave does it in the same pass as the MKV-to-MP4 conversion: open Options and pick a File size, and it sets the bitrate and resolution from the length. For long recordings, HandBrake on the desktop is faster.
#The takeaway
OBS's MKV default is the crash-safe choice, but there are two paths to MP4 without giving up crash safety: fragmented MP4 (OBS 30+, native), or automatic remux at stop (any version). Both produce standard-playable MP4 files. Direct MP4 recording works but is fragile against crashes and not recommended. When the OBS output still needs container fixes (fMP4 to standard MP4, multi-track to single-track), Wave handles the remux in the browser.