for i in 01..08; do ffmpeg -i "The.Penguin.S01E$i.mkv" \ -c:v libx265 -preset slower -crf 18 \ -pix_fmt yuv420p10le \ -x265-params "hdr10=1:repeat-headers=1" \ -c:a libopus -b:a 192k \ "Penguin.S01E$i.x265.mkv" done Add -ss 00:00:00 -t 00:01:00 to encode a 1-minute test clip first. After encoding, verify with:
ffmpeg -i input.mkv -map 0:a:0 -c:a copy atmos.thd # keep TrueHD ffmpeg -i atmos.thd -c:a eac3 -b:a 768k atmos.eac3 # create DD+ for compatibility For lossy but efficient: -c:a libopus -b:a 192k -vbr on -application audio Using a simple bash loop: the penguin s01 ffmpeg
# Step 1: Extract RPU dovi_tool -m 2 extract-rpu input.hevc ffmpeg -i input.mkv -c:v libx265 ... -f hevc - | dovi_tool inject-rpu -i - --rpu-in RPU.bin -o output.hevc for i in 01
For release groups: automate with mkvmerge for chapter/subs passthrough and dovi_tool for Dolby Vision. For home users: tdarr or unmanic can integrate these FFmpeg commands into a watch folder. For home users: tdarr or unmanic can integrate
# Compare VMAF (requires libvmaf) ffmpeg -i reference.mkv -i encoded.mkv -lavfi "[0:v][1:v]libvmaf=model=version=vmaf_v0.6.1" -f null - ffmpeg -i encoded.mkv -vf "showinfo" -f null - 2>&1 | grep "Mastering"