Features
Video upscaler
Upscale videos 2× or 4× using WebGL Lanczos resampling — fully in-browser, no upload required. Queue multiple files and retry any that fail.
Video Upscaler
The video upscaler increases video resolution 2× or 4× using WebGL-accelerated Lanczos resampling — a high-quality algorithm that produces sharp results without the softness of bicubic interpolation. All processing runs locally in your browser.
Accessing the tool
Navigate to /video-upscale or click Video Upscaler in the header tools menu.
Choosing a scale
2× Upscale — Doubles resolution in each dimension. A 960×540 video becomes 1920×1080. This is the recommended option for most clips.
4× Upscale — Quadruples resolution. A 480×270 video becomes 1920×1080. Ideal for old, low-resolution footage. Note: the input must be ≤ 1024px on the longest side (a 1920px input would produce 7680px output, exceeding browser rendering limits).
Supported formats
Upload MP4, WebM, MOV, AVI, MKV, MPEG, M4V, or OGV files. Maximum file size: 200 MB.
Processing time
Processing time depends on clip duration, source resolution, and your device's GPU. Rough estimates:
| Clip length | 720p source | Notes |
|---|---|---|
| 10s | 30–60s | Fast GPU |
| 30s | 2–5 min | Mid-range laptop |
| 60s | 5–10 min | Near the duration limit |
The maximum clip duration is set in the site configuration (typically 120 seconds). Longer clips should be trimmed before upscaling.
Output format
Upscaled video is exported as WebM (VP9) — a widely supported, efficient format. Download from the queue card when processing is complete.
Queue
You can add multiple clips to the queue and they will process sequentially. While a clip is processing you can continue adding more files. The current clip must finish before the next begins.
Use the × button on a queue card to remove a clip. Completed clips show a green Download button.
Dimension limits
| Input resolution | 2× output | 4× output |
|---|---|---|
| 480×270 | 960×540 | 1920×1080 |
| 960×540 | 1920×1080 | 3840×2160 |
| 1280×720 | 2560×1440 | 5120×2880 |
| 1920×1080 | ✓ accepted | ✗ too large (4× cap is 1024px) |
If the output would exceed your browser's WebGL rendering limit (typically 8192px), the upscaler will display an error before starting. Downscale the source clip first or switch to 2×.
How it works
The upscaler uses a WebGL2 fragment shader implementing the Lanczos-2 kernel — a high-quality reconstruction filter that preserves edge sharpness and avoids the ring artefacts of simpler methods. Each video frame is decoded, upscaled via the GPU, and re-encoded into the output stream.
For very small source clips (< 480px), the pipeline uses a two-pass cascade for extra sharpness.
Troubleshooting
"Video encoding produced no data" — This usually means the clip was too short (< 1 second) or the selected codec isn't supported by your browser. Try a different browser or a longer clip.
"Source image could not be decoded" — The output resolution exceeded your GPU's texture size limit. Switch to 2× scale or downscale the source first.
Processing is very slow — The Lanczos shader runs on your GPU. On integrated graphics, a 30-second 1080p clip can take several minutes. Close other GPU-heavy apps if possible.
Output looks soft — This is expected for highly compressed source video. The upscaler can only recover detail that exists in the source; heavily compressed clips may still look soft at 4×.