Convertir un vídeo de entrada a HDR

En esta página se explica cómo convertir el vídeo de entrada de un trabajo de transcodificación a un formato de alto rango dinámico (HDR) o de rango dinámico estándar (SDR) compatible. La API Transcoder usa la codificación de vídeo de alta eficiencia (HEVC) como códec principal para la conversión de color. El passthrough está habilitado de forma predeterminada si no especifica un formato de conversión de color.

Formatos de conversión de color

HEVC es el códec principal que se usa en los formatos de conversión de color admitidos, que incluyen los siguientes:

  • Gamma logarítmica híbrida (HLG)
  • SDR
  • HDR10

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

Transparente

El passthrough está habilitado de forma predeterminada si no especificas un formato de conversión de color.

En el caso de la transferencia, la API Transcoder respeta los colores primarios, la función de transferencia, el intervalo, la ubicación de la croma y el espacio de color de entrada. Durante el proceso, no se realiza ninguna conversión de color. Si la entrada es HDR10 (o HDR10+) y HEVC, la API Transcoder también transfiere los metadatos al vídeo de salida.

Si especificas un códec de salida que no admite el formato de color de la entrada, la transferencia se hará de la mejor forma posible. Por ejemplo, un vídeo HDR10 de entrada tiene opciones de 10 bits para profile y pixelFormat. Si especificas que la salida sea H.265 con una opción de 8 bits para profile, la salida no será un vídeo 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 añadir a un VideoStream para realizar una conversión determinada.

Convertir al formato HLG

Usa el objeto hlg para convertir un vídeo de entrada al formato HLG.

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

Convertir al formato HDR10

Usa el objeto hdr10 para convertir un vídeo de entrada al formato HDR10.

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

Convertir a formato SDR

Usa el objeto sdr para convertir un vídeo 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 Transcoder no puede realizar la conversión, el trabajo de transcodificación falla. Estos son algunos de los errores que pueden aparecer:

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