Cómo convertir un video de entrada a HDR

En esta página, se explica cómo convertir el video de entrada en un trabajo de transcodificación a un formato de alto rango dinámico (HDR) o rango dinámico estándar (SDR) compatible. La API de Transcoder usa la codificación de video de alta eficiencia (HEVC) como el códec principal para la conversión de colores. La transferencia directa está habilitada de forma predeterminada si no especificas un formato de conversión de color.

Formatos de conversión de colores

HEVC es el códec principal que se usa para los formatos de conversión de colores compatibles, que incluyen los siguientes:

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

En el caso de las transmisiones H.264 y VP9, solo se admiten HLG y SDR. Se admiten todas las conversiones entre el códec compatible y los formatos de color anteriores.

Transferencia

La transferencia directa está habilitada de forma predeterminada si no especificas un formato de conversión de color.

Para la transferencia directa, la API de Transcoder respeta las primarias de color de entrada, la función de transferencia, el rango, la ubicación de crominancia y el espacio de color. No se realiza ninguna conversión de color en el proceso. Si la entrada es HDR10 (o HDR10+) y HEVC, la API de Transcoder también pasa los metadatos al video de salida.

Si especificas un códec de salida que no admite el formato de color de la entrada, la transferencia es del mejor esfuerzo. Por ejemplo, un video HDR10 de entrada tiene opciones de 10 bits para profile y pixelFormat. Si especificas la salida como H.265 con una opción de 8 bits para profile, la salida no es un video HDR10 válido porque HDR10 no funciona con una opción de 8 bits para profile.

Ejemplos de conversiones

Para especificar el formato de conversión de color, usa un objeto hlg, hdr10 o sdr vacío. En las siguientes secciones, se muestra el objeto JSON que se debe agregar a un VideoStream para realizar una conversión determinada.

Cómo convertir a formato HLG

Usa el objeto hlg para convertir un video de entrada al formato HLG.

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

Conversión al formato HDR10

Usa el objeto hdr10 para convertir un video de entrada al formato HDR10.

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

Subconvertir a formato SDR

Usa el objeto sdr para realizar la conversión descendente de un video de entrada al formato SDR.

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

Posibles errores

Si la API de Transcoder no puede realizar la conversión, falla la tarea de transcodificación. Entre los posibles errores, se incluyen los siguientes:

  • Conversión al formato HDR10 con perfiles o formatos de píxeles de 8 bits
  • Entradas SDR que no cumplen con BT.709