Video tools
100% FREE · no sign-up · runs in your browserDrop clips or stills of mixed sizes. Extract stills, smart-resize everything to one canvas, expand (outpaint) a picture, or erase an object — all in the browser. Nothing is uploaded.
🔒 Your videos never leave your device. Decoding, joining and export use the WebCodecs built into your browser. The optional upscaler (Real-ESRGAN, BSD-3-Clause, hosted on itsaiandi.com, about 5 MB once) also runs here. Nothing is uploaded.
1. Extract stills
The true first decoded picture and the true last picture (not the last keyframe), plus every frame, every N frames or seconds, scene-change / content keyframes, the sharpest frame in each interval (skipping blinks when a face is found), or a manual pick. Scrub with the slider or the arrow keys for frame-accurate stepping. Saved at the clip's own resolution. The ZIP is written one picture at a time so a long clip does not have to sit in memory.
No frames picked yet. Use the slider or the left/right arrow keys, then add.
2. Join, trim, split & export
Colour-matching and alignment ease across the join so the incoming clip meets the outgoing one without a jump. Deflicker smooths brightness pulsing without smearing motion. Grain is a light film-like noise added on export.
3. Audio
Added to the next join / trim export. Music stays on your device. The ambient bed is synthesized here (no samples, no upload).
3. Smart resize
Batch-conform clips and stills of mixed resolutions, aspects and frame rates to one target. Smart crop follows a face or person (MediaPipe) with a from-scratch saliency fallback, then smooths the camera path; click a preview to lock a focus point. Fit keeps the whole frame and fills the margins (blur, edge mirror, solid colour, a backdrop from the library, or a from-scratch PatchMatch / exemplar outpaint). Hybrid takes a little of both so neither the crop nor the fill is huge. Small sources can be upscaled with Real-ESRGAN (an ETA is shown); otherwise we use a Lanczos-3 resample. Frame rate is normalised with a blend, or RIFE if you are going up. Everything is drawn through the same sRGB canvas so the colour range matches when you join.
If you turn the upscaler on, a time estimate appears after a short benchmark.
4. AI upscaler (Real-ESRGAN)
The official realesr-general-x4v3 model (BSD-3-Clause, Xintao Wang), running in your browser with onnxruntime-web. Tiled so memory stays flat; neighbouring video frames are blended so the result does not flicker. A 4× pass of a 1080 frame is 8K; we then resize down if you picked 1080p or 4K. Honest timing: we time a real tile on this device before starting and show the estimate below. 8K on a laptop without a GPU is often many seconds (sometimes minutes) per frame — use the long queue, which is resumable and tries to keep this tab awake.
Caveat: the weights are released under BSD-3-Clause in the author's repo, but they were trained on DF2K (DIV2K + Flickr2K) and OST. DIV2K is offered for academic research; whether that carries over to trained weights is legally unsettled. We ship them with the same kind of note as our cut-out model. GFPGAN face enhancement is not included (it bundles non-commercial pieces).
Time estimate appears after a short benchmark on this device.
5. Frame check, contact sheet & jump detector
A thumbnail every N frames, plus an automatic checker for snaps, ghosting/double exposure, colour hops, background shifts and face-landmark jumps (especially at joins). One-click fixes use the small-jump warp and, where it helps, RIFE.
6. Expand (outpaint)
Extend a photo or the first frame of a clip onto a larger canvas or a new aspect ratio. This is the same from-scratch PatchMatch / exemplar fill as the “PatchMatch” fill mode above, with a seam blend, and for video we carry the previous frame’s fill forward so the margins don’t flicker. We looked at LaMa (Apache-2.0) and MI-GAN (MIT) — both have permissive code and weight licences, but both were trained on Places2, whose terms are non-commercial research only (MI-GAN’s teacher is also a non-commercial NVIDIA model). We do not ship those weights. Honest limits of the from-scratch fill: convincing on grass, sky, walls and fabric; weak on faces, text, unique objects and very large empty margins.
7. Erase an object
Paint a mask on one frame, track it through the clip with block optical flow (and the person cut-out when the brush sits on a person), grow or shrink the mask, then fill from background pixels in other frames (flow-guided). What cannot be copied is filled with the same PatchMatch inpainting, then temporally smoothed. Works best on a short, fairly still shot when the thing you erase is revealed in another frame — a stuck watermark or a passing object, not a subject that covers the same pixels for the whole clip.
Paint on the first frame (or scrub in Extract stills, then come back). Drag to brush; right-click or hold Shift to erase the mask.