Ir al contenido principal
Infraestructura

Imágenes listas en el mismo segundo en que se graban

· 4 min de lectura

Hacer un vídeo a partir de una web es una carrera de relevos. El grabador captura un clip y, segundos después, el motor de vídeo lo necesita fotograma a fotograma. En nuestro segundo día en producción convertimos ese relevo en algo en lo que nunca tienes que pensar.

Un vídeo es un relevo de archivos

Cuando pegas una dirección en PageToVid, varios pasos trabajan uno tras otro. El grabador maneja un navegador real y guarda clips cortos y capturas nítidas. El paso de voz escribe una pista de narración y sus subtítulos. Después, el motor de render lo une todo en el MP4 que descargas.

Cada uno de esos pasos produce archivos, y cada archivo lo necesita el siguiente paso casi de inmediato. Todo el vídeo depende de una promesa sencilla: un archivo recién escrito se puede leer al instante, desde cualquier paso, en cualquier máquina y en cualquier navegador que lo previsualice.

Por qué una carpeta era la imagen equivocada

Nuestra primera configuración trataba el almacenamiento en la nube como si fuera una carpeta. Un bucket estaba montado en el contenedor, el código escribía en él como en un disco local y el servidor web devolvía los archivos. Era el camino fácil, y en desarrollo esa misma carpeta vivía sin más en un portátil.

Los vídeos reales nos mostraron el límite de esa imagen. Un sistema de archivos de red disfrazado de carpeta guarda sus escrituras en búfer y almacena en caché lo que sabe, así que un archivo escrito hace un momento no siempre es visible al momento siguiente. Para un producto cuyo motor pide un clip segundos después de grabarlo, esa pequeña ventana era justo la que importaba. Queríamos que fuera imposible pedir un archivo que todavía no estuviera ahí.

También nos aseguramos de que el motor de render hable siempre con el servidor correcto. Obtiene los medios de la aplicación que corre a su lado, en el mismo contenedor, y su dirección sigue ahora el puerto en el que la aplicación escucha de verdad, en lugar de un valor por defecto que pertenecía a otra herramienta.

Trabajar en local, subir, pasar la dirección

Así que dejamos de fingir que el bucket era un disco. Cada paso trabaja ahora en el disco local rápido del contenedor y, en cuanto un archivo está terminado, se sube con el SDK de Google Cloud Storage. La subida devuelve una dirección https estable, y desde ese momento es esa dirección la que usa el resto del producto.

El mismo camino sirve para todo tipo de archivos:

  • los clips y capturas que graba el grabador
  • la pista de voz en off y sus subtítulos
  • el MP4 final
  • las imágenes y los clips que añades en el editor

En cuanto termina la subida, el archivo está ahí para quien lo lea: el motor de render, la vista previa del editor y la API ven lo mismo al mismo tiempo.

Un solo camino de código, del portátil a la nube

En desarrollo local no hay bucket, y la misma función de almacenamiento devuelve simplemente una ruta local. Una función, dos entornos, el mismo comportamiento. Lo que probamos en un portátil es lo que corre en producción, y eso mantiene las sorpresas lejos de los vídeos.

Hubo un extra que notamos enseguida. Grabar y convertir vídeo en un disco local es más rápido que escribir a través de un montaje de red, así que cada paso termina un poco antes y el vídeo te llega un poco más rápido.

Un despliegue que lo declara todo

Cambiar el código era la mitad del trabajo. La otra mitad era asegurarse de que el servicio en marcha coincidiera con él. Cloud Run conserva los volúmenes ya conectados si un despliegue nuevo no los menciona, así que quitar el montaje del comando de despliegue no bastaba por sí solo.

Añadimos una instrucción explícita que borra los volúmenes en cada despliegue. Ahora cada versión describe toda la configuración, incluido lo que no debe estar, en lugar de un cambio encima de lo que ya esté funcionando. Es un hábito pequeño con un efecto grande: lo que dice el flujo de trabajo es lo que corre.

Lo que cambia para tu vídeo

Para quien hace un vídeo, nada de esto se ve, y de eso se trata. Pegas un enlace, el grabador graba, la voz habla y el motor de render encuentra cada pieza justo donde la espera. La vista previa en tu navegador y el render en nuestro lado leen el mismo archivo.

También le dio al producto una base sólida. Cada paso habla ahora en direcciones duraderas en lugar de rutas en una sola máquina, que es la forma que necesita una cadena que crece. Si quieres ver el resultado, pega un sitio y míralo convertirse en vídeo.

Míralo en tu propia web

Pega una página y obtén el vídeo narrado del que habla este blog. El primero es gratis.

Primer vídeo gratis · sin tarjeta · listo en minutos

← Todos los artículos