Программа для тон-маппинга с поддержкой FFmpeg и HandBrake, широким выбором кривых и настоящим BT.2390 на GPU. Вывод 10-bit и 12-bit включён бесплатно.
То, как на самом деле выглядит фильм, полностью зависит от способа обработки — без конвертации вообще, через быструю догадку медиаплеера или через настоящий проход BT.2390.
Воспроизведение нетронутого HDR-файла на экране или проекторе, который не понимает HDR — кривая PQ/HLG показывается так, будто это SDR, поэтому всё выглядит серым, плоским и блёклым.
Такие плееры, как VLC, применяют собственный быстрый тон-маппинг, чтобы видео было хоть как-то смотрибельно — обычно это грубая фиксированная кривая, которая обрезает светлые участки или искажает цвет, а не осознанный проход BT.2390 с выбранной вами кривой.
Настоящая функция ITU-R BT.2390 EETF, выполняемая на GPU через libplacebo — контролируемый спад светлых участков и точный цвет, вывод в виде настоящего SDR-файла, готового для любого стандартного экрана.
Один и тот же исходный файл, три по-настоящему разных конвейера обработки. Ничего не скрыто за кнопкой «авто» — запускается именно тот бэкенд и кривая, которые вы выбрали.
Классический фильтр tonemap. Быстрый, работает везде, где есть FFmpeg, GPU не требуется.
Запускает настоящую функцию ITU-R BT.2390 EETF на GPU через libplacebo — ту же эталонную кривую, вокруг которой строится большинство профессиональных грейдов HDR-в-SDR.
Альтернативный путь кодирования через HandBrakeCLI для случаев, когда его собственный конвейер работает лучше на конкретном источнике.
Построено вокруг тех моментов тон-маппинга, которые реально идут не так на реальном видео: не та кривая, не тот кодек, или процесс, забирающий себе всю машину во время работы.
Source (без масштабирования), 4K, 1440p, 1080p, 720p или 480p. Масштабирование идёт по высоте, ширина считается автоматически, поэтому пропорции источника никогда не растягиваются.
Выберите источник — и он сразу считывается: характеристики передачи, глубина цвета, длительность, метаданные HDR10+/Dolby Vision — с предложенной кривой именно для этого файла. Путь для SDR-файла заполняется автоматически, а перетаскивание видеофайла на окно работает так же, как кнопка «Обзор».
Настоящий декодированный и тон-маппированный кадр из вашего источника, обновляющийся при изменении настроек, с проверкой обрезки теней/светов — чтобы заметить потерю деталей ещё до полной кодировки. Можно посмотреть в полный размер или сохранить кадр на диск.
Обновляется автоматически при изменении качества, разрешения или кодека, так что неожиданная комбинация CRF/разрешения видна ещё до нажатия «Старт».
Наведите курсор на любую кривую тон-маппинга, чтобы увидеть простое объяснение реальных компромиссов — без маркетинговых формулировок.
x264/x265 на CPU или аппаратное кодирование через NVIDIA NVENC, AMD AMF или Apple VideoToolbox, в форматах H.264 или H.265.
Бесплатно, без лицензии, без отдельной сборки. 10-bit работает с любым кодеком H.265 (CPU или аппаратным); 12-bit доступен через libx265 на CPU — приложение показывает только те кодеки, которые реально поддерживают выбранную глубину цвета.
Открывает полный диапазон CRF/CQ (0–51), регулировку смещения яркости и дополнительные кривые тон-маппинга — всё это скрыто, пока не понадобится.
Декодирование через CUDA / DXVA2 / VideoToolbox для бэкенда FFmpeg, так что 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-бэкенда тон-маппинга |
| GPU с поддержкой Vulkan + драйверы | Именно бэкенда libplacebo/BT.2390 |
| HandBrakeCLI (опционально) | Бэкенда HandBrake |
| psutil (опционально) | Пауза/возобновление в реальном времени, управление ядрами CPU и статистика ресурсов CPU/GPU |
Три команды — и вы уже смотрите на окно приложения.
# 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 | Выбор по умолчанию — эталонная EETF, на которую ориентируется большинство грейдов HDR-в-SDR |
| 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 | Диагностические или ручные проходы для грейдинга, не для повседневного использования |
Панель «Система» — первое, куда стоит заглянуть: она точно показывает, что было обнаружено, прежде чем сообщать об этом как о баге.