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 顯示,導致畫面看起來灰暗、平淡且泛白。

同一段 HDR 影片經 VLC 等媒體播放器自動色調對應——高光細節喪失、色彩偏移。
自動色調對應

由媒體播放器自動轉換

VLC 等播放器會套用自家的快速色調對應,讓畫面至少能看——通常只是粗糙的固定曲線,會裁切高光或造成色偏,並非您選定曲線後刻意執行的 BT.2390 處理。

同一段 HDR 影片透過本應用程式在 GPU 上執行的 BT.2390 色調對應正確轉換為 SDR——高光平衡、色彩準確。
真正的 BT.2390

正確的 BT.2390 色調對應

透過 libplacebo 在 GPU 上執行真正的 ITU-R BT.2390 EETF——高光滾降受控、色彩精準,輸出為適用於任何標準顯示器的真正 SDR 檔案。

Backends

三種色調對應方式,選擇適合您硬體的一種。

相同的來源影片,三種截然不同的處理流程。沒有任何東西被隱藏在「自動」按鈕之後——您選擇的後端與曲線就是實際執行的那一組。

CPU · Standard

標準 FFmpeg

經典的 tonemap 濾鏡。速度快,只要能執行 FFmpeg 的地方就能用,不需要 GPU。

  • Hable、Reinhard、Mobius 曲線
  • 專業模式新增 Linear、Gamma、Clip 及直接的「None」直通模式
GPU · Vulkan

libplacebo / BT.2390

透過 libplacebo 在 GPU 上執行真正的 ITU-R BT.2390 EETF,也就是大多數 HDR 轉 SDR 調色所依據的參考曲線。

  • 預設為 BT.2390
  • 專業模式解鎖 BT.2446A、ST2094-10、ST2094-40(HDR10+)與 Auto
Optional

HandBrakeCLI

透過 HandBrakeCLI 提供替代編碼路徑,適用於其處理流程對特定來源表現更好的情況。

  • 相同的解析度/編碼器控制項
  • 自有的進度解析方式,即時顯示於「活動」中
控制項

真正轉換所需的一切——都做對了。

圍繞著色調對應工作在實際素材上真正容易出錯的環節打造:錯誤的曲線、錯誤的編碼器,或是執行時霸佔整台機器的處理程序。

解析度預設

來源(不縮放)、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 提供——應用程式只會顯示真正支援您所選位元深度的編碼器。

專業模式

開啟完整的 CRF/CQ 範圍(0–51)、亮度偏移控制,以及額外的色調對應曲線——在您主動開啟前不會出現,不打擾介面。

硬體加速解碼

FFmpeg 後端支援 CUDA/DXVA2/VideoToolbox 解碼,讓 GPU 同時負責讀取與色調對應。

處理程序優先權與 CPU 核心

效率、平衡或效能三種模式,加上即時 CPU 核心數限制——兩者都會在開始時套用,也能在轉換執行中隨時調整,讓長時間批次作業不必鎖住整台機器。

活動與系統

可摺疊的即時記錄會串流實際的 FFmpeg/HandBrake 輸出與進度;「系統」面板會在您按下轉換前,回報系統上偵測到的項目——FFmpeg、Vulkan、HandBrakeCLI。

Windows 一鍵設定

缺少的 FFmpeg 或 HandBrakeCLI 可直接在應用程式內透過 winget 安裝——從「系統」面板,或旁邊的「快速安裝」捷徑——安裝過程會即時顯示在「活動」中。

HDR to SDR Movie Converter 圖示
Download

下載應用程式

若只想直接執行,可下載 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+執行本應用程式
PySide6基於 Qt 的使用者介面
FFmpeg (完整版/GPL 版本,含 libx264 + libx265)標準與 GPU 色調對應後端
支援 Vulkan 的 GPU 及驅動程式專用於 libplacebo/BT.2390 後端
HandBrakeCLI (選用)HandBrake 後端
psutil (選用)即時暫停/繼續、CPU 核心控制,以及 CPU/GPU 資源統計

相依套件與授權

本應用程式不隨附 FFmpeg 或 HandBrakeCLI——它們會透過 winget,直接從其作者的官方管道安裝在您自己的電腦上。

工具來源winget 套件 ID授權
FFmpeggyan.dev 完整版Gyan.FFmpegGPLv3
HandBrakeCLIHandBrake 官方版本HandBrake.HandBrake.CLIGPLv2

兩者皆為獨立的開源專案——功勞完全歸於其作者與貢獻者。本應用程式只是以獨立處理程序方式呼叫它們的圖形介面;不會修改、連結或重新散布它們的程式碼,且不論本應用程式採用 MIT 授權,兩者都各自維持自己的授權條款。想自行安裝而不使用內建安裝程式?也完全可行——應用程式只會在您的 PATH 中尋找 ffmpegffprobeHandBrakeCLI

安裝與執行

三個指令,馬上就能看到視窗畫面。

# 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. 設定解析度、編碼器與位元深度。將解析度保持為「來源」以維持原始畫面尺寸與長寬比,或選擇預設值在同一次處理中縮小畫面。
  4. 調整畫質,或啟用專業模式以取得完整 CRF/CQ 範圍與亮度偏移控制。開始轉換前,可查看即時預覽——顯示真正經色調對應處理的畫面並標示陰影/高光裁切問題——以及即時位元速率估算。
  5. 開始轉換,並在「活動」中觀看進度與即時的 FFmpeg/HandBrake 輸出。暫停/繼續、CPU 核心數限制與處理程序優先權都能在執行中隨時調整。

選擇曲線

以上皆為真實且有文件記載的 FFmpeg/libplacebo 色調對應選項——沒有任何一項是憑空捏造的。

曲線後端使用時機
BT.2390GPU預設選項——大多數 HDR 轉 SDR 調色所依循的參考 EETF
HableCPU電影風格的滾降效果,不需要 GPU
Reinhard / MobiusCPU比 Hable 更柔和的高光滾降替代選項
BT.2446AGPU · 專業面向廣播用途的 BT.2390 替代方案
ST2094-10 / ST2094-40GPU · 專業動態色調對應;ST2094-40 會在存在 HDR10+ 中繼資料時加以利用
Linear / Gamma / Clip / NoneCPU · 專業用於診斷或手動調色,非一般用途

疑難排解

「系統」面板是第一個該查看的地方——在您回報成錯誤之前,它會準確顯示偵測到的內容。

  • BT.2390(GPU)選項變灰無法選取——未偵測到支援 Vulkan 的裝置;請改用標準 FFmpeg 曲線。
  • 找不到 HandBrakeCLI 後端——此為選用項目,只有在您的 PATH 中偵測到 HandBrakeCLI 時才會出現。
  • 轉換時感覺整台機器都被佔用——將處理程序優先權調整為「效率」。
  • CPU · H.264/H.265 顯示「編碼器無法使用」——您很可能使用的是不含 libx264/libx265 的 LGPL/「essentials」版 FFmpeg。請在「系統」面板使用「安裝缺少項目(winget)」,會自動安裝完整的 GPL 版本。