A exibição de vídeos em High Dynamic Range (HDR) em dispositivos móveis geralmente sofre de uma grande falha: inconsistência visual em diferentes painéis. Ao navegar em feeds de conteúdo misto em que elementos de Standard Dynamic Range (SDR) e HDR coexistem, os pipelines de renderização têm dificuldade para equilibrá-los. Isso resulta em transições irregulares e bruscas e picos de brilho imprevisíveis.
Para os criadores de conteúdo, essa falta de uniformidade compromete a intenção artística. Um vídeo HDR meticulosamente classificado em um monitor profissional pode ser renderizado com destaques cortados, tons desbotados ou sombras esmagadas quando visualizado em um dispositivo de consumo.
O vídeo Eclipsa é um padrão moderno de vídeo HDR projetado para resolver esses desafios do ecossistema entre dispositivos. Criado com base na especificação SMPTE ST 2094-50, o vídeo Eclipsa permite que as telas adaptem dinamicamente o mapeamento de conteúdo com base nos recursos de hardware físico e nas condições de iluminação ambiente em tempo real. Com o suporte da integração integrada e sem configuração no Jetpack Media3 ExoPlayer e nos pipelines de captura padrão do Camera2, o vídeo Eclipsa oferece às equipes de engenharia de dispositivos móveis um caminho sem custo e sem atrito para implementar o streaming de vídeo de última geração, adaptável ao hardware, que preserva a intenção artística em todas as telas.
Arquitetura técnica do SMPTE ST 2094-50
As telas de dispositivos móveis variam drasticamente em termos de margem de luminância, que é a quantidade de brilho disponível acima do ponto branco de referência da tela. Quando as limitações de hardware de uma tela não se alinham com os requisitos de masterização de um vídeo em HDR, os destaques ficam cortados ou sem brilho. O headroom real e o ponto branco de referência de uma tela mudam dinamicamente à medida que os sensores de luz ambiente ajustam o painel ao ambiente ao redor.
O SMPTE ST 2094-50 resolve isso introduzindo metadados de camada dupla que garantem a consistência visual por meio de dois pilares principais:
A âncora de referência branca
Isso estabelece um valor de referência rigoroso que mapeia o brilho máximo dos elementos SDR diretamente para o ponto branco de referência da tela. Qualquer valor de luminância que exceda essa âncora é reservado estritamente para destaques em HDR. Esse mecanismo de ancoragem previsível garante que, quando as camadas SDR e HDR forem compostas juntas na tela, elas mantenham a relação visual pretendida sem que uma ofusque a outra.
Curvas de ganho adaptáveis à margem
Em vez de forçar uma curva de mapeamento de tons estática, os criadores incorporam metadados paramétricos que instruem o pipeline de exibição exatamente como dimensionar quando há um espaço limitado disponível. O padrão oferece aos criadores a flexibilidade granular de escolher se um painel segmentado deve suavizar ou acentuar os realces ou comprimir tons intermediários e sombras para preservar ativamente os detalhes mais finos em regiões claras.
Suporte a plataformas
O suporte no nível da plataforma para reprodução e captura de vídeo do Eclipsa foi introduzido no Android 17 (nível 37 da API).
Implementar a reprodução
Para o desenvolvimento de apps padrão, o ExoPlayer da Media3 oferece suporte pronto para uso para vídeos do Eclipsa. Ao analisar arquivos incorporados com metadados SMPTE 2094-50, o ExoPlayer extrai e aplica os metadados sem problemas, sem precisar de configurações personalizadas do player.
Inicialização padrão do player: para instanciar a superfície do player, consulte Visão geral do ExoPlayer do Media3.
Substituições de faixa: se o app consulta ou bloqueia perfis HDR específicos de forma programática, consulte a API Media3 Track Selection.
Recomendamos transferir os pipelines de reprodução para o Jetpack Media3. O ExoPlayer processa nativamente a extração de contêineres de baixo nível, o que ignora completamente os artefatos de decodificação conhecidos no nível da plataforma presentes em camadas de renderização legadas no Android 16 (nível da API 36) e versões anteriores.
Implementar a captura de vídeo
Para gravar vídeos do Eclipsa em um dispositivo, o pipeline da câmera precisa ser configurado para gerar metadados SMPTE 2094-50 atribuindo um perfil de intervalo dinâmico compatível.
Depois que o suporte ao dispositivo for validado usando CameraCharacteristics, encaminhe o
stream para a superfície do codificador usando o
perfil DynamicRangeProfiles.HLG10_SMPTE_2094_50. Para instruções sobre como
consultar e configurar perfis de intervalo dinâmico em sessões de câmera, consulte
Captura de vídeo HDR.
Não é necessária nenhuma configuração explícita de codec para os metadados SMPTE 2094-50. O framework de mídia do Android anexa e transmite automaticamente os metadados, se eles existirem no perfil dinâmico ativo.
Considerações sobre compatibilidade e desempenho
Para monitorar o desempenho, recupere o objeto Display ativo e verifique se há
LutProperties no OverlayProperties retornado por getOverlaySupport() para
identificar a disponibilidade de caminhos acelerados por hardware.
Para dispositivos que não têm recursos de aceleração de hardware, o suporte para desativar a renderização de vídeo do Eclipsa no Exoplayer está em desenvolvimento.
Outros recursos
- A especificação SMPTE ST 2094-50
- HDR Explorer: web app para inspecionar metadados SMPTE ST 2094-50 e curvas de ganho