Logotipo do HDR to SDR Movie Converter HDR to SDR Movie Converter
FFmpeg · libplacebo/Vulkan · HandBrakeCLI

Transforme qualquer tela em uma tela HDR. Simples o bastante para a vovó.

Uma ferramenta de desktop para tone mapping com suporte a FFmpeg e HandBrake, uma ampla variedade de curvas, e BT.2390 real na GPU. Saída de 10 e 12 bits incluída, de graça.

Janela do app HDR to SDR Movie Converter mostrando Arquivos, análise da fonte, progresso e controles à esquerda, e ajustes de conversão à direita.
Por que isso importa

Mesma fonte — resultados diferentes

A aparência real do filme depende inteiramente de como isso é feito — sem conversão alguma, com o palpite rápido de um player de mídia, ou com um verdadeiro processamento BT.2390.

Vídeo HDR bruto reproduzido em uma tela sem suporte a HDR — imagem lavada, achatada, de baixo contraste.
Sem conversão

HDR bruto, sem conversão

Reproduzir um arquivo HDR intocado em uma tela ou projetor que não entende HDR — a curva PQ/HLG é exibida como se fosse SDR, então tudo parece cinza, achatado e lavado.

O mesmo vídeo HDR com tone mapping automático de um player de mídia como o VLC — realces estourados, cor deslocada.
Tone map automático

Auto-convertido por um player de mídia

Players como o VLC aplicam seu próprio tone mapping rápido para tornar a reprodução ao menos assistível — geralmente uma curva fixa e grosseira que estoura os realces ou desloca a cor, não um processamento BT.2390 deliberado com uma curva escolhida por você.

O mesmo vídeo HDR corretamente convertido para SDR com o tone mapping BT.2390 na GPU deste app — realces equilibrados e cor precisa.
BT.2390 real

Tone mapping BT.2390 correto

A verdadeira EETF ITU-R BT.2390, executada na GPU via libplacebo — queda de realces controlada e cor precisa, com saída como um arquivo SDR real, pronto para qualquer tela padrão.

Motores

Três formas de fazer tone mapping. Escolha a que combina com seu hardware.

O mesmo vídeo de origem, três pipelines genuinamente diferentes. Nada fica escondido atrás de um botão "auto" — o motor e a curva escolhidos são exatamente os que rodam.

CPU · Padrão

FFmpeg padrão

O clássico filtro tonemap. Rápido, funciona em qualquer lugar onde o FFmpeg funciona, sem precisar de GPU.

  • Curvas Hable, Reinhard, Mobius
  • O modo Pro adiciona Linear, Gamma, Clip, e um passe direto "None"
GPU · Vulkan

libplacebo / BT.2390

Executa a verdadeira EETF ITU-R BT.2390 na GPU via libplacebo, a mesma curva de referência em torno da qual a maioria das gradações de HDR para SDR é construída.

  • BT.2390 por padrão
  • O modo Pro desbloqueia BT.2446A, ST2094-10, ST2094-40 (HDR10+), e Auto
Opcional

HandBrakeCLI

Um caminho de codificação alternativo via HandBrakeCLI para casos em que seu próprio pipeline se comporta melhor em uma determinada fonte.

  • Mesmos controles de resolução/codificador
  • Análise de progresso própria, mostrada ao vivo em Atividade
Recursos

Tudo o que uma conversão de verdade precisa — feito direito.

Construído em torno das partes de um trabalho de tone mapping que realmente dão errado com material real: a curva errada, o codificador errado, ou um processo que toma conta da máquina inteira enquanto roda.

Predefinições de resolução

Source (sem escalonamento), 4K, 1440p, 1080p, 720p, ou 480p. O escalonamento é guiado pela altura, com a largura calculada automaticamente para que a proporção da fonte nunca seja esticada.

Analisa automaticamente

Escolha uma fonte e ela é lida imediatamente — características de transferência, profundidade de bits, duração, metadados HDR10+/Dolby Vision — com uma curva sugerida para aquele arquivo específico. O caminho de saída SDR é preenchido para você, e arrastar um arquivo de vídeo para a janela funciona igual ao botão Procurar.

Prévia ao vivo

Um quadro real, decodificado e com tone mapping aplicado, da sua fonte, atualizado conforme você muda os ajustes, com uma verificação de corte de sombras/realces para que uma curva que destrói detalhes apareça antes da codificação completa. Veja em tamanho real ou salve o quadro direto no disco.

Estimativa de bitrate ao vivo

Atualiza automaticamente conforme mudam qualidade, resolução, ou codificador, para que uma combinação surpreendente de CRF/resolução seja visível antes de clicar em Iniciar.

Dicas das curvas

Passe o mouse sobre qualquer curva de tone mapping para uma explicação clara de suas reais compensações — nada de texto de marketing.

Escolha de codificador

x264/x265 na CPU, ou codificação por hardware via NVIDIA NVENC, AMD AMF, ou Apple VideoToolbox, em H.264 ou H.265.

Saída de 10 e 12 bits

Grátis, sem necessidade de licença, sem build separado. 10 bits funciona com qualquer codificador H.265 (CPU ou hardware); 12 bits está disponível via libx265 na CPU — o app só mostra codificadores que realmente suportam a profundidade escolhida.

Modo Pro

Abre toda a faixa de CRF/CQ (0–51), um controle de deslocamento de brilho, e as curvas de tone mapping extras — fora do caminho até que você precise delas.

Decodificação acelerada por hardware

Decodificação CUDA / DXVA2 / VideoToolbox para o motor FFmpeg, para que a GPU cuide tanto da leitura quanto do tone mapping.

Prioridade do processo & núcleos de CPU

Eficiência, Equilibrado, ou Desempenho, mais um limite de núcleos de CPU ao vivo — ambos aplicados ao iniciar e ajustáveis enquanto uma conversão está em andamento, para que um lote longo não trave o resto da sua máquina.

Atividade & Sistema

Um log ao vivo recolhível transmite a saída real do FFmpeg/HandBrake e o progresso; um painel Sistema informa o que foi detectado no seu computador — FFmpeg, Vulkan, HandBrakeCLI — antes de converter.

Configuração em um clique no Windows

O FFmpeg ou HandBrakeCLI ausente é instalado via winget de dentro do app — pelo painel Sistema, ou o atalho "Instalação rápida" logo ao lado — com a saída da instalação transmitida em Atividade.

Ícone do HDR to SDR Movie Converter
Baixar

Obter o aplicativo

Um build para Windows se você só quer rodá-lo, ou o código-fonte se estiver no macOS/Linux ou quiser ler o código primeiro.

Windows

Windows (.exe)

Build em arquivo único, sem necessidade de Python. O FFmpeg ainda é necessário separadamente — ou instale-o pelo app via winget.

Sempre a versão mais recente · Windows 10/11

Fonte

Código-fonte

Requer Python 3.10+ e pip install -r requirements.txt. Roda em Windows, macOS, e Linux.

Licenciado sob MIT · branch main

Documentação

Guia de instalação & uso

O app é um único script em PySide6. Sem instalador, sem serviço em segundo plano — você o executa, e ele chama diretamente o FFmpeg (e opcionalmente o HandBrakeCLI).

Requisitos

O que precisa estar na máquina antes de você abrir o app.

ComponenteNecessário para
Python 3.10+Rodar o próprio aplicativo
PySide6A interface baseada em Qt
FFmpeg (build completo GPL, com libx264 + libx265)Os motores de tone mapping padrão e por GPU
GPU compatível com Vulkan + driversEspecificamente o motor libplacebo/BT.2390
HandBrakeCLI (opcional)O motor HandBrake
psutil (opcional)Pausa/retomada ao vivo, controle de núcleos de CPU, e estatísticas de recursos de CPU/GPU

Dependências e licenciamento

Este app não empacota o FFmpeg ou o HandBrakeCLI — eles são instalados no seu próprio computador, direto dos canais oficiais de seus autores, via winget.

FerramentaFonteID do pacote wingetLicença
FFmpeggyan.dev build completoGyan.FFmpegGPLv3
HandBrakeCLIHandBrake versão oficialHandBrake.HandBrake.CLIGPLv2

Ambos são projetos de código aberto independentes — todo o crédito é dos seus autores e colaboradores. Este app é uma interface gráfica que os executa como processos separados; ele não modifica, vincula ou redistribui o código deles, e cada um mantém sua própria licença independentemente da licença MIT deste app. Prefere instalá-los você mesmo em vez do instalador embutido? Isso também funciona — o app apenas procura por ffmpeg, ffprobe e HandBrakeCLI no seu PATH.

Instalação & execução

Três comandos, e você já está olhando para a janela.

# 1. Pegue o script e suas dependências Python
pip install PySide6 psutil

# 2. Confirme que o FFmpeg está no seu PATH
ffmpeg -version

# 3. Executar
python hdr_to_sdr_gui_qt.py
Windows: se o FFmpeg ou o HandBrakeCLI não forem encontrados, abra o painel Sistema e use "Instalar o que falta (winget)" em vez de instalá-los manualmente.

Fluxo de trabalho básico

Do arquivo fonte HDR até a saída SDR.

  1. Escolha o arquivo fonte. Qualquer contêiner HDR que o FFmpeg consiga ler — a análise roda automaticamente (função de transferência, profundidade de bits, metadados HDR10+/Dolby Vision, e uma curva sugerida), e o caminho de saída SDR é preenchido para você. Arrastar um arquivo para a janela funciona igual ao botão Procurar.
  2. Escolha um motor e uma curva. BT.2390 na GPU é a opção padrão sensata; mude para FFmpeg padrão se você não tiver uma GPU compatível com Vulkan. Passe o mouse sobre qualquer curva para ver suas reais compensações.
  3. Defina resolução, codificador, e profundidade de bits. Deixe a resolução em "Source" para manter o tamanho de quadro e a proporção originais, ou escolha uma predefinição para reduzir a resolução no mesmo processo.
  4. Ajuste a qualidade, ou ative o modo Pro para a faixa completa de CRF/CQ e um deslocamento de brilho. Confira a Prévia ao vivo — ela mostra um quadro real com tone mapping e sinaliza corte de sombras/realces — além da estimativa de bitrate ao vivo antes de confirmar.
  5. Converta, e acompanhe o progresso e a saída ao vivo do FFmpeg/HandBrake em Atividade. Pausa/retomada, limites de núcleos de CPU, e prioridade do processo podem ser ajustados enquanto roda.

Escolhendo uma curva

Todas estas são opções reais e documentadas de tone mapping do FFmpeg/libplacebo — nada aqui é inventado.

CurvaMotorQuando usar
BT.2390GPUEscolha padrão — a EETF de referência que a maioria das gradações de HDR para SDR mira
HableCPUQueda fílmica, sem necessidade de GPU
Reinhard / MobiusCPUAlternativas com queda de realces mais suave em relação a Hable
BT.2446AGPU · ProAlternativa orientada a broadcast ao BT.2390
ST2094-10 / ST2094-40GPU · ProTone mapping dinâmico; ST2094-40 usa metadados HDR10+ quando presentes
Linear / Gamma / Clip / NoneCPU · ProPasses de diagnóstico ou de gradação manual, não para uso geral

Solução de problemas

O painel Sistema é a primeira parada — ele informa exatamente o que foi detectado antes de você registrar isso como um bug.

  • Opção BT.2390 (GPU) acinzentada — nenhum dispositivo compatível com Vulkan foi detectado; use uma curva do FFmpeg padrão no lugar.
  • Motor HandBrakeCLI ausente — ele é opcional e só aparece depois que o HandBrakeCLI for encontrado no seu PATH.
  • A conversão parece estar tomando conta da máquina — reduza a prioridade do processo para Eficiência.
  • "Encoder unavailable" para CPU · H.264/H.265 — você provavelmente tem um build LGPL/"essentials" do FFmpeg sem libx264/libx265. Use "Instalar o que falta (winget)" no painel Sistema, que instala automaticamente o build GPL completo.