HDR to SDR Movie Converter のロゴ HDR to SDR Movie Converter
FFmpeg · libplacebo/Vulkan · HandBrakeCLI

どんな画面でもHDR画面に変えられます。おばあちゃんでも使えるほどシンプルです。

FFmpegとHandBrakeに対応し、豊富なカーブ選択とGPU上での本物のBT.2390を備えたデスクトップ・トーンマッピングツール。10-bitと12-bit出力も無料で搭載。

HDR to SDR Movie Converterのアプリ画面。左側にファイル、ソース解析、進捗、コントロール、右側に変換設定が表示されています。
重要な理由

同じソース、異なる結果

映画が実際にどう見えるかは、まったく処理していないか、メディアプレーヤー独自の簡易的な推測か、本物のBT.2390処理かによって、まったく変わってきます。

HDR非対応のディスプレイでそのまま再生された未加工のHDR映像 — 色あせて平坦、コントラストの低い画質。
変換なし

未加工のHDR、変換なし

HDRを理解しないディスプレイやプロジェクターで手を加えていないHDRファイルを再生すると、PQ/HLGカーブがSDRであるかのように表示されるため、全体が灰色で平坦、色あせて見えます。

VLCなどのメディアプレーヤーによって自動トーンマッピングされた同じHDR映像 — ハイライトが潰れ、色がずれています。
自動トーンマッピング

メディアプレーヤーによる自動変換

VLCのようなプレーヤーは、再生を最低限見られるようにするために独自の簡易トーンマッピングを適用します — 通常は、あなたが選んだカーブによる意図的なBT.2390処理ではなく、ハイライトを潰したり色をずらしたりする大雑把な固定カーブです。

このアプリのBT.2390 GPUトーンマッピングによって正しくSDRに変換された同じHDR映像 — ハイライトのバランスが取れ、色も正確です。
本物のBT.2390

適切なBT.2390トーンマッピング

libplacebo経由でGPU上で実行される本物のITU-R BT.2390 EETF — ハイライトのロールオフを制御し、正確な色で、あらゆる標準ディスプレイで再生できる本物のSDRファイルとして出力します。

バックエンド

3通りのトーンマッピング。お使いのハードウェアに合うものを選んでください。

同じソース映像に対して、本当に異なる3つのパイプライン。「自動」ボタンの裏に何かが隠されることはありません — 選んだバックエンドとカーブがそのまま実行されます。

CPU・標準

標準FFmpeg

定番のtonemapフィルター。高速で、FFmpegが動く環境ならどこでも使え、GPUも不要です。

  • Hable、Reinhard、Mobiusカーブ
  • Proモードでは Linear、Gamma、Clip、直接パスの「None」を追加
GPU・Vulkan

libplacebo / BT.2390

libplacebo経由でGPU上に本物のITU-R BT.2390 EETFを実行 — 多くのHDR→SDRグレーディングの基準となっているのと同じカーブです。

  • デフォルトはBT.2390
  • Proモードで BT.2446A、ST2094-10、ST2094-40(HDR10+)、Autoを解放
オプション

HandBrakeCLI

特定のソースにおいて自身のパイプラインの方が良い結果になる場合のための、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・12-bit出力

無料、ライセンス不要、別ビルドも不要。10-bitは任意のH.265エンコーダー(CPUまたはハードウェア)で動作し、12-bitはCPU上のlibx265経由で利用可能 — アプリは選択したビット深度を実際にサポートするエンコーダーのみを表示します。

Proモード

CRF/CQの全範囲(0〜51)、明るさオフセット調整、追加のトーンマッピングカーブを開放 — 必要になるまでは表に出てきません。

ハードウェアアクセラレーテッドデコード

FFmpegバックエンド向けのCUDA/DXVA2/VideoToolboxデコードにより、読み込みとトーンマッピングの両方をGPUが担当します。

プロセス優先度とCPUコア

Efficiency、Balanced、Performance、さらにリアルタイムのCPUコア数制限 — どちらも開始時に適用され、変換実行中でも調整可能なので、長時間のバッチ処理でマシンの他の作業が止まることはありません。

アクティビティとシステム

折りたたみ可能なライブログには実際のFFmpeg/HandBrakeの出力と進捗が表示され、システムパネルでは変換前にマシン上で検出されたもの — FFmpeg、Vulkan、HandBrakeCLI — が報告されます。

Windowsでのワンクリックセットアップ

不足しているFFmpegやHandBrakeCLIは、アプリ内からwinget経由でインストールできます — システムパネル、またはその隣にある「クイックインストール」ショートカットから実行でき、インストール出力は「アクティビティ」にリアルタイム表示されます。

HDR to SDR Movie Converter アイコン
ダウンロード

アプリを入手する

とにかく実行したいならWindows版ビルド、macOS/Linuxを使っているか先にコードを読みたいならソースコードをどうぞ。

Windows

Windows(.exe)

単一ファイルのビルドで、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+アプリ自体の実行
PySide6Qtベースのユーザーインターフェース
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
Windows: FFmpegやHandBrakeCLIが見つからない場合は、手動でインストールする代わりに、システムパネルを開いて「不足分をインストール(winget)」を使用してください。

基本的なワークフロー

HDRソースファイルからSDR出力まで。

  1. ソースファイルを選択します。 FFmpegが読み込めるあらゆるHDRコンテナに対応 — 解析は自動的に行われ(伝達関数、ビット深度、HDR10+/Dolby Visionメタデータ、提案されたカーブ)、SDR出力パスも自動入力されます。ファイルをウィンドウにドラッグするのは「参照」ボタンと同じ動作です。
  2. バックエンドとカーブを選択します。 GPU上のBT.2390が無難なデフォルトです。Vulkan対応GPUがない場合は標準FFmpegに切り替えてください。任意のカーブにカーソルを合わせると実際のトレードオフが確認できます。
  3. 解像度、エンコーダー、ビット深度を設定します。 解像度を「Source」のままにすると元のフレームサイズとアスペクト比が維持されます。同じ処理の中で縮小したい場合はプリセットを選んでください。
  4. 画質を調整するか、Proモードを有効にします CRF/CQの全範囲と明るさオフセットが使えます。確定前にライブプレビューを確認してください — 実際にトーンマッピングされたフレームが表示され、シャドウ/ハイライトのクリッピングが示されます — リアルタイムのビットレート推定も確認できます。
  5. 変換します。「アクティビティ」で進捗と実際のFFmpeg/HandBrakeの出力を確認できます。一時停止/再開、CPUコアの制限、プロセス優先度は実行中いつでも調整できます。

カーブの選び方

ここに挙げたものはすべて、実在してドキュメント化されたFFmpeg/libplaceboのトーンマッピングオプションです — 架空のものは一つもありません。

カーブバックエンド使うべき場面
BT.2390GPUデフォルトの選択 — 多くのHDR→SDRグレーディングが目標とする基準EETF
HableCPUフィルム的なロールオフ、GPU不要
Reinhard / MobiusCPUHableよりも柔らかいハイライトロールオフの代替
BT.2446AGPU · ProBT.2390に代わる放送向けの選択肢
ST2094-10 / ST2094-40GPU · Pro動的トーンマッピング。ST2094-40は存在する場合HDR10+メタデータを使用
Linear / Gamma / Clip / NoneCPU · Pro診断用または手動グレーディング用のパスで、通常使用向けではありません

トラブルシューティング

まず確認すべきはシステムパネルです — バグとして報告する前に、実際に何が検出されたかを正確に示してくれます。

  • BT.2390(GPU)オプションがグレーアウトしている — Vulkan対応デバイスが検出されませんでした。代わりに標準FFmpegのカーブを使用してください。
  • HandBrakeCLIバックエンドが表示されない — これはオプションであり、PATH上でHandBrakeCLIが見つかった場合のみ表示されます。
  • 変換がマシン全体を占有しているように感じる — プロセス優先度をEfficiencyに下げてください。