Convert Dolby Vision Profile 7 MKV files to Profile 8.1 for universal playback compatibility.
Most streaming devices (Apple TV, Shield, Amazon Fire*, etc.) don't support Profile 7's Enhancement Layer. They either fall back to HDR10 or blindly strip the layer, potentially ruining the picture.
dovi_convert analyzes files first, converts only what's safe, and preserves dynamic metadata for correct Dolby Vision playback.
Major Breaking Changes:
- Complete rewrite of the CLI interface (argument parsing and syntax).
- Merged
batchandconvertinto a new, unifiedconvertcommand. It now handles both single file and batch conversions of entire directories.
Make sure to read the Changelog for full details.
Important
Reading the documentation before you begin is highly recommended.
Full documentation, guides, and command reference:
- macOS (tested on macOS 26)
- Linux (any modern distribution)
- Windows (via WSL2 or Docker)
- Python 3.8+
- ffmpeg, mkvtoolnix, mediainfo, dovi_tool
Missing dependencies are detected and can be installed automatically.
Homebrew (macOS/Linux):
brew install dovi_convertManual Installation:
curl -sSLO https://github.com/cryptochrome/dovi_convert/releases/latest/download/dovi_convert.py
chmod +x dovi_convert.py && sudo mv dovi_convert.py /usr/local/bin/dovi_convertdocker run -d \
--name=dovi_convert \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Europe/Berlin \
-p 7681:7681 \
-v /path/to/media:/data \
--restart unless-stopped \
cryptochrome/dovi_convert:latestservices:
dovi_convert:
image: cryptochrome/dovi_convert:latest
container_name: dovi_convert
environment:
- PUID=1000 # Change to required User ID, if needed
- PGID=1000 # Change to required Group ID, if needed
- TZ=Europe/Berlin # Change to your timezone
volumes:
- /path/to/media:/data # Change to your media directory
ports:
- 7681:7681 # Change left port to your desired port (e. g. 8080:7681)
restart: unless-stoppedAccess the web terminal at http://<your-docker-host>:7681.
dovi_convert scan # Analyze files in current directory
dovi_convert convert Movie.mkv # Convert a single file
dovi_convert convert /path/to/media # Batch convert directory- Not all Profile 7 files should be converted. Some use the Enhancement Layer for brightness expansion, which causes incorrect tone mapping if removed.
- The tool detects these "Complex FEL" files and skips them by default. Don't use
--forceunless you understand the consequences. - FEL can also contain film grain, noise, and color data. Retaining this data during conversion requires re-encoding, which is out of scope. Your player can't decode FEL anyway, so this data is already inaccessible. You do retain the Dolby Vision dynamic metadata (RPU).
- Original files are backed up automatically. The
--deleteflag removes them permanently. - Read Before You Start for the full explanation.
- CHANGELOG.md - Version history
- ROADMAP.md - Planned features
- dovi_tool by quietvoid
- dovi_scripts by R3S3t9999 - for inspiration and knowledge (the OG)
- FFmpeg
- MKVToolNix
- MediaInfo