View Full Version : [LaFirma Remux Forge] Windows GUI for Dolby Vision Profile 7 to 8.1


LaFirma
24th September 2026, 04:59
LaFirma Remux Forge 2.0
A Windows front-end and batch engine for converting Dolby Vision Profile 7 UHD Blu-ray remuxes (.mkv) to Profile 8.1, for direct play on TVs, streaming boxes and media servers.

The video is never re-encoded: the HEVC stream is always copied. The conversion itself is done by dovi_tool (https://github.com/quietvoid/dovi_tool) and mkvmerge (https://mkvtoolnix.download/). What the project adds is a measurement step before each conversion, so that a FEL title is not converted blindly.

Download
Installer 2.0 (direct): LaFirma_Setup_2.0.exe (https://github.com/tkt2m7g87w-netizen/LaFirma-Remux-Forge/releases/download/v2.0/LaFirma_Setup_2.0.exe)
Release notes and all versions: GitHub Releases (https://github.com/tkt2m7g87w-netizen/LaFirma-Remux-Forge/releases/latest)
Source code, changelog and documentation: GitHub repository (https://github.com/tkt2m7g87w-netizen/LaFirma-Remux-Forge)

What you need: Windows 10 or 11, 64-bit. Nothing else to install - the installer ships every tool the program uses. The only optional component is the .NET Desktop Runtime 8.0, used for subtitle OCR; the installer offers it if it is missing.


1. Profile 7 to 8.1

RPU converted with dovi_tool (mode 2). The EL is discarded, the BL is copied untouched and the RPU is re-injected with mkvmerge.
Output is single-layer BL+RPU, and the file name says so: Title .mkv
Every output is verified: duration against the source, and 10 segments decoded end to end. A file that fails is not reported as done.



[B]2. The measurement before converting
The RPU is sampled at several points across the film and the el_type field is read:

MEL - the EL carries no picture data. Nothing is lost.
FEL - the EL carries picture data. The L1 max from the RPU is then compared with the mastering display peak declared in the file:

L1 below the mastering peak: Simple FEL. The BL alone reaches what the RPU asks for.
L1 at or above the mastering peak: Complex FEL. The EL lifts brightness; once it is dropped, the RPU still asks for highlights the BL cannot deliver. Flagged as "conversion not recommended" instead of being converted silently.
No mastering peak declared: reported as unknown, not guessed.



An optional full census reads the whole RPU instead of the sample and counts the scenes whose L1 exceeds the mastering peak.

Measured on real discs:
Troy (2004) Director's Cut MEL L1 303 / master 1000 nits
Game of Thrones S08E01 Simple FEL L1 153 / master 1000 nits
Saving Private Ryan (1998) Complex FEL L1 1608 / master 1000 nits
full census: 216 of 1,124 scenes above the master (19%)


3. Limitations, stated plainly

dovi_tool mode 2 removes the FEL-specific luma/chroma mapping from the RPU; no mode recomputes L1. The per-scene L1 still describes the BL+EL composite. The program does not regenerate L1: it measures and warns.
The Simple/Complex split is a comparison against the declared mastering peak, not a measurement of the BL itself. It is an indication, not proof.
The default detection is a sample of the film, not the whole file. The full census exists for when the sample is not enough.



4. Profile 5
Not converted to 8.1, since that would require a re-encode. Remuxed to MP4 with the dvh1 sample entry, video copied, output verified by duration.


5. Audio

TrueHD / TrueHD Atmos to E-AC-3 JOC (Atmos preserved), 1152 kbps, via DeeZy (https://github.com/jessielw/DeeZy).
DTS / DTS-HD MA / DTS:X to E-AC-3 5.1/7.1, 640 kbps, via ffmpeg (https://ffmpeg.org/). DTS:X objects are not carried over.
E-AC-3, AC-3 and AAC are left untouched.



6. Subtitles (Brazilian Portuguese only)
PT-BR PGS subtitles are converted to SRT by OCR (PgsToSrt (https://github.com/Tentacule/PgsToSrt) + Tesseract (https://github.com/tesseract-ocr/tesseract)), corrected against a PT-BR dictionary and graded by the share of unreadable blocks. The original PGS track is kept. Other languages are left as they are.


7. Batch
Single files or whole seasons, automatic or with per-track manual choice. Disk space is simulated for the whole queue, per drive, before anything starts.

Tools in this build: dovi_tool 2.3.3 (2.3.3 or newer is required for export --levels), mkvmerge 102.0, ffmpeg 9.0.1, MediaInfo CLI 26.05.


8. Credits and references
The heavy lifting is other people's work, and the EL/L1 reasoning stands on what this community has already measured and published:

dovi_tool (https://github.com/quietvoid/dovi_tool) by quietvoid - RPU conversion, extraction and the export --levels data every measurement here is built on.
DoVi_Scripts (https://github.com/R3S3t9999/DoVi_Scripts) by R3S3t9999 (thread (https://forum.doom9.org/showthread.php?t=185317)) - the reference for full FEL processing.
DDVT (https://github.com/DonaldFaQ/DDVT) by DonaldFaQ (thread (https://forum.doom9.org/showthread.php?t=183479)) - RPU demuxing, injecting and editing.
DoViBaker (https://github.com/erazortt/DoViBaker) by erazortt - combines BL, EL and RPU into the final picture; the proof that what the EL adds can be seen, not assumed.
Measured brightness by title (madVR) (https://docs.google.com/spreadsheets/d/15i0a84uiBtWiHZ5CXZZ7wygLFXwYOd84/) - community spreadsheet with CLL, FALL and peaks measured frame by frame from the decoded picture.
Players and MEL/FEL support (https://docs.google.com/spreadsheets/d/1Uyuw_1dADsRw7u1LGW6qTSZDLLNXWVK82gmHX7L6M3I/) - community device list with a dedicated Dolby Vision MEL/FEL column.
FEL vs BL comparisons (https://drive.google.com/drive/folders/1FS42T95TOSpoy4xtwUBIQmziCe_R_IKe) - side-by-side comparisons of what the enhancement layer adds.
MKVToolNix (https://mkvtoolnix.download/), FFmpeg (https://ffmpeg.org/), DeeZy (https://github.com/jessielw/DeeZy), PgsToSrt (https://github.com/Tentacule/PgsToSrt) and Tesseract (https://github.com/tesseract-ocr/tesseract).



9. Screenshots

Folder analysis (https://ibb.co/DH9bgRFs) - queue, Dolby Vision profile and MEL/FEL verdict for each file.
Auto mode (https://ibb.co/b8P1tQz) - track mapping decided by the program.
Manual mode (https://ibb.co/dsVNMg4x) - keep, convert or drop each audio and subtitle track.
Conversion in progress (1) (https://ibb.co/qLMbpcPK) - current stage, progress and time estimate.
Conversion in progress (2) (https://ibb.co/jPcFyMbJ) - later stages of the same conversion.
Final summary (https://ibb.co/TDfntRDM) - what was done to each file, and the verification result.



10. Why this exists
This started as a tool for my own library. Preparing each remux by hand - checking the layer, converting the RPU, fixing the audio, sorting out subtitles - was taking hours I no longer wanted to spend, so I automated it for myself. Once it worked reliably, sharing it felt like the right thing to do.

There is nothing behind it: no ads, no donations, no paid version. It is free, the source is open, and it will stay that way.

The code was written with AI assistance. The testing, the measurements and every decision were made on real discs and real hardware, one film at a time. If it saves you some of the time it saved me, it has done its job.

Download: LaFirma_Setup_2.0.exe (https://github.com/tkt2m7g87w-netizen/LaFirma-Remux-Forge/releases/download/v2.0/LaFirma_Setup_2.0.exe) · GitHub repository (https://github.com/tkt2m7g87w-netizen/LaFirma-Remux-Forge) · Bug reports and feedback: GitHub Issues (https://github.com/tkt2m7g87w-netizen/LaFirma-Remux-Forge/issues) or here in the thread.