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