Add a text or logo watermark placed in the file own pixels, so the preview is where the export puts it. Nine positions, exact placement by dragging, a tiled mode a crop cannot remove, and sizes as a percentage of the frame.
Initializing in your browser…
Cut a clip out of a video, choosing whether the cut lands on the exact frame (re-encodes to MP4) or leaves the streams untouched (instant and lossless, but only at a keyframe). The result says which ran and reads the real length back off the file.
Convert a video between MP4, WebM, OGG, MOV, AVI and MKV, each naming the codecs it really writes and each producing a file that actually plays. One quality dial normalised into four different encoder scales.
Join clips end to end, saying in advance whether they can be stitched together untouched and, when they cannot, exactly which differences stop it. Clips of different sizes are letterboxed into one frame rather than squashed.
Course preview videos need a mark that survives being cropped, so leaked copies stay traceable.
Input
lesson.mp4 · text · 6% of the frame height · tiled · 40% opacity
Output
lesson.mp4 with 54 marks laid across the whole frame
A fixed, low-opacity overlay marks ownership without obscuring content and is awkward to crop out cleanly. You can mark a video with either custom text or a transparent PNG logo, set its color, size, and opacity, and place it using the nine-position grid or by dragging it freely in the live preview. The watermark is burned in by re-encoding the video locally in your browser, so the file is never uploaded to a server.
Add a text or image watermark to your videos, placed in the file's own pixels so the preview is where the export puts it. Nine positions, exact placement by dragging, and a tiled mode that covers the whole frame for marks that cannot be cropped off.
Watermark preview copies of videos to deter unauthorized use while sharing with clients or reviewers.
Add a logo watermark to all published videos for consistent branding across your content.
Embed your name or business details into videos as evidence of original authorship, tiled across the frame so a crop cannot remove it.
Keep the text mode, type your copyright line, choose bottom right and set opacity to about 40 percent. The type size is a percentage of the frame height, so it reads the same on any resolution.
Switch to Logo mode and load a transparent PNG. The width is a percentage of the frame width and that number is what the scale filter receives, so the preview and the file agree.
Turn on tiling and set the spacing. The mark is repeated across the whole frame, so cropping cannot remove it, and the page says how many marks it drew.
A watermark tool has one job beyond drawing: the mark has to end up where the preview said it would. That failed here in three separate ways, and all three were the same mistake, a number that meant one thing on the screen and another in the file.
The drag was thrown away. A mark dropped anywhere on the preview was snapped on export to whichever of nine cells it fell nearest, using 33 and 66 percent thresholds, so a mark placed a third of the way across came out in the corner. Custom placement is now an exact expression, clamped so the mark stays inside the frame, and the page prints the pixel coordinates it will use. The size slider reached nothing: it moved the preview's CSS width in DISPLAYED pixels while the encoder had a fixed 150 pixel width written into it. Sizes are percentages of the frame now, of its height for type and of its width for a logo, so the same setting looks the same on a phone clip and a 4K master, and the figure in the argv is the one on the page. And the margin, the mark size and the position are all worked out once, in source pixels, and used by both the preview and the encoder.
One fault was invisible until it happened to you. A watermark containing a percent sign drew NOTHING. drawtext expands text by default, and a string it cannot expand comes out empty rather than as an error: measured in this build, the text 100% produced a clean exit and zero ink, whether passed inline, escaped, or read from a file. Text expansion is turned off now, and the words themselves go into a file rather than into the filter, so a colon, an apostrophe, a backslash, a semicolon and a percent sign all survive.
Tiling is real. A single corner mark can be cropped off, which is exactly the case a watermark is meant to cover, so there is a lattice mode that covers the whole frame with a spacing you set. Each tile is its own filter, so the count is capped and the page says when it has thinned the grid to stay inside what one chain will run. Text is drawn in the bundled Roboto, which is the only face the encoder has, so there is no font picker and the page says why. The output is MP4 with H.264, and the soundtrack is copied through untouched when the container can hold it.
Yes. The preview and the encoder read one calculation, in the source's own pixels, scaled by a single factor for display. A dragged mark is written at the exact point rather than snapped to a corner.
No. Text is drawn by the encoder using the one font bundled with the page, Roboto, because a WebAssembly build has no access to your system fonts.
The text drawing filter reads certain characters as instructions rather than as letters, and a string it cannot make sense of is drawn as nothing at all rather than reported as an error. Text expansion is now turned off and the words are passed in a file, so every character reaches the picture.
Burned-in marks become part of the pixel data, so they cannot be toggled off. A determined editor could still crop or paint over a corner mark, which is what the tiled mode is for.
Not here. The mark applies to the whole clip. To watermark one section, trim it first with the Video Trimmer and mark the trimmed clip.
Video is decoded and re-encoded on your own device. Large files never leave your machine.