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.
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.
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.
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ê.
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.
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.
O clássico filtro tonemap. Rápido, funciona em qualquer lugar onde o FFmpeg funciona, sem precisar de GPU.
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.
Um caminho de codificação alternativo via HandBrakeCLI para casos em que seu próprio pipeline se comporta melhor em uma determinada fonte.
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.
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.
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.
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.
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.
Passe o mouse sobre qualquer curva de tone mapping para uma explicação clara de suas reais compensações — nada de texto de marketing.
x264/x265 na CPU, ou codificação por hardware via NVIDIA NVENC, AMD AMF, ou Apple VideoToolbox, em H.264 ou H.265.
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.
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 CUDA / DXVA2 / VideoToolbox para o motor FFmpeg, para que a GPU cuide tanto da leitura quanto do tone mapping.
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.
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.
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.
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.
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
Requer Python 3.10+ e pip install -r requirements.txt. Roda em Windows, macOS, e Linux.
Licenciado sob MIT · branch main
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).
O que precisa estar na máquina antes de você abrir o app.
| Componente | Necessário para |
|---|---|
| Python 3.10+ | Rodar o próprio aplicativo |
| PySide6 | A interface baseada em Qt |
| FFmpeg | Os motores de tone mapping padrão e por GPU |
| GPU compatível com Vulkan + drivers | Especificamente 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 |
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
Do arquivo fonte HDR até a saída SDR.
Todas estas são opções reais e documentadas de tone mapping do FFmpeg/libplacebo — nada aqui é inventado.
| Curva | Motor | Quando usar |
|---|---|---|
| BT.2390 | GPU | Escolha padrão — a EETF de referência que a maioria das gradações de HDR para SDR mira |
| Hable | CPU | Queda fílmica, sem necessidade de GPU |
| Reinhard / Mobius | CPU | Alternativas com queda de realces mais suave em relação a Hable |
| BT.2446A | GPU · Pro | Alternativa orientada a broadcast ao BT.2390 |
| ST2094-10 / ST2094-40 | GPU · Pro | Tone mapping dinâmico; ST2094-40 usa metadados HDR10+ quando presentes |
| Linear / Gamma / Clip / None | CPU · Pro | Passes de diagnóstico ou de gradação manual, não para uso geral |
O painel Sistema é a primeira parada — ele informa exatamente o que foi detectado antes de você registrar isso como um bug.