Converter um vídeo de entrada para HDR

Nesta página, explicamos como converter o vídeo de entrada em um job de transcodificação em um compatível com formato High Dynamic Range (HDR) ou intervalo dinâmico padrão (SDR, na sigla em inglês). O A API Transcoder usa codificação de vídeo de alta eficiência (HEVC) como a principal para a conversão de cores. A passagem será ativada por padrão se você não especificar um formato de conversão de cores.

Formatos de conversão de cores

O HEVC é o codec principal usado para os formatos de conversão de cores aceitos, que incluem:

  • Log-gamma híbrido (HLG)
  • SDR
  • HDR10

Para transmissões H.264 e VP9, apenas HLG e SDR são aceitos. Tudo as conversões entre o codec suportado e os formatos de cor anteriores são suporte.

Passagem

A transmissão direta é ativada por padrão se você não especificar um formato de conversão de cor.

Para passagem, a API Transcoder respeita as cores primárias de entrada, função de transferência, intervalo, localização do chroma e espaço de cor; sem conversão de cor é feito no processo. Se a entrada for HDR10 (ou HDR10+) e HEVC, o A API Transcoder também transmite os metadados para o vídeo de saída.

Se você especificar um codec de saída que não seja compatível com o formato de cor da entrada, a passagem é o melhor esforço. Por exemplo, um vídeo HDR10 de entrada tem 10 bits para profile e pixelFormat. Se você especificar a saída como H.265 com uma opção de 8 bits para profile, a saída não será um vídeo HDR10 válido porque o HDR10 não funciona com uma opção de 8 bits para profile.

Exemplos de conversões

Para especificar o formato de conversão de cores, use um objeto hlg, hdr10 ou sdr vazio. As seções a seguir mostram o objeto JSON a ser adicionado a um VideoStream para realizar uma determinada conversão.

Converter para o formato HLG

Use o objeto hlg para converter um vídeo de entrada para o formato HLG.

"elementaryStreams": [
  {
    "key": "video_hlg",
    "videoStream": {
      "h264": {
        "heightPixels": 720,
        "widthPixels": 1280,
        "bitrateBps": 5000000,
        "frameRate": 25,
        "hlg":{}
    }
  }
]

Converter para o formato HDR10

Use o objeto hdr10 para converter um vídeo de entrada para o formato HDR10.

"elementaryStreams": [
  {
    "key": "video_hdr10",
    "videoStream": {
      "h265": {
        "heightPixels": 720,
        "widthPixels": 1280,
        "bitrateBps": 5000000,
        "frameRate": 25,
        "pixelFormat":"yuv420p10",
        "profile":"main10",
        "hdr10":{}
    }
  }
]

Fazer a conversão para o formato SDR

Use o objeto sdr para converter um vídeo de entrada para o formato SDR.

"elementaryStreams": [
  {
    "key": "video_sdr",
    "videoStream": {
      "h264": {
        "heightPixels": 720,
        "widthPixels": 1280,
        "bitrateBps": 5000000,
        "frameRate": 25,
        "sdr":{}
    }
  }
]

Erros possíveis

Se a API Transcoder não conseguir fazer a conversão, o job de transcodificação falhar. Os possíveis erros incluem:

  • Conversão para o formato HDR10 com formatos ou perfis de pixel de 8 bits
  • Entradas SDR que não estão em conformidade com BT.709