3D Blu-ray Mastering Guide

This is the foundational step of your 3D Blu-ray project. Because 3D Blu-rays use a specific "Multiview Video Coding" (MVC) extension of the H.264 codec, you cannot simply throw a Side-by-Side (SBS) file onto a disc. You must first separate the eyes into two distinct, standards-compliant video streams.

Step 1: Splitting and Standardizing the Video

The Concept

We are taking a single "Full SBS" file (which contains both eyes side-by-side in one wide frame) and slicing it down the middle. Because your source might be a cinema-style "Ultrawide" format (like 3840x800), we must also add black bars (padding) to the top and bottom to reach the mandatory Blu-ray height of 1080 pixels.

Visualizing the split and pad process Figure 1: Visual process of splitting Full SBS into two 1080p streams with padding.

The Command

Run this in your terminal:

ffmpeg -i input.mkv -filter_complex "[0:v]split=2[l_raw][r_raw]; \
 [l_raw]crop=1920:ih:0:0,pad=1920:1080:0:(1080-ih)/2:black[leftout]; \
 [r_raw]crop=1920:ih:1920:0,pad=1920:1080:0:(1080-ih)/2:black[rightout]" \
-map "[leftout]" -c:v libx264 -crf 16 -preset slow -r 23.976 -pix_fmt yuv420p left_eye.mkv \
-map "[rightout]" -c:v libx264 -crf 16 -preset slow -r 23.976 -pix_fmt yuv420p right_eye.mkv

You want to use the command in 1 line when using command prompt instead:

ffmpeg -i input.mkv -filter_complex "[0:v]split=2[l_raw][r_raw];[l_raw]crop=1920:ih:0:0,pad=1920:1080:0:(1080-ih)/2:black[leftout];[r_raw]crop=1920:ih:1920:0,pad=1920:1080:0:(1080-ih)/2:black[rightout]" -map "[leftout]" -c:v libx264 -crf 16 -preset slow -r 23.976 -vsync cfr -pix_fmt yuv420p left_eye.mkv -map "[rightout]" -c:v libx264 -crf 16 -preset slow -r 23.976 -vsync cfr -pix_fmt yuv420p right_eye.mkv

Command Breakdown: What is happening?

Parameter What it does Why it's important
split=2 Creates two identical copies of the input in memory. Guarantees the left and right eyes start on the exact same frame.
crop=1920:ih:x:y Cuts a 1920-pixel wide box out of the source. Separates the left half from the right half accurately.
pad=1920:1080... Adds black bars to make the file exactly 1080 pixels high. Mandatory. Blu-ray players will reject any file that isn't exactly 1080p.
-crf 16 Sets the quality level (Lower is higher quality). Balances "Master Quality" with smaller file sizes to save disk space.
-preset slow Tells the encoder to take its time compressing. Essential for 3D; it prevents "macroblocking" which ruins depth.
-r 23.976 Forces the frame rate to the NTSC standard. Prevents audio desync and ensures correct shuttering timing.
-pix_fmt yuv420p Sets the color space to 4:2:0. Mandatory. Hardware players cannot decode 4:4:4 or 10-bit color.

Verification: The "Perfect Sync" Check

Before you move to the authoring software, you must ensure both files have the exact same number of frames. Even a one-frame difference can cause the 3D effect to fail or the player to crash.

Run these two commands:

ffprobe -v error -select_streams v:0 -show_entries stream=nb_frames -of default=nokey=1:noprint_wrappers=1 left_eye.mkv
ffprobe -v error -select_streams v:0 -show_entries stream=nb_frames -of default=nokey=1:noprint_wrappers=1 right_eye.mkv

The result must be identical. If the left is 144,000 frames, the right must be 144,000 frames.

Why this ensures 100% Compatibility

Step 2: Extracting Master-Quality Audio

In this phase, we move from video to high-fidelity audio. Professional Blu-ray authoring requires "Elementary Streams"—clean, individual audio files stripped of their containers. We want to use a retail 4k or regular blu ray disc to extract the best possible audio quality, making sure we are using the exact same version of the movie.

Part A: The MakeMKV Pull

First, we need to get the data off the physical disc without changing a single bit of quality.

  1. Open the Disc: Launch MakeMKV and click the Optical Drive icon.
  2. Select the Title: Find the largest Title (the main movie). Expand it by clicking the [+] or arrow.
  3. Uncheck Video: You already handled the video in Step 1.
  4. Select Audio: Check the high-definition tracks (DTS-HD MA, TrueHD, etc.) and your preferred languages.
  5. Output: Click "Make MKV". You now have a file (e.g., backup.mkv) containing only the master audio.
MakeMKV interface showing audio tracks Figure 2: Selecting only the HD audio tracks in MakeMKV.

Part B: The FFmpeg "Surgical" Extraction

Professional authoring tools are very picky. You cannot just give them an MKV; you must provide the raw "elementary" audio streams. Use the command that matches your audio type:

Scenario 1: TrueHD or Atmos (The "Split" Method)

Blu-ray standards require a "Core" AC3 track for older players and an "MLP" track for the lossless Atmos data. They must have the same filename.

ffmpeg -i backup.mkv -map 0:a:0 -c copy movie.mlp -map 0:a:0 -c copy movie.ac3
Authoring Tip: Drag movie.ac3 into Scenarist. When it asks, select "Dolby Lossless". It will automatically "hook" the .mlp file.

Scenario 2: DTS-HD Master Audio

DTS-HD is a "unified" stream. The 5.1 "Core" and the 7.1 "Extension" live together in one file.

ffmpeg -i backup.mkv -map 0:a:0 -c copy movie.dts
Authoring Tip: Scenarist handles this as a single asset.

Scenario 3: EAC3 (7.1 Dolby Digital Plus)

Specifically for 7.1 tracks that aren't TrueHD.

ffmpeg -i backup.mkv -map 0:a:0 -c copy movie.ec3

Scenario 4: Standard AC3 (5.1 Surround or 2.0 Stereo)

The most compatible format for "bonus" tracks or basic stereo.

ffmpeg -i backup.mkv -map 0:a:0 -c copy movie.ac3

Technical Cheat Sheet

If your Audio is... Use this Extension Why?
Atmos / TrueHD .ac3 + .mlp Ensures the disc plays on both 4K Atmos setups and legacy receivers.
DTS-HD MA .dts Contains both the Lossless "Master Audio" and the "Digital Surround" core.
7.1 DD+ .ec3 Required for high-bitrate Dolby Digital Plus streams.
Stereo / 5.1 .ac3 The universal standard for "standard definition" audio on a disc.
Pro-Tip: Identifying the Track Index
If your MakeMKV file has multiple languages, -map 0:a:0 grabs the first one. If the English track is the second one listed in MakeMKV, change the command to -map 0:a:1.