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
FFmpegOs 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

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.