How your browser learned to edit video
Until recently, editing video meant installing software or uploading to a server. Here’s what changed, and what a browser can now do on its own.
By The Kling Watermark Remover teamPublished 5 min read
For most of the web’s history, a browser could play video but not really work with it. You could draw a frame onto a canvas, but there was no efficient way to decode a file frame by frame, change the pixels and produce a new video file. Anything serious meant desktop software or uploading your file to someone’s server.
The missing piece: WebCodecs
WebCodecs is a browser API that gives web pages direct access to the same video decoders and encoders the browser uses for playback. Chrome and Edge have supported it since 2021, and other browsers have been adding support since. Crucially, those codecs are often hardware accelerated: the same chip that lets your laptop play 4K video smoothly can now decode and encode frames for a web app.
WebCodecs handles only the compressed video itself. Reading an MP4 or WebM container (demuxing) and writing one (muxing) is left to the page, which is why tools like ours pair WebCodecs with a small JavaScript library for file formats.
Keeping the page responsive: Web Workers
Processing thousands of frames would freeze a web page if it ran on the main thread, the one that also handles clicks and scrolling. Web Workers run code in the background instead. The page stays smooth, shows live progress, and can stop the work instantly when you press cancel.
Drawing without a screen: OffscreenCanvas
Changing pixels needs a canvas, but a worker has no access to the page. OffscreenCanvas solves that: it’s a canvas that exists only in memory, usable from a worker. Each decoded frame is drawn to it, the pixels are changed, and the result goes straight to the encoder.
The real limit: memory
A single uncompressed 1080p frame takes about 8 MB. A one-minute clip at 30 frames per second is 1,800 frames, or roughly 15 GB if you held them all at once. So browser tools have to stream: decode a frame, process it, encode it, release it, and move on. That’s also why browser tools set limits on file size and length. Your tab shares memory with everything else your device is doing.
What this means for you
- No install: the tool loads like any web page.
- No upload: the file never has to leave your device.
- Near-native speed where hardware codecs are available.
- Limits set by your device’s memory rather than a server’s queue.
Got a video with a watermark?
Open the editor