Как работает WebConverter

Каждая конвертация выполняется в вашем браузере. Файлы никогда не загружаются. Вот что именно происходит при конвертации файла.

Краткая версия

Когда вы перетаскиваете файл на WebConverter, он считывается с диска в память браузера, обрабатывается скомпилированным C++ кодом, работающим как WebAssembly, и сохраняется обратно на диск как новый файл. Весь конвейер работает на вашем CPU — ничто не покидает устройство.

Вы можете проверить это: откройте Инструменты разработчика → вкладку «Сеть», затем конвертируйте файл. Вы увидите ноль исходящих запросов с файловыми данными.

Конвертация изображений

Конвертация изображений обеспечивается графической библиотекой C++ Magnum, скомпилированной в WebAssembly с помощью Emscripten. Magnum предоставляет проверенные декодеры и кодировщики для широкого спектра форматов — тот же код, что используется в нативных десктопных приложениях.

Процесс конвертации:

  1. Файл считывается в ArrayBuffer с помощью File API
  2. Буфер передаётся одному из четырёх параллельных Web Worker
  3. Внутри Worker WASM-модуль декодирует исходный формат и кодирует в целевой
  4. Результат передаётся обратно в основной поток и запускается как загрузка

Четыре Worker работают параллельно, поэтому пакетная конвертация десятков файлов завершается быстро без зависания страницы.

Поддерживаемые форматы изображений

  • Вход (14 форматов): BMP, DDS, GIF, HDR, ICO, JPEG, KTX, KTX2, PGM, PIC, PNG, PPM, PSD, TGA, WebP
  • Выход (8 форматов): PNG, JPEG, BMP, TGA, HDR, EXR, KTX2, WebP

Конвертация аудио

Конвертация аудио и извлечение аудио из видео использует встроенную функцию браузера AudioContext.decodeAudioData() для декодирования исходного файла, затем кодирует в целевой формат в Web Worker.

  • MP3 и OGG используют wasm-media-encoders — WebAssembly-сборки LAME (MP3) и libvorbis (OGG)
  • WAV кодируется на чистом JavaScript — RIFF-заголовок плюс 16-битные PCM чередующиеся сэмплы
  • FLAC использует нативный API браузера AudioEncoder (Chrome 107+), с откатом на WAV для неподдерживающих браузеров

Входные форматы: MP4, M4A, WAV, OGG, FLAC, WebM, MP3 — любой контейнер, который браузер может декодировать нативно.

Конвертация PDF

Конвертация изображений в PDF использует pdf-lib — чистую JavaScript-библиотеку PDF, создающую и редактирующую PDF-документы в браузере. Каждое изображение декодируется через Canvas API, перекодируется в JPEG и вставляется как полная страница в PDF.

При включённом OCR Tesseract.js — ведущий OCR-движок с открытым кодом — анализирует каждое изображение на наличие текста и размещает его как невидимый выделяемый слой в PDF. Модель OCR (~10 МБ) загружается по запросу и кешируется браузером.

Почему клиентская обработка?

Конфиденциальность

Ваши файлы никогда не покидают устройство. Нет сервера для взлома, нет базы данных для утечки, нет обещания «файлы удаляются через 30 минут», которому нужно доверять. Узнайте больше о рисках конфиденциальности серверных конвертеров.

Скорость

Серверные инструменты требуют загрузки файла, ожидания в очереди и скачивания результата. WebConverter пропускает все три этапа. Изображение в 50 МБ конвертируется менее чем за секунду.

Без ограничений

Поскольку нет серверной инфраструктуры для оплаты, нет ограничений размера файла, нет дневных квот конвертации и нет барьера «перейдите на Pro».

Работает офлайн

WebConverter можно установить как Progressive Web App. После установки работает без подключения к интернету — конвертируйте файлы в самолёте, в сельской местности или при сбое сети.

Меньшее воздействие на окружающую среду

Отсутствие передачи данных означает отсутствие сетевой энергии. Отсутствие серверной обработки означает отсутствие электричества дата-центров. Узнайте о скрытых энергозатратах серверных конвертеров.

Открытый исходный код

WebConverter — бесплатный проект с открытым исходным кодом. Вы можете проверить код, сообщить о проблемах и внести вклад на GitLab.

Попробуйте WebConverter — бесплатная, приватная, мгновенная конвертация файлов.