Hoe WebConverter werkt

Elke conversie draait in je browser. Er worden nooit bestanden geüpload. Dit is precies wat er gebeurt wanneer je een bestand converteert.

De korte versie

Wanneer je een bestand op WebConverter neerzet, wordt het van je schijf in het browsergeheugen gelezen, verwerkt door gecompileerde C++-code die als WebAssembly draait, en als nieuw bestand teruggeschreven naar je schijf. De hele pijplijn draait op je CPU, er verlaat niets je apparaat.

Je kunt dit verifiëren: open de Developer Tools → het tabblad Netwerk in je browser en converteer dan een bestand. Je ziet nul uitgaande verzoeken met bestandsgegevens.

Afbeeldingsconversie

Afbeeldingsconversie wordt mogelijk gemaakt door de C++-grafische bibliotheek Magnum, gecompileerd naar WebAssembly met Emscripten. Magnum biedt beproefde decoders en encoders voor een breed scala aan formaten, dezelfde code die in native desktopapplicaties wordt gebruikt.

Het conversieproces:

  1. Je bestand wordt met de File API in een ArrayBuffer gelezen
  2. De buffer wordt doorgegeven aan een van vier parallelle Web Workers
  3. In de Worker decodeert de WASM-module het bronformaat en codeert het opnieuw naar het doelformaat
  4. Het resultaat wordt teruggestuurd naar de hoofdthread en als download gestart

Vier workers draaien parallel, zodat batchconversies van tientallen bestanden snel klaar zijn zonder dat de pagina vastloopt.

Ondersteunde afbeeldingsformaten

  • Invoer (14 formaten): BMP, DDS, GIF, HDR, ICO, JPEG, KTX, KTX2, PGM, PIC, PNG, PPM, PSD, TGA, WebP
  • Uitvoer (8 formaten): PNG, JPEG, BMP, TGA, HDR, EXR, KTX2, WebP

Audioconversie

Audioconversie en video-naar-audioconversie gebruiken de ingebouwde AudioContext.decodeAudioData() van de browser om het bronbestand te decoderen, en coderen daarna naar het doelformaat in een Web Worker.

  • MP3 en OGG coderen gebruikt wasm-media-encoders, WebAssembly-builds van LAME (MP3) en libvorbis (OGG)
  • WAV coderen is pure JavaScript, een RIFF-header plus 16-bits PCM met afwisselende samples
  • FLAC coderen gebruikt de native AudioEncoder-API van de browser (Chrome 107+), met een WAV-fallback voor browsers die het niet ondersteunen

Invoerformaten zijn onder meer MP4, M4A, WAV, OGG, FLAC, WebM en MP3, elke container die de browser natief kan decoderen.

PDF-conversie

Afbeelding-naar-PDF-conversie gebruikt pdf-lib, een PDF-bibliotheek in pure JavaScript die PDF-documenten in de browser maakt en bewerkt. Elke afbeelding wordt via de Canvas API gedecodeerd, opnieuw als JPEG gecodeerd en als volledige pagina in de PDF ingesloten.

Wanneer OCR is ingeschakeld, analyseert Tesseract.js, de toonaangevende opensource OCR-engine, elke afbeelding op tekst en plaatst die als onzichtbare selecteerbare laag in de PDF. Het OCR-model (~10 MB) wordt op aanvraag gedownload en door de browser in de cache bewaard.

Waarom client-side?

Privacy

Je bestanden verlaten je apparaat nooit. Er is geen server om te hacken, geen database om te kraken, geen belofte dat "bestanden na 30 minuten worden verwijderd" die je moet vertrouwen. Lees meer over de privacyrisico's van servergebaseerde converters.

Snelheid

Servergebaseerde tools vereisen dat je je bestand uploadt, in een wachtrij staat en het resultaat downloadt. WebConverter slaat alle drie over. Een afbeelding van 50 MB wordt in minder dan een seconde geconverteerd.

Geen limieten

Omdat er geen serverinfrastructuur betaald hoeft te worden, zijn er geen limieten op bestandsgrootte, geen dagelijkse conversielimieten en geen "upgrade naar pro"-drempels.

Werkt offline

WebConverter kan als Progressive Web App worden geïnstalleerd. Eenmaal geïnstalleerd werkt het zonder internetverbinding, zodat je bestanden kunt converteren in het vliegtuig, op het platteland of tijdens een netwerkstoring.

Lagere impact op het milieu

Geen dataoverdracht betekent geen netwerkenergie. Geen serververwerking betekent geen elektriciteit voor datacenters. Lees over de verborgen energiekosten van servergebaseerde converters.

Probeer WebConverter, gratis, privé, directe bestandsconversie.