14 Free HDR Screenshot Tone Mapping and ffmpeg Steam Capture Tools (2026)

14 Free HDR Screenshot Tone Mapping and ffmpeg Steam Capture Tools (2026)

<span style="font-weight: 600;">December 2026 winter capsule refreshes</span> reuse the same <span style="font-weight: 600;">HDR masters</span> the team lit for the game—then a naive PNG export bakes <span style="font-style: italic;">false bloom</span> and <span style="font-style: italic;">gradient banding</span> into the 616×353 store capsule, and CTR drops before anyone notices. This bookmark stack separates <span style="font-weight: 600;">tone-mapping engines</span> (ffmpeg zscale, DaVinci) from <span style="font-weight: 600;">dithering and quantize CLIs</span> (ffmpeg palettegen, ImageMagick), then gates a repeatable <span style="font-style: italic;">winter_capsule_tone_receipt_v1.json</span> / <span style="font-style: italic;">screenshot_tone_receipt_v1.json</span> so every capsule downscale is proven, not eyeballed.<br><span style="color: #6366f1; font-weight: 600;">Beginner start:</span> ImageMagick histogram + the winter downscale art pass; <span style="color: #059669; font-weight: 600;">Developer path:</span> ffmpeg <span style="font-style: italic;">zscale=tonemap</span> → <span style="font-style: italic;">palettegen/paletteuse</span> dither → <span style="font-style: italic;">ffprobe</span> bit-depth proof → jq receipt gate before locking capsule assets.

FFmpeg

Official Tool

Core HDR-to-SDR enginezscale + tonemap converts BT.2020/PQ masters to clean Rec.709 store frames without clipped highlights.
CTA: tone-map before you downscale to 616×353, never after

Tone-map filter referencetonemap=hable / mobius and zscale primaries/transfer options that decide whether bloom survives.
Pro tip: compare hable vs reinhard on the brightest frame first

Banding killer—generate a per-image palette then apply dither=bayer / sierra2_4a so smooth skies stop posterizing after downscale.
Order: tonemap → dither → export

ffprobe

CLI Tool

Bit-depth proof—read pix_fmt, color primaries, and transfer of the source so 8-bit vs 16-bit is a receipt field, not a guess.
Gate: record source_pix_fmt in the tone receipt

ImageMagick

Official Tool

Histogram + quantize toolkit-format %[histogram] and -colors reveal banding before you ship; -dither FloydSteinberg smooths gradients.
Beginner: run a histogram diff pre/post regrade

Flag reference-dither, -colors, -depth, and -resize so the capsule downscale is scriptable and identical every refresh.
Pro tip: pin the exact resize filter (Lanczos) in the receipt

Node-based HDR tone map—free edition includes color-managed HDR→SDR and a Resolve HDR Tone Mapping node for the reference master before ffmpeg export.
Use for: hero capsules that need eyes-on grading

Capsule dimension contract—header, small, and library capsule sizes so your tone-mapped export lands at the right pixels (616×353 header capsule).
Fail when: banding only appears after the store downscale

Authoritative tone-mapping reference—the EOTF and tone-mapping math behind why naive HDR clipping bakes false bloom into SDR captures.
Read when: choosing a tone-map curve, not copying presets blind

December art pass narrative—how to downscale winter HDR masters without false bloom, step by step, with the tone receipt spine.
Format ladder: blog = art pass; this list = tool bookmarks

Three-swatch safe-zone cross-check—lock a capsule palette so tone-mapping keeps brand colors and the sale sticker stays readable.
Pair with: ImageMagick histogram before palette lock

Recovery help—diagnose and fix banding that only shows after the 616×353 downscale following an HDR regrade.
Run: the 616×353 squint test from this help page

BUILD_RECEIPT milestone—promote screenshot_tone_receipt_v1.json after DaVinci HDR→SDR tone map and SDR Steam capture.
Cousin schema: winter_capsule_tone_receipt_v1

Downstream QA hub—once capsules pass the tone receipt, run the store-page QA list so localized capsules and captions ship clean too.
Order: tone map → capsule QA → localization freeze