← Volver a los casos

/casos/montaje-automatico-video

La máquina lenta no es un problema: es la restricción de diseño

Un pipeline de montaje automático: entra material en bruto y sale un vídeo editado. Las decisiones de montaje —qué cortar, qué texto, dónde el zoom— las toma la IA; los píxeles los mueve ffmpeg.

Cliente
Herramienta propia
Rol
Diseño y desarrollo. Medición del equipo, arquitectura del motor y decisiones de compromiso entre calidad y tiempo.
Periodo
2026 — en curso
Estado
En desarrollo

El problema

Montar vídeo corto a mano es repetitivo: transcribir, cortar los silencios, poner subtítulos, meter una tarjeta de texto, exportar. Automatizarlo es viejo. Lo que no es viejo es hacerlo en un portátil de 2012 con dos núcleos, sin tarjeta gráfica aprovechable y con la RAM contada.

La decisión

Se midió primero, y la medición cambió la arquitectura entera

La forma elegante de animar textos sobre vídeo es renderizar HTML fotograma a fotograma con un navegador: se escribe la animación en CSS y sale lo que uno quiera. Medido en este equipo, Chrome tardaba 864 ms por fotograma — 1,16 imágenes por segundo. Un vídeo de sesenta segundos son veintiséis minutos solo de rasterizar. ffmpeg, para el mismo material, iba a 1,2 veces la duración.

De ahí sale la decisión que explica todo el motor: Chrome se usa para rasterizar una tarjeta a una imagen, una sola vez, y ffmpeg la anima como una capa encima. Se pierde la animación CSS arbitraria; a cambio, un vídeo corto se monta en minutos en vez de en media hora. Veintidós veces más rápido, en el mismo equipo y con el mismo resultado en pantalla para lo que de verdad se usa.

La segunda medición movió el trabajo de sitio. La misma prueba en el portátil y en el servidor: diez segundos de vídeo vertical con subtítulos quemados y zoom tardaban 17 segundos en el portátil y 7 en el servidor. Lo pesado se fue allí, y el portátil se quedó con lo que decide, no con lo que calcula.

Y una restricción que no es técnica sino de disco: el sistema tenía 0,6 GB libres. Nada del proyecto vive ahí — ni modelos, ni caché, ni los temporales de ffmpeg. Cada paso pesado comprueba la memoria libre antes de empezar y avisa, porque quedarse sin RAM a mitad de una transcripción da un error que no le dice nada a quien lo lee.

Qué construí

Este caso no lleva demo en vivo: no es una web, es un proceso. Lo que vale la pena enseñar es el resultado, y eso son vídeos.

Las cifras de esta página son medidas en el equipo real el 15 de septiembre de 2026, no estimaciones.