finds.dev← search

// the find

scalarhq/videotranscode.space

★ 512 · TypeScript · Apache-2.0 · updated Dec 2021

A video transcoder and converter built using Web Assembly and FFMPEG to transcode and convert videos right in your browser while protecting your privacy

Browser-based video transcoder that runs FFmpeg via WebAssembly entirely client-side — no uploads, no server. It's aimed at developers and privacy-conscious users who need quick format conversions without sending files to a third party. The CLUI (command-line-style UI) is an interesting design choice for non-technical users.

The core privacy promise is real: FFmpeg runs in-browser via SharedArrayBuffer + WASM, so files never leave the machine. The feature set covers more than basic transcoding — trim, concat, speed adjustment, GIF export, greyscale, photo montage — all wired through a plugin-style feature system that's reasonably easy to extend. Codecs and formats are defined in YAML files, which makes adding or tweaking codec options a straightforward text edit rather than a code change. The workflow system lets users compose multiple operations in sequence, which is a genuinely useful power-user feature.

The repo has been dead since December 2021, which is a serious problem for anything touching FFmpeg.wasm — the WASM ecosystem has moved on significantly and the bundled ffmpeg-core.js in /public is a frozen snapshot that won't get CVE fixes. SharedArrayBuffer requires cross-origin isolation headers (COOP/COEP), and the README doesn't mention this; anyone deploying this will hit a blank screen until they figure that out. The build pipeline runs a 'generate' step that produces codec/format JS from YAML, but the generated output is checked into git alongside the source, which is a maintenance trap. No real error handling surface for FFmpeg failures — if a transcode silently fails or produces a corrupt output, the user gets no useful feedback.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →