Arquitectura de streaming y VOD

# Arquitectura de CDN de video: transcodificación, HLS/DASH, almacenamiento y caché

Diseña una ruta de CDN de video: transcodificación; empaquetado HLS, MPEG-DASH o CMAF; almacenamiento propio; caché; reproducción; observabilidad y costo.

Publicado el 1 de septiembre de 2026

## Conclusiones clave

* Separa la ingesta, el procesamiento, el almacenamiento, la entrega y la reproducción antes de elegir productos, y luego aplica la autorización a lo largo de toda la ruta de la solicitud.
* Crea escaleras de tasas de bits a partir de la calidad de la fuente y de las condiciones medidas de la audiencia, en lugar de una lista fija de resoluciones.
* Empaqueta variantes alineadas como HLS, MPEG-DASH o CMAF y conserva todas las rutas relativas de manifiestos y segmentos durante la exportación.

Una CDN de video no es una sola caja. La reproducción confiable bajo demanda proviene de una cadena cuyas capas de ingesta, procesamiento, almacenamiento, entrega y reproducción tienen, cada una, una responsabilidad explícita, con la autorización aplicada como una política transversal. El diseño falla cuando un manifiesto en caché apunta a segmentos reemplazados o aún no publicados, las rutas de las variantes se rompen durante la exportación, o un requisito de transmisión en vivo se confunde con procesamiento de VOD basado en archivos.

## En esta guía

1. [Asigna a cada capa una responsabilidad clara](#video-cdn-architecture-section-1)
2. [Crea una escalera de tasas de bits que justifique su costo](#video-cdn-architecture-section-2)
3. [Empaqueta las salidas adaptativas como un único árbol conectado](#video-cdn-architecture-section-3)
4. [Haz que el almacenamiento y el comportamiento de la caché sean seguros para el despliegue](#video-cdn-architecture-section-4)
5. [Protege la reproducción sin destruir la caché](#video-cdn-architecture-section-5)
6. [Observa la ruta completa y ensaya los fallos](#video-cdn-architecture-section-6)
7. [Modela el costo por recurso publicado y visto](#video-cdn-architecture-section-7)

## Lo más importante

* Usa rutas de recursos versionadas, políticas de caché deliberadas y un único modelo de autorización para manifiestos, segmentos, subtítulos e imágenes de póster.
* Mide el retraso de inicio, el rebuffering, los errores de reproducción, la tasa de aciertos de caché, el tráfico del origen, los fallos de procesamiento y el costo por recurso publicado.

## Asigna a cada capa una responsabilidad clara

Empieza por el espectador y traza el camino hacia atrás. El reproductor interpreta el manifiesto, selecciona una variante, renderiza los subtítulos, informa eventos de reproducción y aplica los controles del producto. La CDN atiende las solicitudes del espectador, aplica la política de entrega seleccionada, almacena respuestas en caché y obtiene las que faltan desde un origen. El almacenamiento de objetos duradero gestiona los manifiestos aprobados, los segmentos, los subtítulos, las imágenes de póster y cualquier archivo maestro. Un servicio de procesamiento crea esos resultados a partir de una fuente completa. La infraestructura de subida o de ingesta en vivo introduce la fuente en ese límite de procesamiento. La autorización es una política transversal aplicada de forma consistente a la ruta de solicitud de entrega y reproducción, no una sexta capa de procesamiento multimedia.

La expresión «CDN de video» a menudo oculta esta descomposición. Una CDN no repara marcas de tiempo corruptas ni crea una escalera de tasas de bits adaptativa, y un transcodificador no proporciona automáticamente autorización de la audiencia, caché global, un reproductor ni analítica de calidad de experiencia. Mantén identificadores estables de recursos y versiones propiedad de la aplicación en todas las capas, para que un trabajo de procesamiento, un paquete exportado, una solicitud de entrega y un error del reproductor puedan correlacionarse sin tratar un nombre de archivo como si fuera la base de datos.

### Capa de ingesta

Recibe una subida o importación completa, o finaliza una grabación en vivo antes de entregar una fuente duradera al procesamiento.

### Capa de procesamiento

Crea variantes y paquetes técnicamente válidos a partir de la fuente duradera entregada por la ingesta.

### Capa de almacenamiento

Es responsable de los archivos aprobados y expone una ruta de origen controlada; no es el catálogo de recursos de la aplicación.

### Capa de entrega

Protege y almacena en caché las solicitudes del espectador, obtiene desde el origen las respuestas que faltan en la caché y aplica la política de entrega elegida.

### Capa de reproducción

Interpreta el manifiesto, selecciona variantes, renderiza los subtítulos y gobierna la experiencia de visualización.

## Crea una escalera de tasas de bits que justifique su costo

Inspecciona la fuente antes de elegir los resultados. La resolución, la tasa de fotogramas, el códec, la profundidad de bits, la disposición del audio, la duración y la complejidad visual limitan lo que puede resultar útil. Una fuente de 720p no puede ganar detalle real con una codificación a 1080p. Una conferencia con poco movimiento y una grabación deportiva rápida pueden necesitar tasas de bits diferentes con las mismas dimensiones. Conserva una fuente de archivo de alta calidad cuando el reprocesamiento futuro sea importante, pero no envíes ese máster por la ruta de reproducción pública.

Codifica un pequeño conjunto de variantes cuya tasa de bits y dimensiones ofrezcan pasos de cambio significativos. Usa la misma duración de segmento, fotogramas clave alineados y líneas de tiempo compatibles en todo el conjunto. Valida la calidad visual con contenido representativo en lugar de basarte en los nombres de las resoluciones. Más variantes aumentan los minutos de codificación, los bytes almacenados, los objetos del paquete, el tiempo de validación y los posibles fallos de caché, así que agrega una nueva variante únicamente cuando la telemetría del reproductor muestre una brecha de cobertura.

### Respeta el límite de la fuente

Nunca inventes detalle inexistente en la fuente mediante el escalado ascendente solo para completar una escalera convencional.

### Usa un corpus representativo

Compara movimiento, degradados, texto, rostros, escenas oscuras y sincronización de audio en las tasas de bits objetivo.

### Cierra el ciclo de medición

Ajusta la escalera a partir de datos de arranque, rebuffering y tasa de bits entregada, no solo por intuición.

## Empaqueta las salidas adaptativas como un único árbol conectado

Los paquetes HLS y MPEG-DASH son grafos de referencias, no archivos sin relación entre sí. Un manifiesto de nivel superior identifica las variantes, las listas de reproducción de medios o representaciones identifican los medios, y las entradas de medios resuelven los segmentos. Los subtítulos, el audio alternativo, los metadatos de cifrado y los segmentos de inicialización pueden añadir más relaciones. Valida el paquete completo desde su URL pública después de exportarlo; comprobar solo que el manifiesto maestro devuelve 200 pasa por alto descendientes rotos, tipos MIME, reglas de CORS y fallos de autorización.

El ejemplo crea dos variantes listas para HLS en Steps `/video/encode` separados y luego las agrupa mediante `/video/adaptive`. El Step adaptativo define una única `segment_duration` para el paquete; confirma que las líneas de tiempo de las variantes y la configuración de fotogramas clave siguen siendo compatibles, sobre todo antes de combinar archivos preparados fuera de un único flujo de trabajo controlado. Después, `/s3/store` exporta los archivos resultantes. Los resultados adaptativos llevan metadatos `relative_path`. El destino combina el `${assembly.id}` de todo el paquete con `${file.meta.relative_path}` y `${file.name}`, de modo que cada resultado queda por debajo de un único prefijo y conserva la estructura de directorios a la que hacen referencia las listas de reproducción. En producción, usa un Template guardado y credenciales de Template con privilegios mínimos. Sustituye la escalera de tasas de bits de ejemplo, el nombre `my_s3_credentials`, el bucket y la región configurados en esas credenciales de Template, y el prefijo de ruta `vod` por valores probados con el corpus de fuentes, los reproductores de destino y el bucket. El ejemplo establece `acl` en `private` de forma deliberada porque, de lo contrario, `/s3/store` usa `public-read` por defecto; configura por separado el acceso de origen privado de la CDN.

Empaquetar dos variantes preparadas y preservar sus rutas relativas en S3

```
{
  "steps": {
    ":original": { "robot": "/upload/handle" },
    "hls_480p": {
      "use": ":original",
      "robot": "/video/encode",
      "result": false,
      "ffmpeg_stack": "v6",
      "preset": "hls/480p"
    },
    "hls_720p": {
      "use": ":original",
      "robot": "/video/encode",
      "result": false,
      "ffmpeg_stack": "v6",
      "preset": "hls/720p"
    },
    "vod_package": {
      "use": {
        "steps": ["hls_480p", "hls_720p"],
        "bundle_steps": true
      },
      "robot": "/video/adaptive",
      "result": true,
      "technique": "hls",
      "playlist_name": "master.m3u8"
    },
    "exported": {
      "use": "vod_package",
      "robot": "/s3/store",
      "credentials": "my_s3_credentials",
      "acl": "private",
      "path": "vod/${assembly.id}/${file.meta.relative_path}/${file.name}"
    }
  }
}
```

## Haz que el almacenamiento y el comportamiento de la caché sean seguros para el despliegue

Publica cada paquete aprobado bajo una ruta de versión inmutable, como un ID de recurso más una versión o un resumen del contenido. Sube todos los objetos, valida el paquete y solo entonces cambia el registro de la aplicación para exponer el nuevo manifiesto maestro. Así la publicación es atómica desde la perspectiva del espectador y se evita que un manifiesto nuevo apunte a segmentos que aún no han llegado al origen. Conserva o elimina las versiones antiguas según una política explícita de reversión y retención.

Los segmentos bajo rutas inmutables normalmente pueden recibir vidas de caché largas porque sus bytes nunca cambian. Un manifiesto que cambia en el mismo lugar necesita una política más corta o invalidada activamente, pero versionar el paquete VOD completo es más fácil de razonar. Configura tipos de contenido correctos, comportamiento de rangos de bytes donde sea necesario, CORS para los orígenes reales del reproductor y reglas de compresión consistentes. No apliques suposiciones de caché HTML genéricas a manifiestos y segmentos sin probar el reproductor y la CDN elegidos.

### Publica de forma atómica

Un paquete se vuelve visible solo después de que todos los objetos referenciados se han exportado y validado.

### Usa versiones inmutables

La misma URL siempre devuelve los mismos bytes, de modo que nunca se mezclan silenciosamente versiones distintas en el contenido almacenado en caché.

## Protege la reproducción sin destruir la caché

Elige si un video es público, de tiempo limitado o está vinculado a un derecho de aplicación. Aplica la política resultante al manifiesto maestro, los manifiestos hijos, los segmentos, los subtítulos, las imágenes de póster y las descargas. Proteger solo la primera solicitud es insuficiente cuando un espectador puede reutilizar las URL de segmento directamente. Mantén las credenciales de almacenamiento privadas y los secretos de firma de Transloadit en servidores de confianza.

Todo parámetro de consulta, cookie o encabezado de solicitud que varíe puede afectar la reutilización de la caché si entra en la clave de caché. Por el contrario, eliminar de la clave un valor relevante para la seguridad puede provocar que se sirva una respuesta autorizada en el contexto equivocado. Prefiere un conjunto pequeño y documentado de entradas de entrega, normalízalas en el edge cuando corresponda, y prueba la expiración, la revocación, la búsqueda en la reproducción y las solicitudes concurrentes de segmentos. Mantén los secretos y los datos personales fuera de las URL de manifiestos y segmentos, porque esas URL pueden aparecer en registros, analítica, historial del navegador y trazas de soporte.

## Observa la ruta completa y ensaya los fallos

La telemetría de procesamiento debería exponer la entrada aceptada, cada variante, la creación de paquetes, la finalización de la exportación, la duración y los fallos estructurados. La telemetría de almacenamiento y CDN debería exponer objetos faltantes, el tiempo de respuesta del origen, la tasa de aciertos de caché, los bytes transferidos y el estado de respuesta por clase de objeto. La telemetría del reproductor debería exponer el retraso de inicio, el rebuffering, los errores fatales, la tasa de bits seleccionada, los fallos de búsqueda en la reproducción y los fallos de subtítulos. Vincula esas observaciones mediante identificadores estables de recurso y versión, minimizando adecuadamente los datos del espectador.

Prueba fuentes corruptas y no compatibles, subidas interrumpidas, un destino de exportación no disponible, paquetes parciales, notificaciones de finalización duplicadas, un manifiesto obsoleto, una interrupción del origen, autorización de entrega vencida, encabezados CORS faltantes y un códec no compatible. Concilia los trabajos de procesamiento no terminales con el estado canónico para que una notificación perdida no deje un recurso atascado para siempre. Mantén «procesado», «exportado», «reproducible», «revisado» y «publicado» como estados separados.

### Diseña pensando en la repetición

Las rutas seguras ante reintentos y los manejadores idempotentes evitan que notificaciones duplicadas produzcan lanzamientos duplicados.

### Reconcilia eventos faltantes

Una verificación de estado programada repara el estado cuando una notificación se retrasa o nunca llega a la aplicación.

## Modela el costo por recurso publicado y visto

Cuenta la subida o importación de la fuente, cada salida codificada, el empaquetado, los subtítulos, las miniaturas, la exportación, los originales retenidos, los segmentos almacenados, las solicitudes de CDN, las solicitudes al origen y la salida de datos. Luego suma los fallos, los reintentos, las ediciones y los formatos recién requeridos. Una escalera más grande cuesta más antes de que llegue cualquier espectador, mientras que un diseño de segmentos diminutos puede aumentar el volumen de solicitudes y la sobrecarga del manifiesto. La fragmentación de la caché devuelve trabajo y tráfico al origen.

Compara arquitecturas con fuentes y distribuciones de audiencia representativas. El costo por minuto de entrada es útil para el procesamiento, pero el costo por recurso publicado revela el trabajo fallido y abandonado, y el costo por hora vista captura el comportamiento de la entrega. Incluye el tiempo de ingeniería para la compatibilidad con reproductores, las reglas de caché, la autorización, la observabilidad, la respuesta a incidentes y la migración. La unidad anunciada más barata no es necesariamente el sistema confiable menos costoso.

## Detalles técnicos que conviene conocer

* HLS y MPEG-DASH describen paquetes de entrega adaptativa; ninguno de los dos protocolos por sí solo proporciona ingesta en vivo, almacenamiento, una CDN, un reproductor, analítica o verificaciones de derechos.
* La conmutación adaptativa depende de que las variantes tengan líneas de tiempo compatibles y límites de segmento alineados. Los archivos codificados de forma independiente no son automáticamente seguros para combinarse en una sola escalera.
* Un manifiesto maestro hace referencia a listas de reproducción de medios o representaciones, que a su vez hacen referencia a segmentos. Mover archivos sin preservar esas rutas relativas rompe la reproducción incluso cuando todos los objetos existen.
* Los manifiestos y los segmentos de medios tienen patrones de cambio diferentes. Los segmentos VOD versionados pueden usar un almacenamiento en caché inmutable de larga duración, mientras que los manifiestos mutables necesitan una política que coincida con el comportamiento de publicación y reemplazo.
* Las claves de caché de la CDN y la autorización deben diseñarse juntas. Las cadenas de consulta, las cookies o los encabezados que varían innecesariamente pueden fragmentar la caché, mientras que las entradas de autorización omitidas pueden exponer contenido multimedia protegido.
* La duración del segmento, y por lo tanto el tamaño aproximado del segmento a una tasa de bits dada, afecta la latencia de arranque y la rapidez con la que un reproductor puede cambiar de variante.
* El direccionamiento por rangos de bytes permite que varios segmentos vivan en un solo recurso fMP4 o CMAF que los reproductores obtienen con solicitudes de rango HTTP, reduciendo la cantidad de objetos y claves de caché. No reduce el total de bytes entregados durante la reproducción lineal y complementa, en lugar de reemplazar, la entrega segmentada.
* El Robot /video/adaptive de Transloadit empaqueta variantes preparadas como HLS, MPEG-DASH o CMAF. Las exportaciones de almacenamiento deben conservar los metadatos relative\_path de cada resultado para que el paquete permanezca conectado.
* La aplicación no debería marcar un video como publicable solo porque la codificación terminó. También debe verificar la integridad de la exportación, la validez del manifiesto, el acceso a la entrega, los subtítulos, las imágenes de póster y la reproducción en los clientes de destino.

## Un enfoque práctico

1. 1\
   Traza la ruta de la solicitud y de los datos desde la ingesta de la fuente hasta el espectador, asignando un responsable a cada transición.
2. 2\
   Codifica una pequeña escalera a partir de fuentes representativas y valida el cambio entre variantes en dispositivos objetivo y redes realistas.
3. 3\
   Exporta el paquete adaptativo completo a rutas de almacenamiento versionadas y pruébalo a través de las reglas de la CDN de producción.
4. 4\
   Realiza simulacros de fallos para exportaciones parciales, manifiestos obsoletos, orígenes no disponibles, autorización caducada y eventos de finalización que no llegan.

Un flujo de trabajo multimedia de cuatro etapas

## Cuándo resulta útil Transloadit

Usa un Template guardado para, con /video/encode, convertir las grabaciones subidas, importadas o finalizadas en una escalera de tasas de bits ajustada a las condiciones del espectador, empaqueta esas variantes con /video/adaptive y exporta el árbol de directorios completo a un almacenamiento propio. Integra una CDN y un reproductor con los recursos VOD resultantes según tus requisitos de entrega.

## Límite de la arquitectura

Transloadit procesa archivos de video completos y puede empaquetar salidas de video bajo demanda (VOD) adaptativas, pero no opera la ingesta de contenido en vivo, una CDN de propósito general ni un reproductor de video. La transmisión en vivo y la reproducción para la audiencia necesitan componentes dedicados.

## Preguntas frecuentes

### ¿Debería todo servicio publicar tanto HLS como MPEG-DASH?

No necesariamente. HLS tiene amplio soporte nativo en entornos Apple, mientras que MPEG-DASH es común en otras pilas de reproductores. Algunos productos publican ambos a partir de medios CMAF comunes, pero eso añade trabajo de validación y operación. Elige según los requisitos reales de dispositivos y reproductores, y luego prueba los manifiestos, códecs, subtítulos y la ruta de autorización exactos.

### ¿Existe una escalera de tasas de bits adaptativa estándar?

No. Una escalera de tasas de bits útil sigue la resolución de la fuente, la tasa de fotogramas, la complejidad visual, las pantallas de destino y el ancho de banda medido de los espectadores. No hagas escalado ascendente más allá de la fuente ni añadas variantes contiguas que no mejoren la conmutación. Comienza con una escalera pequeña y ajústala usando datos de reproducción.

### ¿Cómo debería reemplazar un video ya almacenado en caché?

Usa una ruta versionada e inmutable para cada paquete aprobado y cambia el puntero del recurso en la aplicación cuando haya un reemplazo listo. Así evitas que un manifiesto nuevo haga referencia a segmentos antiguos o reemplazados parcialmente, y el almacenamiento en caché prolongado de los segmentos sigue siendo seguro.

### ¿Puede Transloadit encargarse de la parte en vivo de una CDN de video?

Puede preparar recursos de video bajo demanda basados en archivos después de que un archivo completo se sube, se importa o lo finaliza un proveedor de contenido en vivo. No acepta un flujo de entrada en vivo continuo, a veces llamado señal de contribución, ni opera la transmisión en vivo, por lo que un flujo de trabajo en vivo necesita un servicio especializado de ingesta y distribución.

### ¿Qué debería monitorear primero?

Haz seguimiento del tiempo de inicio para el espectador, la proporción de rebuffering, los errores fatales de reproducción, la tasa de bits media entregada, la tasa de aciertos de caché de la CDN, los bytes del origen, los fallos en las respuestas de manifiestos y segmentos, la duración del procesamiento, la integridad de las exportaciones y el costo por recurso publicado. Mantén los identificadores del reproductor, la CDN, el almacenamiento y el procesamiento correlacionables sin poner datos privados en las URL.

## Crea el flujo de trabajo

Pasa del concepto a una Assembly probada con documentación de Robots y demos funcionales.

### Robots relevantes

* [/video/encode](/es/docs/robots/video-encode.md)
* [/video/adaptive](/es/docs/robots/video-adaptive.md)
* [Crea variantes de video con /video/encode](/es/docs/robots/video-encode.md)
* [Empaqueta video adaptativo con /video/adaptive](/es/docs/robots/video-adaptive.md)
* [Exporta paquetes con /s3/store](/es/docs/robots/s3-store.md)
* [Protege las credenciales de almacenamiento](/es/docs/topics/template-credentials.md)
* [Lee la especificación de HTTP Live Streaming⁠](https://www.rfc-editor.org/rfc/rfc8216.html)
* [Lee la documentación de la API](/es/docs.md)
* [Explora demos funcionales EN (English)](/demos.md)
* [Crea un Workspace gratuito](/c/signup/)

Arquitectura de streaming y VOD

## Continúa con guías relacionadas

* [Cómo evaluar API de video en vivo y bajo demanda](/es/guides/video-streaming-api-evaluation.md)\
  Evalúa las API de video en vivo y bajo demanda por ingesta, latencia, reproducción, procesamiento, almacenamiento, observabilidad y responsabilidad.
* [Tras la transmisión en vivo: publica la grabación bajo demanda](/es/guides/turn-live-video-into-vod.md)\
  Convierte las grabaciones en vivo completadas en recursos confiables bajo demanda sin acoplar el ciclo de vida del VOD al proveedor en vivo.
* [Las mejores API de video para cargas de trabajo de producción](/es/guides/best-video-apis-2026.md)\
  Compara API de video líderes en 2026 por su rol en el ciclo de vida: recepción, procesamiento, almacenamiento, entrega, reproducción, edición y analítica.
