Ir al contenido

Cómo funciona oCompress

Qué ocurre cuando arrastras un archivo, cómo puedes comprobar que no se sube nada y qué significan realmente la compresión sin pérdida y con pérdida.

La versión corta

Cuando abres una página de herramienta, tu navegador descarga la página y un pequeño programa: el compresor. Cuando añades un archivo, el navegador lo lee, el compresor lo procesa con tu propio procesador y el resultado se te entrega como una descarga. En ningún momento se envía el archivo por la red. Todo el proceso es así:

  1. Carga. Primero se cargan la página y la interfaz de la herramienta. El motor de cada tipo de archivo (imágenes, video y audio, o documentos) solo se descarga cuando añades un archivo de ese tipo, así que nunca descargas código que no usas.
  2. Lectura. Tu navegador da a la página acceso exactamente a los archivos que elegiste, a nada más de tu dispositivo.
  3. Compresión. El trabajo se ejecuta en un Web Worker, un hilo en segundo plano del navegador, así que la página sigue respondiendo y puedes cancelar en cualquier momento.
  4. Guardado. El archivo comprimido se crea en memoria (los videos grandes, en el almacenamiento privado del navegador) y se guarda mediante la descarga normal de tu navegador, uno a uno o en un ZIP.

Qué se ejecuta en tu navegador

Los navegadores modernos pueden ejecutar código compilado a una velocidad cercana a la nativa gracias a WebAssembly, y dan a las páginas web acceso a los codificadores de video por hardware del dispositivo mediante una interfaz llamada WebCodecs. oCompress usa ambas cosas:

  • Imágenes: MozJPEG para JPEG, OxiPNG y un cuantizador de paleta para PNG, el codificador WebP de la biblioteca libwebp de Google, libavif para AVIF, SVGO para SVG, y decodificadores y codificadores específicos para GIF y TIFF. Los códecs de JPEG, PNG, WebP y AVIF están compilados a WebAssembly.
  • Video y audio: WebCodecs con la biblioteca Mediabunny para leer y escribir contenedores como MP4 y WebM. La codificación usa el codificador por hardware de tu chip gráfico cuando está disponible, y por eso puede ser rápida incluso en un navegador. Los archivos MP3 los escribe el codificador LAME y los FLAC, libFLAC, ambos compilados a WebAssembly y cargados solo cuando hacen falta.
  • Documentos: nuestro propio código, basado en bibliotecas de PDF y ZIP de código abierto, abre los PDF y los archivos de Office, recomprime las imágenes que contienen con los códecs de imagen y escribe un archivo nuevo.

Todas las bibliotecas que incluimos son de código abierto: la mayoría con licencias permisivas como MIT, BSD y Apache 2.0, Mediabunny con la MPL 2.0, y el codificador de MP3 LAME con la LGPL, como archivo independiente y reemplazable. Consulta la lista de bibliotecas con sus versiones y licencias.

Cómo puedes comprobar que no se sube nada

No tienes por qué creernos sin más. Dos pruebas sencillas:

  • Desconéctate. Abre una página de herramienta, comprime un archivo para que se cargue el motor, desactiva el wifi o los datos móviles y comprime otro archivo del mismo tipo. Funciona, porque nada necesita la red.
  • Observa la red. En Chrome, Edge o Firefox, pulsa F12, abre la pestaña Red y comprime un archivo. Verás cómo se carga el código del compresor desde nuestro sitio y las peticiones de analítica y anuncios, pero ninguna petición que lleve tu archivo. Una foto de 10 MB aparecería como una subida de 10 MB; no hay ninguna.

La página sí envía eventos de uso anónimos a Google Analytics, del tipo «se comprimió un JPG de unos pocos megabytes». Estos eventos contienen la herramienta, el tipo de archivo y, en rangos aproximados, el tamaño, el ahorro y el tiempo de procesamiento; nunca el nombre del archivo ni su contenido.

Compresión sin pérdida: el mismo contenido en menos bytes

La compresión sin pérdida busca redundancia, cosas que se guardan más de una vez o que se pueden predecir, y las escribe de forma más compacta. La decodificación invierte el proceso con exactitud. Hay tres ideas que aparecen en casi todos los formatos sin pérdida:

  • Predicción. Los píxeles vecinos de una imagen o las muestras consecutivas de un audio suelen parecerse. Guardar la pequeña diferencia respecto a una predicción en lugar del valor completo deja números que en su mayoría están cerca de cero. Los filtros de PNG y el predictor lineal de FLAC funcionan así.
  • Repetición. Las secuencias repetidas se sustituyen por una referencia corta a la copia anterior. Es la parte LZ77 de DEFLATE, que se usa en ZIP, PNG y los archivos de Office.
  • Codificación entrópica. Los valores frecuentes reciben códigos cortos y los poco frecuentes, códigos largos (codificación Huffman o aritmética).

La compresión sin pérdida tiene un límite natural: el ruido aleatorio no se puede predecir, así que una foto con grano o una grabación con ruido nunca se reduce mucho sin pérdida. Por eso también comprimir un archivo que ya está comprimido, como un JPEG dentro de un ZIP, no ahorra casi nada.

Compresión con pérdida: quitar lo que no echarás de menos

Los códecs con pérdida van más allá y descartan información que el ojo y el oído humanos apenas perciben. JPEG y WebP guardan el color a menor resolución que el brillo y redondean el detalle fino de alta frecuencia. MP3, AAC y Opus eliminan los sonidos enmascarados por otros más fuertes. Los códecs de video como H.264 guardan de vez en cuando una imagen completa y, entre medias, sobre todo el movimiento y los cambios.

El ajuste de calidad o de tasa de bits decide cuánto se descarta. Con ajustes moderados, la pérdida es muy difícil de notar; si te pasas, aparecen los artefactos típicos: bloques y halos en las imágenes, un sonido metálico o como bajo el agua en el audio, imágenes emborronadas en las escenas rápidas de video.

Lo que prometen las herramientas y lo que no

  • Nunca recibes un archivo más grande. Si el resultado no es más pequeño, la herramienta te devuelve el original y te indica que ya está optimizado.
  • Los documentos y los archivos de audio dan exactamente los mismos bytes con el mismo archivo y los mismos ajustes; los codificadores de video por hardware pueden variar en unos pocos bytes de una ejecución a otra.
  • El texto de los documentos sigue siendo texto; las páginas nunca se convierten en imágenes.
  • Los metadatos de las imágenes, como la ubicación GPS, se eliminan por defecto, mientras que el perfil de color y la rotación se conservan. Los metadatos de video, como la ubicación, el dispositivo y las fechas, también se eliminan por defecto; el audio conserva sus etiquetas y su carátula salvo que lo desactives.

Lo que no podemos prometer es un porcentaje concreto. El ahorro depende por completo de cómo se creó el archivo: una foto de teléfono o un PDF escaneado suelen tener mucho margen; un archivo ya optimizado, poco. La herramienta muestra el tamaño exacto antes y después de cada archivo.

Límites de la compresión en un navegador

Una pestaña del navegador es un entorno aislado con memoria limitada, y eso marca los límites de lo que es práctico. La herramienta admite imágenes de hasta 200 MB y 100 megapíxeles, archivos PDF y de Office de hasta 300 MB, y video y audio de hasta 4 GB en una computadora (1 GB en teléfonos), aunque los videos 4K largos pueden seguir sin caber en la memoria de una pestaña. La velocidad depende de tu hardware: en nuestras pruebas en un PC con Windows rápido y Chrome, un minuto de video 1080p tardó unos 20 segundos y una foto de 24 megapíxeles unos 2,5 segundos; los teléfonos pueden ser mucho más lentos. El video y la mayoría de las conversiones de audio necesitan WebCodecs, que ofrecen las versiones actuales de Chrome, Edge y Opera, Firefox 130+ y Safari 26+; WAV y AIFF pueden convertirse en MP3, FLAC o WAV incluso sin esa interfaz.

Algunos formatos no tienen ningún decodificador en los navegadores, como WMA, AVI y WMV, y los archivos binarios antiguos de Office no se pueden reescribir de forma segura. Para ellos, la herramienta explica las opciones en lugar de generar un archivo que podría estar dañado. Cuando un trabajo es demasiado grande para un navegador, lo honesto es recomendar un programa de escritorio, como HandBrake para video o LibreOffice para documentos.