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 en un formato de alto rango dinámico (HDR) o rango dinámico estándar (SDR) compatible. El La API de Transcoder usa codificación de video de alta eficiencia (HEVC) como códec para la conversión de color. Si no lo haces, la transferencia estará habilitada de forma predeterminada especificar 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 color admitidos, que incluyen los siguientes:

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

Solo se admiten las transmisiones H.264 y VP9. Todas conversiones entre el códec admitido y los formatos de color anteriores se no es compatible.

Transferencia

La transferencia está habilitada de forma predeterminada si no especificas una conversión de color de un conjunto de datos tengan un formato común.

Para la transferencia, la API de Transcoder respeta los colores primarios de entrada, función de transferencia, rango, ubicación de croma y espacio de color; sin conversión de color se lleva a cabo 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 es compatible con el formato de color de la entrada, la transferencia es el 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.

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":{}
    }
  }
]

Conversión al formato SDR

Usa el objeto sdr para convertir un video de entrada en 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 errores posibles, se incluyen los siguientes:

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