Browser Extension
Hardware-accelerated conversions for converter.kaimdt.dev — GPU encoding via browser WebCodecs, and optionally system FFmpeg (NVENC · VideoToolbox · QSV) through the Hardware Bridge. The WebApp works without the extension; this is purely a performance upgrade.
Live Status
auto-updates every 5 sExtension
Not installed
Install below
Hardware Bridge
—
Requires extension first
GPU Encoder (WebCodecs)
Not available
Browser may not support WebCodecs
CPU Cores
1
Single-worker mode
JS Heap
Unknown
Chrome only
SharedArrayBuffer
Disabled
COOP/COEP headers required
Engine Comparison
| Feature | WASM No extension | Extension No HW Bridge | HW Bridge Ext + Native host |
|---|---|---|---|
| Video re-encoding | ✓ CPU | ✓ GPU/ASIC | ✓ NVENC · VideoToolbox · QSV · AMF |
| Max file size | ~2 GB | ~2 GB | Unlimited (streaming) |
| H.265 / HEVC encode | ✗ | Browser-dependent | ✓ (system codec) |
| AV1 decode | CPU (slow) | GPU fast | GPU fast |
| Audio conversion | ✓ | ✓ | ✓ |
| Speed (1080p 60 s) | ~3–5 min | ~30–60 s | ~5–15 s |
| Requires extension | — | ✓ | ✓ |
| Requires HW Bridge | — | — | ✓ (optional install) |
| Open Source | — | ✓ Apache-2.0 | ✓ Apache-2.0 |
The Extension and Hardware Bridge are open source (Apache-2.0). The converter web app itself is proprietary.
Step 1 — Install the Extension
Supported: Chrome · Edge · Brave · Opera · Vivaldi · Chromium · Firefox. 🧭 Safari — planned.
Step 2 — Hardware Bridge (optional · open source)
The Hardware Bridge connects the extension to system FFmpeg via Native Messaging. It enables NVENC, VideoToolbox, QuickSync, and AMF hardware encoders and removes the 2 GB file-size limit. The installer automatically detects FFmpeg; if not found it will offer to install it for you.
Download the pre-built installer for your OS from GitHub Releases — no need to install Node.js or clone the repo:
Or run from source (requires Node.js)
Clone the repository
git clone https://github.com/kaimdt/kaimdt-converter cd kaimdt-converter/native-host-installer
Run the installer
The GUI installer guides you through all steps automatically and supports all browsers. In terminal mode, provide your extension ID (all Chromium-based browsers use the same Chrome Web Store ID) or pass --firefox for Firefox (fixed ID kaimdt-converter@kaimdt.dev).
# macOS / Linux — GUI (recommended) ./install.sh # macOS / Linux — terminal, Chrome / Edge / Brave / Opera / Vivaldi ./install.sh --no-gui --chrome-ext-id YOUR_EXTENSION_ID # macOS / Linux — terminal, Firefox ./install.sh --no-gui --firefox # Windows — GUI (recommended) .\install.bat # Windows — terminal, Chrome / Edge / Brave / Opera / Vivaldi .\install.bat --no-gui --chrome-ext-id YOUR_EXTENSION_ID
The installer checks for FFmpeg and, if not found, offers to install it automatically or let you provide a custom path.
🔍 Where do I find my Extension ID?
Open your browser's extension page in the address bar: chrome://extensions (Edge: edge://extensions, Opera: opera://extensions).
Enable Developer mode using the toggle switch (usually top-right).
Find the kaimdt Converter card and copy the ID shown below the name, e.g. opkfolgclmgdodompoldolcmcnmpiogo.
Paste the ID into the install command or enter it in the GUI installer — it auto-detects the ID when the extension is already installed in this browser.
If you installed the extension from the Chrome Web Store, the ID is permanent. Only developer-mode (unpacked) extensions get a different ID.
Reload the extension
chrome://extensions (Edge: edge://extensions), click the reload button on kaimdt Converter. The "HW Bridge" badge will appear in the navbar when active.Hardware Bridge — FAQ
What is the Hardware Bridge / Native Host?
Do I need to install this once or every time?
Which browsers are supported?
All major desktop browsers are supported:
- Chromium-based: Chrome, Chromium, Edge, Brave, Opera, Vivaldi — all share the same extension ID from the Chrome Web Store.
- Firefox: Uses a fixed extension ID (
kaimdt-converter@kaimdt.dev) — no ID entry needed. - Safari: Planned for a future release.
The installer writes manifest files to each browser's native messaging host directory. You can install for multiple browsers at once using the GUI installer.
Which operating systems are supported?
- macOS: Intel and Apple Silicon.
- Linux: Any distribution with a supported package manager (apt, dnf, pacman, zypper, Flatpak). Both x86-64 and ARM.
- Windows: Windows 10 and later (x86-64).
How does the browser communicate with the native host?
What happens after a browser update or extension update?
Exception: If you loaded the extension as an unpacked (developer-mode) extension and reloaded it, the temporary extension ID may change. In that case, re-run the installer.
How do I update the native host?
./install.sh again — the installer detects whether a version is already present and updates it.The Hardware Bridge shows 'Not installed' even though I installed it. What should I do?
- Reload the extension: Open
chrome://extensionsand click the reload icon on kaimdt Converter. The extension will then make a new connection attempt. - Reload this page: Status updates automatically every 5 seconds. Pressing F5 forces an immediate recheck.
- Check the extension ID: The installer was run with a specific extension ID. Make sure the installed extension has the same ID (visible in
chrome://extensionswith Developer mode enabled). - Re-run the installer with the correct extension ID (see step 2 above).
- Check FFmpeg: The native host requires FFmpeg on the system path or as an absolute path. Test in a terminal:
ffmpeg -version
Does the native host run in the background all the time?
How do I uninstall the native host?
macOS / Linux:
./install.sh --uninstallWindows (PowerShell):
.\install.bat --uninstallEncoder Priority
Hardware Bridge
System FFmpeg via browser extension — NVENC, VideoToolbox, QuickSync, AMF
GPU (WebCodecs)
Browser GPU/ASIC encoder via WebCodecs API — ~90%+ native throughput
FFmpeg WASM
CPU-based FFmpeg WebAssembly — full codec support, works everywhere
Open Source
Licensed Apache-2.0. The converter web application is proprietary.
Security
The content script is only active on converter.kaimdt.dev and beta.converter.kaimdt.dev. No data is collected or transmitted outside your machine. All file processing happens locally. The native host only runs when explicitly triggered by a conversion.