En esta página, se proporciona una descripción general técnica de la API de Transcoder, incluidas las características, la terminología y los conceptos útiles. La API de Transcoder implementa una API de REST y RPC que te permite enviar, supervisar y administrar trabajos de transcodificación en Google Cloud. Para enviar trabajos con la API de Transcoder, primero debes subir activos multimedia a Cloud Storage. Después de procesar un trabajo, la API de Transcoder guarda los medios resultantes en Cloud Storage.
Funciones
La API de Transcoder admite las siguientes funciones:
- Resultados en diferentes formatos de contenedor, como MPEG-4 (MP4), transmisión adaptable y dinámica a través de HTTP (DASH, también conocida como MPEG-DASH) y HTTP Live Streaming (HLS)
- Salida con distintas tasas de bits y resoluciones, incluida la salida de solo audio
- Conversión a un formato de alto rango dinámico (HDR)
- Mejora la salida del video de manera programática, lo que incluye:
- Configura parámetros de codificación de bajo nivel, como la tasa de bits
- Combina contenido multimedia existente con listas de edición completas
- Establece el modo de trabajo en modo interactivo de baja latencia o modo por lotes.
- Especifica la normalización de volumen de audio
- Configura la encriptación de tu video de salida para admitir la administración de derechos digitales y la protección del contenido.
- Inserta fotogramas clave para que los clientes del reproductor de video inserten anuncios
- Crea miniaturas a partir de una hoja de sprites de fotogramas del video generada.
- Crea plantillas de trabajos para guardar y reutilizar configuraciones personalizadas o complejas de transcodificación de trabajos.
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 de HLS, consulta HTTP Live Streaming.
Contenedores admitidos para la encriptación de contenido
En la siguiente tabla, se muestran los contenedores compatibles con la encriptación de contenido.
Protocolo de transmisión | Contenedor | sistema DRM | Esquema de encriptación |
---|---|---|---|
HLS | TS | ClearKey | aes128 |
HLS | TS | FairPlay | sampleAes |
HLS | fMP4 | FairPlay | Solo mpegCenc cbcs |
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 de Transcoder se basa en la administración de identidades y accesos de Google. Los permisos detallados de IAM te brindan control sobre lo que se puede hacer con datos de medios, y quién tiene acceso a ellos.
Límites
En la siguiente tabla, se muestran los límites por trabajo de transcodificación.
Límites de trabajos | |
---|---|
Ancho máximo de entrada | 4096 px |
Altura máxima de entrada | 4,096 px |
Ancho de salida máximo | 4,096 px |
Altura máxima de salida | 2160 px |
Tamaño total de salida | 400 GB |
Duración máxima de EditList | 24 horas |
Cantidad máxima de transmisiones de video | 70 |
Cantidad máxima de transmisiones de audio | 50 |
Cantidad máxima de transmisiones de texto | 50 |
Cantidad máxima de transmisiones de mux | 100 |
Cantidad máxima de manifiestos | 100 |
Cantidad máxima de hojas de objeto | 10 |
Conceptos
En esta sección, se proporcionan conceptos importantes sobre los archivos de video y cómo se se usan con la API de Transcoder.
Componentes de un archivo de video
Cada archivo de video tiene un contenedor, que es el wrapper de todo el archivo. La API de Transcoder usa MuxStreams. para definir el contenedor. Cada contenedor incluye un conjunto de ElementaryStreams definir la codificación de las pistas de video, audio y texto de los subtítulos para el . El video y el audio se comprimen con códecs.
En el siguiente ejemplo, el video se comprime con H.264 y el audio se comprimido en AAC. Ambos se colocan en un contenedor MP4.
Figura 1. Componentes de un archivo de video (izquierda) y un ejemplo de archivo MP4 (derecha).
Estructura del protocolo de transmisión
En el caso de la transmisión de contenido multimedia, los proveedores codifican el mismo contenido en varios tasas de bits (medidas en kilobits por segundo). Luego, el proveedor genera un de manifiesto que dirige a los distintos archivos con distintas tasas de bits. El reproductor de transmisión de contenido multimedia usa el archivo de manifiesto para seleccionar el archivo adecuado y, luego, extrae el video unos segundos a la vez. Cada tasa de bits puede ser un solo archivo o varios archivos cortos, según la compatibilidad del reproductor.
Por lo general, las diferentes resoluciones de contenido multimedia se codifican para orientarse a diferentes tasas de bits. Por ejemplo, las tasas de bits más bajas se codifican en definición estándar (SD) en lugar de alta definición (HD). El conjunto de tasas de bits, resoluciones y códecs se llama escala de tasa de bits adaptable (ABR). Los proveedores de contenido de transmisión su propia escala basada en los costos de CDN, los tipos de dispositivos del usuario, el ancho de banda en la región y con otros factores.
Figura 2. Componentes de una estructura de protocolo de transmisión (arriba) y una implementación de ejemplo de HTTP Live Streaming (HLS) (abajo).
Terminología
En esta sección, se proporciona un glosario de términos útiles para trabajar con la API de Transcoder.
Pausa publicitaria
Una pausa publicitaria es un anuncio breve que aparece antes de la reproducción de medios o durante ella. La API de Transcoder admite un fotograma clave de pausa publicitaria en la configuración del trabajo. La API de Transcoder no inserta ni reproduce anuncios, ni detiene la reproducción de contenido multimedia, los clientes del reproductor de video son responsables de administrar el fotograma clave.
Átomo
Un átomo es una estructura de datos fundamental para definir los metadatos y la ubicación de un video. Un video puede estar compuesto por una jerarquía anidada compleja de diferentes tipos de átomos, que incluyen audios, ediciones y texto.
Átomo de audio
Un átomo de audio asigna el audio de una transmisión básica a una lista de edición.
Perfil y tipo de códec
Cuando seleccionas el códec para una transmisión de video, debes especificar el tipo de códec, como H.264, y el perfil, como el perfil high
predeterminado.
Contenedor
Un contenedor es un wrapper que describe la relación entre los distintos componentes de una transmisión multiplexada, incluidos los archivos multimedia y los metadatos. La API de Transcoder admite los formatos de contenedor MP4, MPEG-DASH y HLS.
Edita el átomo
Un átomo de edición define las compensaciones de inicio y fin de los segmentos individuales de una transmisión que deseas combinar en una lista de edición.
Editar la lista
Una lista de edición define una secuencia de ediciones como un cronograma para el archivo o manifiesto resultante de un trabajo de transcodificación.
Transmisión básica
Una transmisión básica es una codificación de un archivo de entrada, como una pista de texto, video, audio o subtítulos. Debes empaquetar las transmisiones básicas antes de asignar y compartir la transmisión a diferentes formatos de salida.
Codificación de entropía
La codificación entropía es una forma de compresión sin pérdidas que admite la API de Transcoder. Cuando configuras trabajos, puedes especificar los codificadores de entropía de codificación de longitud variable adaptada al contexto (CAVLC) o de codificación binaria aritmética adaptable al contexto (CABAC).
Job
Un trabajo es la unidad básica para administrar el trabajo con la API de Transcoder. Cuando envías un trabajo a la API de Transcoder, se procesa de forma asíncrona en una ubicación geográfica conocida como región. Puedes enumerar y administrar todos los trabajos para una región.
El ciclo de vida de un trabajo incluye tres pasos: preparación, transcodificación y paquete.
- Preparación
- Descarga entradas desde Cloud Storage
- Analizar entradas
- Valida las entradas
- Transcodificar
- Cómo ejecutar operaciones de transcodificación en entradas
- Paquete
- Entradas de punto
- Entradas multiplex
- Sube los resultados a Cloud Storage
Un trabajo tiene un estado actualizado.
El servicio informa errores con el campo error
.
Configuración del trabajo
Una configuración de trabajo representa muchas de las diversas opciones de configuración que puedes personalizar cuando creas y envías un trabajo a la API de Transcoder. Puedes especificar ajustes de configuración, como las listas de edición y dónde insertar etiquetas de pausa publicitaria en un manifiesto de salida. Puedes crear configuraciones de trabajo reutilizables como plantillas de trabajo para usarlas en una región de Google Cloud.
Modo de trabajo
La API de Transcoder admite dos modos de trabajo: interactivo y por lotes.
El modo interactivo es el modo de trabajo predeterminado. Usa este modo si deseas que el procesamiento de trabajos comience lo antes posible o si deseas tener un control más detallado sobre qué trabajos se ejecutan primero. En este modo, cuota de recuento de trabajos simultáneos controla cuántos trabajos se ejecutan al mismo tiempo. Una vez que se alcanza esta cuota, se rechazan todos los trabajos que intentes iniciar.
Usa el modo por lotes para enviar muchos trabajos para los que la latencia de procesamiento no sea tan
críticos como los trabajos enviados en el modo interactivo predeterminado. Puedes especificar
prioridad de procesamiento del trabajo
para un trabajo en este modo. Los trabajos enviados en modo por lotes con el mismo valor de prioridad se colocan en una cola de primero en entrar, primero en salir y tienen un estado de trabajo de PENDING
mientras esperan a ejecutarse. En este modo,
controles de la cuota de recuento de trabajos pendientes por lotes
cuántos trabajos están en cola. Una vez que se alcanza esta cuota, cualquier trabajo que intentes iniciar
se rechazan. Una tarea pasa al estado RUNNING
cuando se ejecuta. El
cuota de recuento de trabajos simultáneos por lotes
controla cuántos trabajos se ejecutan al mismo tiempo.
Puedes usar ambos modos al mismo tiempo. Un modo no tiene prioridad sobre el otro. Para obtener más información sobre cómo configurar el modo de trabajo, consulta la sección Crea trabajos en modo por lotes.
Plantillas de trabajo
De forma predeterminada, la API de Transcoder aplica una plantilla predeterminada llamada
preset/web-hd
para propagar una configuración de trabajo. Esta configuración de trabajo produce la
los siguientes archivos de salida:
manifest.m3u8
: Es la playlist principal de una transmisión de contenido multimedia HLS. Este archivo contiene referencias a playlists para la variante de alta definición (HD) y la variante de definición estándar (SD) del contenido.media-hd.m3u8
: Es la playlist de la variante en alta definición.media-hd0000000000.ts
: Archivo de segmentos de video en alta definición
media-sd.m3u8
: Es la playlist de la variante de definición estándar.media-sd0000000000.ts
: Archivo de segmento de video de definición estándar
manifest.mpd
: Es la playlist de una transmisión de contenido multimedia MPEG-DASH. Este archivo Contiene referencias a archivos de segmentos solo de video y de solo audio.audio-only0000000000.m4s
: Archivo de segmento solo de audiovideo-only-hd0000000000.m4s
: Archivo de segmentos solo de video en alta definiciónvideo-only-sd0000000000.m4s
: Segmento solo de video en definición estándar archivo
sd.mp4
: Archivo de video independiente de definición estándarhd.mp4
: Archivo de video independiente de alta definición
Puedes crear y administrar tus propias plantillas de trabajo personalizadas y especificarlas cuando crees trabajos.
Procesamiento previo:
El procesamiento previo es la etapa de un trabajo que se lleva a cabo antes de la transcodificación principal.
Configuración del procesamiento previo
Una configuración de procesamiento previo representa la configuración que puedes aplicar a un video antes de la etapa de transcodificación de un trabajo. Puedes aplicar recortes o como parte de esta configuración.
Modo de control de velocidad
El modo de control de velocidad indica si se debe procesar un trabajo con los modos de factor de velocidad constante (CRF) o tasa de bits variable (VBR). CRF garantiza una calidad constante en todos los elementos multimedia procesados. VBR optimiza el proceso de codificación para reducir el tamaño de los archivos multimedia procesados. Para casos de uso de transmisión, selecciona el modo de control de tasa VBR. Con el objetivo de archivado, selecciona el modo de control de tasa de CRF.
Manifiesto
Un manifiesto es una descripción del contenido y los metadatos disponibles de una transmisión multimedia adaptativa a un cliente. En la API de Transcoder, puedes configurar un trabajo para mostrar un manifiesto con un nombre de archivo, una lista de transmisiones multiplexadas, y el tipo de manifiesto, que debe ser HLS o MPEG-DASH.
Átomo de texto
Un átomo de texto asigna el texto de una transmisión básica a una lista de edición.
Transmisión de texto
Una transmisión de texto codifica los datos de texto asociados con un video, como los subtítulos.
¿Qué sigue?
- Prueba la guía de inicio rápido.
- Aprende a completar las tareas de la API de Transcoder específicas.