WebConverterの仕組み

すべての変換はブラウザ内で実行されます。ファイルがアップロードされることは一切ありません。ファイルを変換する際に何が起こるかを詳しく説明します。

簡単な説明

WebConverterにファイルをドロップすると、ディスクからブラウザメモリに読み込まれ、WebAssemblyとして実行されるコンパイル済みC++コードで処理され、新しいファイルとしてディスクに保存されます。パイプライン全体がCPU上で実行されます — デバイスから何も出ていきません。

確認方法:ブラウザの開発者ツール → ネットワークタブを開き、ファイルを変換してください。ファイルデータを運ぶ送信リクエストはゼロです。

画像変換

画像変換はEmscriptenでWebAssemblyにコンパイルされたMagnum C++グラフィックスライブラリによって実行されます。Magnumは幅広いフォーマットに対応した実績あるデコーダーとエンコーダーを提供 — ネイティブデスクトップアプリケーションで使用されているのと同じコードです。

変換フロー:

  1. File APIを使ってファイルがArrayBufferに読み込まれる
  2. バッファが4つの並列Web Workerの1つに渡される
  3. Worker内でWASMモジュールがソースフォーマットをデコードし、ターゲットフォーマットに再エンコード
  4. 結果がメインスレッドに転送され、ダウンロードとしてトリガーされる

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を使用 — LAME(MP3)とlibvorbis(OGG)のWebAssemblyビルド
  • WAVエンコーディングは純粋なJavaScript — RIFFヘッダーと16ビットPCMインターリーブサンプル
  • FLACエンコーディングはブラウザのネイティブAudioEncoder API(Chrome 107+)を使用、非対応ブラウザにはWAVフォールバック

入力フォーマットにはMP4, M4A, WAV, OGG, FLAC, WebM, MP3が含まれます — ブラウザがネイティブにデコードできるあらゆるコンテナ。

PDF変換

画像からPDFへの変換はpdf-libを使用 — ブラウザ内でPDFドキュメントを作成・操作する純粋なJavaScript PDFライブラリです。各画像はCanvas APIでデコードされ、JPEGに再エンコードされ、PDFにフルページとして埋め込まれます。

OCRが有効な場合、Tesseract.js — 主要なオープンソースOCRエンジン — が各画像のテキストを分析し、PDFに見えない選択可能なレイヤーとして配置します。OCRモデル(約10MB)はオンデマンドでダウンロードされ、ブラウザにキャッシュされます。

なぜクライアントサイド?

プライバシー

ファイルがデバイスから出ることは一切ありません。ハッキングされるサーバーなし、侵害されるデータベースなし、信頼しなければならない「30分後にファイルは削除されます」という約束なし。サーバーベース変換ツールのプライバシーリスクについて詳しく読む

速度

サーバーベースのツールはファイルのアップロード、キュー待ち、結果のダウンロードが必要です。WebConverterは3つすべてをスキップします。50MBの画像が1秒未満で変換されます。

制限なし

支払うべきサーバーインフラがないため、ファイルサイズ制限なし、1日の変換回数制限なし、「プロにアップグレード」の壁なし。

オフラインで動作

WebConverterはProgressive Web Appとしてインストールできます。インストール後はインターネット接続なしで動作 — 飛行機の中、地方、ネットワーク障害時でもファイルを変換できます。

環境負荷の低減

データ転送なしはネットワークエネルギーなしを意味します。サーバー処理なしはデータセンターの電力なしを意味します。サーバーベース変換ツールの隠れたエネルギーコストについて読む

オープンソース

WebConverterは無料のオープンソースです。コードの確認、問題の報告、GitLabでの貢献が可能です。

WebConverterを試す — 無料、プライベート、即時のファイル変換。