Cómo construimos un compresor de vídeo que nunca sube tu archivo
2026-05-20
Busca "compress video online" y encontrarás decenas de servicios que parecen gratis, limpios y cómodos. Suelta el archivo, espera 30 segundos, descarga la versión más pequeña. Fácil.
Lo que casi ninguno te dice: tu vídeo está en su servidor. Quizá lo borren después de unas horas. Quizá su personal no lo vea. Quizá sus copias de seguridad no guarden una copia. Quizá.
Construimos ToolKoala Video Compressor para eliminar el "quizá". Tu archivo de vídeo nunca sale de tu portátil. Ni a nuestro servidor. Ni al de nadie. La compresión se ejecuta enteramente en tu navegador, sobre tu CPU. Este artículo explica cómo funciona, qué sacrificas y cómo verificarlo tú mismo.
El truco: FFmpeg compilado a WebAssembly
FFmpeg es el codificador de vídeo de código abierto que da vida a la mayoría de herramientas profesionales — desde el pipeline de ingestión de YouTube hasta tu app favorita de Mac. Lleva más de 20 años y maneja todos los códecs, contenedores y espacios de color imaginables.
Hace unos años, el equipo de FFmpeg compiló el proyecto entero a WebAssembly — un formato binario portátil que corre en cualquier navegador moderno a velocidad casi nativa. El resultado es @ffmpeg/ffmpeg, un paquete JavaScript que carga un módulo WebAssembly de ~30 MB y expone la interfaz de línea de comandos de FFmpeg a las páginas web.
Cuando visitas nuestro compresor de vídeo y sueltas un MP4, esto es lo que pasa:
- Tu navegador descarga el módulo WebAssembly de FFmpeg (~30 MB) una vez. Queda en caché, así que las visitas siguientes lo saltan.
- El módulo se carga en un Web Worker — un hilo en segundo plano que no puede tocar el DOM.
- Pasamos tu archivo de vídeo al worker vía
writeFile(). Es una copia en memoria. Sin red. - El worker ejecuta
ffmpeg -i input.mp4 -c:v libx264 -crf 28 output.mp4— re-codificando el vídeo en tu CPU. - El worker devuelve los bytes comprimidos. Los envolvemos en un Blob, generamos un enlace de descarga y listo.
En ningún momento tu vídeo se envía por la red. El único tráfico de red es la propia carga del motor FFmpeg desde un CDN público.
Verifícalo tú mismo — 10 segundos
No confíes en nosotros. Confía en las DevTools de tu navegador.
- Abre https://www.toolkoala.com/es/video-compress/ en Chrome o Firefox.
- Abre las DevTools (F12 o clic derecho → Inspeccionar).
- Ve a la pestaña Network. Haz clic en el icono de papelera para limpiar las peticiones anteriores.
- Suelta un archivo de vídeo en la página.
Verás disparar peticiones de red — pero solo para los archivos del motor FFmpeg (ffmpeg-core.js y ffmpeg-core.wasm desde unpkg.com). Tu archivo de vídeo hace cero peticiones salientes. Cero. Puedes dejar la pestaña Network abierta durante toda la compresión y verlo — se queda en silencio.
Este es el único tipo de afirmación de privacidad que importa: una que puedes verificar en 10 segundos sin confiar en el editor.
¿Por qué no hacen esto todos los compresores online?
Tres razones.
Velocidad. La compresión del lado del servidor usa hardware dedicado — normalmente GPUs o codificadores H.264 ASIC especializados. Pueden comprimir un clip de 1 minuto en menos de 10 segundos. WebAssembly corre en la CPU de tu portátil, en un solo hilo. El mismo trabajo nos lleva entre 1 y 3 minutos. Para casos personales suele estar bien. Para procesar 100 vídeos por lotes, no.
Tamaño de archivo. La memoria del navegador es finita. Limitamos las subidas a 1 GB. Las herramientas del servidor manejan cientos de gigabytes. Si comprimes un archivo 4K, usa HandBrake en el escritorio.
Coste de ingeniería. El lado servidor es la arquitectura estándar que enseña cada framework. El lado navegador requiere entender Web Workers, modelos de memoria de WebAssembly, blob URLs y las diferencias sutiles entre workers type: "module" y type: "classic" (nos chocamos con este bug nosotros mismos — los module workers no soportan importScripts, así que hay que cargar la build ESM de ffmpeg-core, no la UMD). Es un camino más molesto que pocos equipos eligen a menos que la privacidad sea un requisito real del producto.
A qué renunciamos
La honestidad importa más que el marketing aquí. Cosas que no podemos hacer y que los compresores del lado servidor sí:
- Aceleración GPU. Sin
-hwaccel cudani-c:v h264_nvenc. Pura CPU. - H.265/AV1 con aceleración por hardware. El WebAssembly del navegador soporta H.264 por software. Códecs más nuevos funcionan pero son aún más lentos.
- Archivos de más de ~1 GB. Los límites de memoria del navegador van de 2 a 4 GB según la plataforma. A partir de ~1 GB de entrada, las asignaciones empiezan a fallar.
- Experiencia móvil fiable. Los móviles se quedan sin memoria y se ralentizan drásticamente en vídeos largos. Recomendamos escritorio.
Si alguna de estas cosas te importa, usa HandBrake (escritorio, gratis, open source).
Por qué lo construimos igualmente
Dos casos reales nos convencieron:
Adjuntos de email. La gente choca constantemente con el límite de 25 MB de Gmail. Necesitan reducir un vídeo de 60 MB antes de enviarlo. No quieren pensar si el servicio de compresión está vendiendo miniaturas.
Material sensible. Reclamaciones de seguro, grabaciones médicas, momentos familiares, productos de trabajo en borrador. Cualquier cosa que no estés cómodo subiendo a un dominio aleatorio. La carga mental de "¿es seguro este sitio?" desaparece cuando la respuesta es demostrablemente "tu archivo no va a ningún sitio".
Si caes en alguno de estos cubos, pruébalo: ToolKoala Video Compressor. Suelta archivo, elige calidad, espera un minuto, descarga. Sin registro, sin marca de agua, sin email, sin subida.
Agradecimientos
Esto solo es posible gracias a las dos décadas de trabajo del equipo de FFmpeg, a los mantenedores de @ffmpeg/ffmpeg que lo envuelven para navegadores, y a los redactores de la especificación WebAssembly que hicieron la portabilidad a nivel de bytes lo bastante aburrida como para distribuirla.
Somos un proyecto pequeño construyendo una pila de herramientas de privacidad basadas en navegador. PDFs, imágenes, texto, vídeo — mismo principio cada vez: tus archivos no necesitan salir de tu dispositivo para que uses software.