FFmpegとHandBrakeに対応し、豊富なカーブ選択とGPU上での本物のBT.2390を備えたデスクトップ・トーンマッピングツール。10-bitと12-bit出力も無料で搭載。
映画が実際にどう見えるかは、まったく処理していないか、メディアプレーヤー独自の簡易的な推測か、本物のBT.2390処理かによって、まったく変わってきます。
HDRを理解しないディスプレイやプロジェクターで手を加えていないHDRファイルを再生すると、PQ/HLGカーブがSDRであるかのように表示されるため、全体が灰色で平坦、色あせて見えます。
VLCのようなプレーヤーは、再生を最低限見られるようにするために独自の簡易トーンマッピングを適用します — 通常は、あなたが選んだカーブによる意図的なBT.2390処理ではなく、ハイライトを潰したり色をずらしたりする大雑把な固定カーブです。
libplacebo経由でGPU上で実行される本物のITU-R BT.2390 EETF — ハイライトのロールオフを制御し、正確な色で、あらゆる標準ディスプレイで再生できる本物のSDRファイルとして出力します。
同じソース映像に対して、本当に異なる3つのパイプライン。「自動」ボタンの裏に何かが隠されることはありません — 選んだバックエンドとカーブがそのまま実行されます。
定番のtonemapフィルター。高速で、FFmpegが動く環境ならどこでも使え、GPUも不要です。
libplacebo経由でGPU上に本物のITU-R BT.2390 EETFを実行 — 多くのHDR→SDRグレーディングの基準となっているのと同じカーブです。
特定のソースにおいて自身のパイプラインの方が良い結果になる場合のための、HandBrakeCLIによる代替エンコード経路。
実際の映像でトーンマッピング作業がうまくいかなくなる要因 — 誤ったカーブ、誤ったエンコーダー、実行中にマシン全体を占有してしまうプロセス — を中心に設計されています。
Source(拡大縮小なし)、4K、1440p、1080p、720p、480p。スケーリングは高さ基準で、幅は自動的に計算されるため、ソースのアスペクト比が引き伸ばされることはありません。
ソースを選ぶとすぐに読み込まれます — 伝達特性、ビット深度、長さ、HDR10+/Dolby Visionメタデータ — そのファイルに合わせたカーブが提案されます。SDR出力パスも自動的に入力され、ウィンドウへの動画ファイルのドラッグ&ドロップは「参照」ボタンと同じように機能します。
設定を変更するたびに更新される、ソースから実際にデコード・トーンマッピングされたフレーム。シャドウ/ハイライトのクリッピングチェック付きで、ディテールを潰すカーブをフルエンコード前に発見できます。全画面表示や、フレームをそのままディスクに保存することも可能です。
画質、解像度、エンコーダーの変更に応じて自動的に更新されるため、意外なCRF/解像度の組み合わせも「開始」を押す前に確認できます。
任意のトーンマッピングカーブにカーソルを合わせると、実際のトレードオフについてのわかりやすい説明が表示されます — マーケティング文句ではありません。
CPU上のx264/x265、またはNVIDIA NVENC、AMD AMF、Apple VideoToolboxによるハードウェアエンコード(H.264またはH.265)。
無料、ライセンス不要、別ビルドも不要。10-bitは任意のH.265エンコーダー(CPUまたはハードウェア)で動作し、12-bitはCPU上のlibx265経由で利用可能 — アプリは選択したビット深度を実際にサポートするエンコーダーのみを表示します。
CRF/CQの全範囲(0〜51)、明るさオフセット調整、追加のトーンマッピングカーブを開放 — 必要になるまでは表に出てきません。
FFmpegバックエンド向けのCUDA/DXVA2/VideoToolboxデコードにより、読み込みとトーンマッピングの両方をGPUが担当します。
Efficiency、Balanced、Performance、さらにリアルタイムのCPUコア数制限 — どちらも開始時に適用され、変換実行中でも調整可能なので、長時間のバッチ処理でマシンの他の作業が止まることはありません。
折りたたみ可能なライブログには実際のFFmpeg/HandBrakeの出力と進捗が表示され、システムパネルでは変換前にマシン上で検出されたもの — FFmpeg、Vulkan、HandBrakeCLI — が報告されます。
不足しているFFmpegやHandBrakeCLIは、アプリ内からwinget経由でインストールできます — システムパネル、またはその隣にある「クイックインストール」ショートカットから実行でき、インストール出力は「アクティビティ」にリアルタイム表示されます。
とにかく実行したいならWindows版ビルド、macOS/Linuxを使っているか先にコードを読みたいならソースコードをどうぞ。
単一ファイルのビルドで、Pythonは不要です。FFmpegは別途必要です — またはアプリ内からwinget経由でインストールできます。
常に最新リリース · Windows 10/11
Python 3.10以上とpip install -r requirements.txtが必要です。Windows、macOS、Linuxで動作します。
MITライセンス · mainブランチ
このアプリは単一のPySide6スクリプトです。インストーラーもバックグラウンドサービスもありません — 実行すると、直接FFmpeg(オプションでHandBrakeCLI)を呼び出します。
起動前にマシンに用意しておく必要があるもの。
| コンポーネント | 必要な理由 |
|---|---|
| Python 3.10+ | アプリ自体の実行 |
| PySide6 | Qtベースのユーザーインターフェース |
| FFmpeg | 標準およびGPUトーンマッピングのバックエンド |
| Vulkan対応GPU + ドライバー | 特にlibplacebo/BT.2390バックエンド |
| HandBrakeCLI (オプション) | HandBrakeバックエンド |
| psutil (オプション) | リアルタイムの一時停止/再開、CPUコア制御、CPU/GPUリソース統計 |
3つのコマンドで、すぐにウィンドウが表示されます。
# 1. スクリプトとそのPython依存関係を取得 pip install PySide6 psutil # 2. FFmpegがPATHに含まれているか確認 ffmpeg -version # 3. 起動 python hdr_to_sdr_gui_qt.py
HDRソースファイルからSDR出力まで。
ここに挙げたものはすべて、実在してドキュメント化されたFFmpeg/libplaceboのトーンマッピングオプションです — 架空のものは一つもありません。
| カーブ | バックエンド | 使うべき場面 |
|---|---|---|
| BT.2390 | GPU | デフォルトの選択 — 多くのHDR→SDRグレーディングが目標とする基準EETF |
| Hable | CPU | フィルム的なロールオフ、GPU不要 |
| Reinhard / Mobius | CPU | Hableよりも柔らかいハイライトロールオフの代替 |
| BT.2446A | GPU · Pro | BT.2390に代わる放送向けの選択肢 |
| ST2094-10 / ST2094-40 | GPU · Pro | 動的トーンマッピング。ST2094-40は存在する場合HDR10+メタデータを使用 |
| Linear / Gamma / Clip / None | CPU · Pro | 診断用または手動グレーディング用のパスで、通常使用向けではありません |
まず確認すべきはシステムパネルです — バグとして報告する前に、実際に何が検出されたかを正確に示してくれます。