Watermark a Video

Stamp a clip with text or your own logo — any corner, any size, any opacity. It happens on your device; the video never leaves it.

Drawn in, not attached

A watermark that can be switched off is not a watermark. This one is painted into the frames, so from that point on it is part of the picture: no layer to hide, no metadata to strip, nothing that a re-upload or a re-encode quietly discards. The cost is a re-encode — a video’s frames are stored relative to one another, so the picture cannot be changed without rebuilding the stream.

Everything you choose is a proportion rather than a number of pixels. The type size is a percentage of the frame’s height, the logo’s width a percentage of the frame’s width, the margin a percentage of the shorter side. That is what makes one setting work on a phone video and a 4K export alike, instead of a mark that is unreadable on one and enormous on the other.

The nine placements are the same ones the PDF watermarker uses, worked out by the same code. “Bottom right” means the same thing in both tools, which matters more than it sounds when you are marking a deck and the video that goes with it.

Why this one runs locally

Watermarking is what people do to footage they are about to hand to someone else — a rough cut for a client, an unreleased clip for a review, evidence for a case. Uploading it to a website in order to mark it as yours gives away the one copy nobody was supposed to have. Here the ffmpeg doing the work is WebAssembly your browser downloads once and runs on your own CPU, and there is no server to upload to.

Video Watermark FAQ

Is my video uploaded to be watermarked?

No. The mark is drawn by an ffmpeg build compiled to WebAssembly that runs inside this page, on your own machine. Neither the video nor the logo is sent anywhere — which is the point, since the footage people most want to mark as theirs is usually the footage they least want on someone else's server.

Can the watermark be removed afterwards?

Not cleanly, and that is the whole idea. The mark is drawn into the frames themselves, so it is picture from that point on — no layer, no metadata, nothing to strip. Anyone determined enough can blur or crop it, as with any watermark anywhere, but it survives re-uploading, re-encoding and screen recording.

Why is the video re-encoded?

Because changing what the frames show means re-compressing them. A video's frames are stored relative to one another, so there is no way to alter the picture without rebuilding the stream. The output is H.264 in an MP4 at a quality setting where the extra generation is not visible, but it is a re-encode and it takes real time on a long clip.

What can I use as a logo?

PNG, JPEG, WebP or SVG. Transparency in a PNG is honoured, so a logo on a transparent background sits on the footage rather than in a white box. SVGs are turned into a high-resolution PNG here in the page first, because ffmpeg has no SVG decoder — handing it one directly fails with a message about an invalid input that tells you nothing.

Does the opacity setting work on a JPEG logo?

Yes. A JPEG has no alpha channel to fade, so the logo is converted to one that does before the opacity is applied. Skipping that step is a common bug in scripts that do this: the setting appears to do nothing at all, at every value.

Do the positions mean the same thing as in the PDF watermarker?

Yes — the same nine placements and the same margin rule, sharing the code that works them out. A margin is a percentage of the frame's shorter side rather than a fixed number of pixels, so the same setting looks the same on a phone video and on a 4K export.