Converting Dolby Vision Profile 7 (the standard for Ultra HD Blu-ray) to Profile 8.1 is a popular technique for improving compatibility with streaming devices like the Apple TV, Fire TV, or Shield TV, which often struggle with dual-layer Profile 7 files.
By converting to Profile 8.1, you create a single-layer stream that retains the dynamic metadata (RPU) while discarding the extra enhancement layer (EL) that many players can't process. Popular Tools for Conversion (2026)
dovi_tool (GitHub) : The "gold standard" CLI tool for this process. It can extract the RPU from a Profile 7 file and convert it to be Profile 8.1 compatible.
DoVi_Scripts : A collection of automation scripts (often by developer RESET_9999) that simplify the process of batch-converting and remuxing MKV files.
DDVT (Dolby Vision Tool) : A specialized tool used for demuxing and injecting RPU metadata to create hybrid files that play across multiple HDR formats.
DV7toDV8 (macOS) : A user-friendly macOS app that handles Profile 7 to 8.1 conversion and can also remove specific metadata versions if needed. Basic Conversion Steps
Using dovi_tool and ffmpeg, the standard command-line workflow typically looks like this:
Extract & Convert: Use ffmpeg to pipe the HEVC stream into dovi_tool, which discards the enhancement layer and converts the RPU to Profile 8.1.
ffmpeg -i input.mkv -c:v copy -vbsf hevc_mp4toannexb -f hevc - | dovi_tool -m 2 convert --discard - Use code with caution. Copied to clipboard
Remux: Use a tool like MKVToolNix or ffmpeg to take the newly created BL_RPU.hevc file and combine it with the original audio and subtitle tracks. Key Considerations
FEL vs. MEL: Profile 7 files come in two flavors: MEL (Minimum Enhancement Layer) and FEL (Full Enhancement Layer). While both can be converted, discarding the FEL means losing some 12-bit luminance expansion, though most modern TVs still display the resulting Profile 8.1 beautifully.
No Re-encoding Required: These tools typically work by re-wrapping and modifying the metadata bitstream, meaning there is no loss in video quality from the base layer.
Software Support: Modern media players like Infuse on Apple TV and Plex on various platforms have high success rates with these converted Profile 8.1 files. convert dolby vision profile 7 to profile 8 new
Convert DV Profile 7 to 8.1 using dovi_tool, mp4box and ffmpeg
To convert Dolby Vision Profile 7 (UHD Blu-ray) to Profile 8 (HDR10-compatible streaming format), you typically extract the RPU metadata, discard the Enhancement Layer (EL), and inject that metadata back into a single HDR10 base layer. Popular Tools & Methods (2026)
dovi_convert: An open-source tool designed to automate Profile 7 to 8.1 conversion.
Key Feature: It automatically detects "Complex FEL" (Full Enhancement Layer) and skips those files to prevent incorrect tone mapping, focusing on "safe" MEL (Minimal Enhancement Layer) or simple FEL files.
Platform: Available for macOS, Linux, and Windows (via WSL), and even as a Docker container.
DoVi_Scripts (by RESET_9999): Widely considered the "gold standard" for power users.
Function: Uses a command-line interface with drag-and-drop support for Windows. Option 4-2 is standard for UHD Blu-ray Profile 7 conversion.
DV7toDV8 (macOS): A dedicated app for Mac users that simplifies the demuxing of BL+EL+RPU and remuxing into a Profile 8.1 MKV.
dovi_tool (Command Line): The core utility many of these scripts use.
Manual Command: You can demux and convert in one step using ffmpeg:ffmpeg -i video.mkv -c:v copy -vbsf hevc_mp4toannexb -f hevc - | dovi_tool -m 2 convert --discard -. Converting UHD BD dvhe.07 to dvhe.08 with dovi_tool
Converting Dolby Vision Profile 7 (standard for UHD Blu-rays) to Profile 8.1 (compatible with streaming-first devices like Apple TV or Nvidia Shield) is primarily done by stripping the dynamic metadata (RPU) and injecting it into the base layer while discarding the enhancement layer (EL). Core Conversion Method (dovi_tool)
The most direct "under-the-hood" method uses dovi_tool to demux and convert the video stream without re-encoding. Converting Dolby Vision Profile 7 (the standard for
Extract HEVC: Use ffmpeg to extract the video stream from your MKV.
Run dovi_tool: Use the following command to convert to Profile 8:dovi_tool -m 2 convert --discard - -m 2 refers to the conversion mode for Profile 8.1.
--discard removes the enhancement layer, which isn't used in Profile 8.
Remux: Use mkvmerge or tsMuxeR to put the new video back together with your audio and subtitles. "New" Automated Tools (2025-2026)
Several high-level scripts have automated this multi-step process for easier batching:
dovi_convert (v6.6+): A popular Reddit-born tool that adds "FEL Detection". It automatically identifies if a Profile 7 file has a "Complex FEL" (luminance expansion) and skips it by default to avoid incorrect tone mapping.
DV7toDV8 (macOS): A dedicated macOS app that offers a drag-and-drop interface for converting P7 files specifically for users of the Infuse video player on Apple TV.
DoVi_Scripts (RESET_9999): A comprehensive suite of batch scripts for Windows that can remux and convert almost any Profile 7 file to Profile 8.1 while preserving HDR10 metadata. Dolby Vision Profile 8 vs 7 noticeable difference? : r/PleX
To understand the solution, you must first understand the problem.
Enter Dolby Vision Profile 8.1 (or 8.4) . Profile 8 is designed for broadcast and streaming. It stores everything in a single, backwards-compatible track. Modern devices (LG C2/G2, Apple TV, Sony A95L) handle Profile 8 natively and flawlessly.
Create a pipeline component that takes Profile 7 input, decodes/analyses enhancement metadata and base-layer content, and outputs a compliant Profile 8 bitstream by merging enhancement data into a single-layer HEVC/AVC bitstream with correct Dolby Vision SEI/metadata. The feature must support batch and real-time (streaming) modes, preserve PQ/transform/colour primaries, and offer quality/size trade-offs.
Yes, for most users.
If you primarily watch on a TV or media player that fails P7 properly, converting to P8.1 is the best way to get Dolby Vision without headaches. The visual loss from FEL is negligible in real viewing, and MEL converts perfectly. Dolby Vision Profile 7 (Mel & FEL): Used
No, for purists / archivists.
Keep original P7 + HDR10 fallback. If you have a device that plays P7 correctly (like a real 4K Blu‑ray player or an AM6B+ with CoreELEC), there’s no benefit in converting.
This method offers the most control and is the standard for advanced users. You will need FFmpeg and dovi_tool.
Step 1: Demux the Video Track First, you need to extract the HEVC video track from your MKV container.
ffmpeg -i input_profile7.mkv -c:v copy -f hevc output.hevc
Step 2: Convert the Stream
Use dovi_tool to convert the dual-layer Profile 7 stream into a single-layer Profile 8 stream. This command removes the enhancement layer and rewrites the RPU metadata to Profile 8 specs.
dovi_tool -m 2 convert --discard output.hevc
Note: -m 2 selects the conversion mode appropriate for most scenarios.
Step 3: Remux into MKV
You now have a new .hevc file (usually named output.hevc). You need to put this back into an MKV container with your audio tracks.
mkvmerge -o final_output.mkv output.hevc --no-video input_profile7.mkv
The gold standard remains dovi_tool (by quietvoid) plus mkvmerge and ffmpeg.
Basic workflow (lossless):
dovi_tool to convert RPU to P8.1:
dovi_tool -m 2 convert --discard
For full 12‑bit P8.4 (experimental, limited player support):
dovi_tool -m 3 convert
Only a few players (e.g., CoreELEC on AM6B+, certain LG TVs with custom firmware) support it.
dovi_tool). Best quality for playback on capable devices.This script demonstrates the backend logic using subprocess to call FFmpeg and dovi_tool.
import subprocess
import os
class DolbyVisionConverter:
def __init__(self, input_file, output_file):
self.input_file = input_file
self.output_file = output_file
self.temp_hevc = "temp_video.hevc"
self.temp_rpu = "temp_rpu.bin"
def convert_p7_to_p8(self):
try:
print(f"Starting conversion for self.input_file...")
# Step 1: Extract HEVC stream from container (MKV/MP4)
# We use ffmpeg to extract the raw video to a temporary file
cmd_extract = [
"ffmpeg", "-i", self.input_file,
"-c:v", "copy",
"-f", "hevc",
self.temp_hevc,
"-y"
]
subprocess.run(cmd_extract, check=True)
# Step 2: Extract the RPU metadata from the HEVC stream
# dovi_tool reads the stream and pulls out the RPU
cmd_rpu = ["dovi_tool", "-m", "2", "extract-rpu", self.temp_hevc, "-o", self.temp_rpu]
subprocess.run(cmd_rpu, check=True)
# Step 3: Convert the RPU from Profile 7 to Profile 8
# This edits the metadata headers to simulate P8 structure
cmd_convert = ["dovi_tool", "-m", "2", "convert", "--discard", "-o", "converted.hevc", self.temp_hevc]
# Note: In newer dovi_tool versions, 'convert' mode handles the logic automatically.
# For strict P7->P8:
cmd_convert = ["dovi_tool", "convert", "--discard", self.temp_rpu, "-o", "converted_rpu.bin"]
subprocess.run(cmd_convert, check=True)
# Step 4: Inject the new RPU back into the video stream
# We take the original base layer and inject the converted RPU
cmd_inject = ["dovi_tool", "inject-rpu", "-i", self.temp_hevc, "-o", "final_p8.hevc", "-r", "converted_rpu.bin"]
subprocess.run(cmd_inject, check=True)
# Step 5: Mux into final container (MP4 or MKV)
# We take the audio/subs from the original file and merge with new video
cmd_mux = [
"ffmpeg", "-i", "final_p8.hevc",
"-i", self.input_file,
"-map", "0:v", "-map", "1:a", "-map", "1:s?",
"-c", "copy",
"-strict", "unofficial",
self.output_file,
"-y"
]
subprocess.run(cmd_mux, check=True)
print("Conversion successful!")
return True
except subprocess.CalledProcessError as e:
print(f"Error during conversion: e")
return False
finally:
# Cleanup temp files
self._cleanup()
def _cleanup(self):
files = [self.temp_hevc, self.temp_rpu, "converted_rpu.bin", "final_p8.hevc"]
for f in files:
if os.path.exists(f):
os.remove(f)
# Usage Example
# converter = DolbyVisionConverter("movie.mkv", "movie_dv_p8.mkv")
# converter.convert_p7_to_p8()
Summary: Dolby Vision uses metadata profiles specifying how dynamic HDR metadata is packaged. Profile 7 (commonly used for HDR10 + Dolby Vision dynamic metadata, compatible with many streaming workflows) and Profile 8 (an IMF/Single-layer approach used in some deliverable workflows) differ in container, bitstream placement, and metadata embedding. Converting between them is nontrivial: it’s less a simple “rewrap” and more about repackaging metadata and ensuring compliance with Dolby’s specs and playback compatibility. Below is a practical, actionable guide covering what the profiles are, why conversion may be needed, the constraints, typical workflows, tools, and step-by-step procedures you can follow.