Información general sobre la API Transcoder

En esta página se ofrece una descripción técnica general de la API Transcoder, que incluye funciones, terminología y conceptos útiles. La API Transcoder implementa una API REST y RPC que te permite enviar, monitorizar y gestionar tareas de transcodificación en Google Cloud. Para enviar trabajos mediante la API Transcoder, primero debes subir los recursos multimedia a Cloud Storage. Después de procesar un trabajo, la API Transcoder guarda el contenido multimedia resultante en Cloud Storage.

Funciones

La API Transcoder incluye compatibilidad con las siguientes funciones:

Para obtener más información sobre los estándares MP4 y MPEG-DASH, consulta el sitio web de Moving Picture Experts Group. Para obtener más información sobre el estándar HLS, consulta HTTP Live Streaming.

Contenedores admitidos para el cifrado de contenido

En la siguiente tabla se muestran los contenedores que se admiten para el cifrado de contenido.

Protocolo de streaming Container Sistema DRM Esquema de cifrado
HLS TS ClearKey aes128
HLS TS FairPlay sampleAes
HLS fMP4 FairPlay mpegCenc cbcs only
MPEG-DASH fMP4 Widevine mpegCenc cenc o cbcs
MPEG-DASH fMP4 PlayReady mpegCenc cenc o cbcs

Control de acceso

El modelo de control de acceso de la API Transcoder se basa en la gestión de identidades y accesos de Google. Gracias a los detallados permisos de IAM, tendrás un control absoluto sobre qué se puede hacer con los datos multimedia y sobre quién puede hacer qué.

Límites

En la siguiente tabla se muestran los límites por trabajo de transcodificación.

Límites de tareas
Anchura máxima de entrada4096 px
Altura máxima de entrada4096 px
Anchura máxima de salida4096 px
Altura máxima de salida2160 px
Tamaño total de la salida400 GB
Duración máxima de EditList24 horas
Número máximo de secuencias de vídeo70
Número máximo de flujos de audio50
Número máximo de secuencias de texto50
Número máximo de transmisiones de multiplexación100
Número máximo de manifiestos100
Número máximo de hojas de sprites10

Conceptos

En esta sección se explican conceptos importantes sobre los archivos de vídeo y cómo se usan con la API Transcoder.

Componentes de un archivo de vídeo

Cada archivo de vídeo tiene un contenedor, que es el envoltorio de todo el archivo. La API Transcoder usa MuxStreams para definir el contenedor. Cada contenedor incluye un conjunto de ElementaryStreams para definir la codificación de las pistas de vídeo, audio y texto de los subtítulos del archivo. El vídeo y el audio se comprimen mediante códecs.

En el siguiente ejemplo, el vídeo se comprime con H.264 y el audio con AAC. Ambos se colocan en un contenedor MP4.

Componentes de un archivo de vídeo y un ejemplo
Imagen 1. Componentes de un archivo de vídeo (izquierda) y un archivo MP4 de ejemplo (derecha).

Estructura del protocolo de streaming

En el caso de los medios de streaming, los proveedores de contenido codifican el mismo contenido a varios bitrates (medidos en kilobits por segundo). A continuación, el proveedor genera un archivo de manifiesto que apunta a los diferentes archivos con distintas tasas de bits. El reproductor de contenido multimedia en streaming usa el archivo de manifiesto para seleccionar el archivo adecuado y, a continuación, descarga el vídeo por partes de unos segundos. Cada tasa de bits puede ser un solo archivo o varios archivos cortos, en función de lo que admita el reproductor.

Normalmente, las diferentes resoluciones de los archivos multimedia se codifican para alcanzar diferentes tasas de bits. Por ejemplo, las tasas de bits más bajas se codifican en definición estándar (SD) en lugar de en alta definición (HD). El conjunto de tasas de bits, resoluciones y códecs se denomina "escalera de tasa de bits adaptable (ABR)". Los proveedores de contenido en streaming pueden ajustar su propia escalera en función de los costes de la CDN, los tipos de dispositivos de los usuarios, el ancho de banda de la región y otros factores.

Componentes de una estructura de protocolo de streaming y un ejemplo
Imagen 2. Componentes de la estructura de un protocolo de streaming (parte superior) y un ejemplo de implementación de HTTP Live Streaming (HLS) (parte inferior).

Terminología

En esta sección se ofrece un glosario de términos útiles para trabajar con la API Transcoder.

Pausa publicitaria

Una pausa publicitaria es un anuncio breve que aparece antes o durante la reproducción de contenido multimedia. La API Transcoder admite un fotograma clave de pausa publicitaria en la configuración de la tarea. La API Transcoder no inserta ni reproduce anuncios, ni detiene la reproducción de contenido multimedia. Los clientes del reproductor de vídeo son los responsables de gestionar el fotograma clave.

Atom

Un átomo es una estructura de datos fundamental para definir los metadatos y la ubicación de un vídeo. Un vídeo puede incluir una jerarquía anidada compleja de diferentes tipos de átomos, como átomos de audio, edición y texto.

Audio atom

Un átomo de audio asigna el audio de un flujo elemental a una lista de edición.

Tipo y perfil de códec

Al seleccionar el códec de una emisión de vídeo, debe especificar el tipo de códec, como H.264, y el perfil, como el perfil high predeterminado.

Container

Un contenedor es un envoltorio que describe la relación entre los distintos componentes de un flujo multiplexado, incluidos los archivos multimedia y los metadatos. La API Transcoder admite los formatos de contenedor MP4, MPEG-DASH y HLS.

Editar átomo

Un átomo de edición define los desplazamientos de inicio y fin de los segmentos individuales de un flujo que quieras combinar en una lista de edición.

Editar lista

Una lista de edición define una secuencia de ediciones como una cronología del archivo o manifiesto resultante de un trabajo de transcodificación.

Elementary stream

Un flujo elemental es una codificación de un archivo de entrada, como una pista de texto de audio, vídeo o subtítulos. Debes empaquetar las secuencias elementales antes de asignar y compartir la secuencia en diferentes formatos de salida.

Codificación de entropía

La codificación de entropía es una forma de compresión sin pérdida que admite la API Transcoder. Al configurar los trabajos, puede especificar los codificadores de entropía de codificación de longitud variable adaptativa al contexto (CAVLC) o de codificación aritmética binaria adaptativa al contexto (CABAC).

Tarea

Una tarea es la unidad básica para gestionar el trabajo con la API Transcoder. Cuando envías una tarea a la API Transcoder, se procesa de forma asíncrona en una ubicación geográfica conocida como región. Puedes enumerar y gestionar todos los trabajos de una región.

El ciclo de vida de un trabajo incluye tres pasos: preparar, transcodificar y empaquetar.

  • Preparar
    • Descargar entradas de Cloud Storage
    • Analizar entradas
    • Validar entradas
  • Transcodificar
    • Ejecutar operaciones de transcodificación en entradas
  • Paquete
    • Entradas de Stitch
    • Multiplex inputs
    • Subir resultados a Cloud Storage

Un trabajo tiene un estado actualizado. El servicio informa de los errores mediante el campo error.

Configuración de tarea

Una configuración de trabajo representa muchos de los ajustes que puedes personalizar al crear y enviar un trabajo a la API Transcoder. Puede especificar ajustes de configuración, como listas de edición y dónde insertar etiquetas de pausas publicitarias en un manifiesto de salida. Puedes crear configuraciones de trabajos reutilizables como plantillas de trabajos para usarlas en una Google Cloud región.

Modo de trabajo

La API Transcoder admite dos modos de tarea: interactivo y por lotes.

El modo interactivo es el modo de trabajo predeterminado. Usa este modo si quieres que el procesamiento de los trabajos empiece lo antes posible o si quieres tener un control más granular sobre qué trabajos se ejecutan primero. En este modo, la cuota de número de tareas simultáneas controla cuántas tareas se ejecutan al mismo tiempo. Una vez alcanzada esta cuota, se rechazarán todos los trabajos que intentes iniciar.

Usa el modo por lotes para enviar muchas tareas cuya latencia de procesamiento no sea tan crítica como las tareas enviadas en el modo interactivo predeterminado. En este modo, puedes especificar la prioridad de procesamiento de la tarea. Las tareas enviadas en modo por lotes con el mismo valor de prioridad se colocan en una cola FIFO y tienen el estado PENDING mientras esperan a ejecutarse. En este modo, la cuota de trabajos pendientes por lotes controla cuántos trabajos se ponen en cola. Una vez alcanzada esta cuota, se rechazarán los trabajos que intentes iniciar. Una tarea pasa al estado RUNNING cuando se ejecuta. La cuota de número de tareas simultáneas por lote controla cuántas tareas se ejecutan simultáneamente.

Puedes usar ambos modos al mismo tiempo. Un modo no tiene prioridad sobre el otro. Para obtener más información sobre cómo definir el modo de trabajo, consulta Crear trabajos en modo de lote.

Plantilla de tareas

De forma predeterminada, la API Transcoder aplica una plantilla predefinida llamada preset/web-hd para rellenar una configuración de trabajo. Esta configuración de la tarea genera los siguientes archivos de salida:

  • manifest.m3u8: La lista de reproducción principal de una emisión multimedia HLS. Este archivo contiene referencias a listas de reproducción de la variante de alta definición (HD) de la salida y de la variante de definición estándar (SD) de la salida.
    • media-hd.m3u8: lista de reproducción de la variante de alta definición
      • media-hd0000000000.ts: archivo de segmento de vídeo de alta definición
    • media-sd.m3u8: lista de reproducción de la variante de definición estándar
      • media-sd0000000000.ts: archivo de segmento de vídeo de definición estándar
  • manifest.mpd: la lista de reproducción de una emisión multimedia MPEG-DASH. Este archivo contiene referencias a archivos de segmento de solo vídeo y de solo audio.
    • audio-only0000000000.m4s: archivo de segmento de solo audio
    • video-only-hd0000000000.m4s: archivo de segmento de vídeo de alta definición
    • video-only-sd0000000000.m4s: archivo de segmento de vídeo de definición estándar
  • sd.mp4: archivo de vídeo independiente de definición estándar
  • hd.mp4: archivo de vídeo independiente de alta definición

Puedes crear y gestionar tus propias plantillas de tareas personalizadas y especificarlas al crear tareas.

Preprocesamiento

El preprocesamiento es la fase de un trabajo que tiene lugar antes de la transcodificación principal.

Configuración del preprocesamiento

Una configuración de preprocesamiento representa los ajustes que puedes aplicar a un vídeo antes de la fase de transcodificación de un trabajo. Puedes aplicar un recorte o un relleno como parte de esta configuración.

Modo de control de la frecuencia de bits

El modo de control de la tasa indica si se debe procesar un trabajo con los modos de factor de tasa constante (CRF) o de tasa de bits variable (VBR). CRF asegura una calidad constante en todos los recursos multimedia procesados. La VBR optimiza el proceso de codificación para reducir el tamaño de los archivos multimedia procesados. Para los casos prácticos de streaming, selecciona el modo de control de la tasa VBR. Para archivar, selecciona el modo de control de la tasa CRF.

Archivo de manifiesto

Un manifiesto es una descripción del contenido y los metadatos disponibles de un flujo multimedia adaptativo para un cliente. En la API Transcoder, puedes configurar un trabajo para que genere un manifiesto con un nombre de archivo, una lista de flujos multiplexados y el tipo de manifiesto, que debe ser HLS o MPEG-DASH.

Átomo de texto

Un átomo de texto asigna el texto de un flujo elemental a una lista de edición.

Secuencia de texto

Un flujo de texto codifica los datos de texto asociados a un vídeo, como los subtítulos.

Siguientes pasos