Remove Interlacing Combs
Old camcorder and broadcast footage shows comb teeth on motion. yadif rebuilds full frames from the fields, locally.
Drag & drop your video here, or click to browse
Max file size: ~2 GB (memory permitting)
How to Use — Remove Interlacing Combs
Load the clip
Drag in an MP4, MOV, AVI or WebM, or the camcorder file itself — .mts, .m2ts, .vob, .dv, .mpg and .wmv go straight in. The file stays on your device — nothing is uploaded.
Check for combing first
Nine frames are read in the browser and scored for comb teeth, and the worst one is shown at full resolution. Progressive footage measured under 0.01% of pixels on the test clips; the same footage interlaced measured 1.5–2.0%. Browsers cannot decode MPEG-2, DV or AVCHD, so for those the check is unavailable and the tool says so — FFmpeg still deinterlaces them.
Decide what happens to the fields
One frame per frame (yadif=0) keeps 25i at 25 fps and drops half the recorded motion. One frame per field (yadif=1) turns 25i into 50 fps and keeps all of it, at twice the frames to encode.
Run it, then look at the motion
Scrub the result to a moment with movement. The teeth should be gone and the movement should be smooth in one direction — juddering back and forth means the file reports its field order wrongly.
Who uses the Deinterlacer
- Content creators preparing footage for YouTube, Instagram, TikTok, or X who need a quick fix without installing software.
- Teachers, marketers, and students who want a no-learning-curve way to handle everyday video tasks.
- Developers and editors who need a predictable FFmpeg-backed result on any machine.
Supported formats & limits
| Input containers | MP4, MOV, WebM, MKV, AVI, FLV, WMV, M4V |
|---|---|
| Input codecs | H.264, H.265, VP8, VP9, MPEG-4, MJPEG. Not AV1 — this WebAssembly build has no software AV1 decoder. |
| Output container | MP4 (default) — interoperable with iOS, Android, YouTube, Instagram, X |
| Output codec | H.264 video + AAC audio |
| Max file size | Up to ~2 GB (limited by browser memory) |
| Max duration | No hard limit — depends on file size |
| Cost | Free for any use. No signup. No watermark. |
Deinterlacer vs. the usual alternatives
| Feature | This tool | VEED (free) | Kapwing (free) | CapCut Online |
|---|---|---|---|---|
| Processing model | Runs locally in your browser | Upload-based project editor | Upload-based project editor | Upload-based online editor |
| File limits | No upload cap; practical limit is browser memory | Plan-specific upload limits | Plan-specific upload and export limits | Feature- and account-specific limits |
| Watermark on output | No watermark added | Free exports include a VEED watermark | Free exports include a Kapwing watermark | Standard edits can be watermark-free; templates/assets may add branding |
| Signup / account | No account for tools | Workspace/account flow | Workspace/account flow | CapCut account flow |
| Works offline | Yes after cache, subject to browser support | No | No | No |
| Best for | Private one-step file operations | Full editor, templates, AI tools | Collaboration, templates, AI tools | Social templates and timeline editing |
Vendor plan limits were checked on April 29, 2026 and can change by region, account state, and export option. Verify critical limits on the vendor pricing/help page before relying on them.
Why choose this deinterlacer
- 100% private — your files never leave your browser, so nothing is uploaded to our servers.
- No watermark, no signup, no hidden limits. Completely free to use, for any purpose.
- Runs on top of FFmpeg compiled to WebAssembly, giving you the same results professionals get in the terminal.
- Works on desktop and mobile, on any OS — only a modern browser is required.
Frequently Asked Questions
Why does my old footage have comb teeth?
Interlaced cameras recorded half-pictures, not frames: odd rows, then even rows, a fiftieth or sixtieth of a second apart. A CRT drew them in turn and your eye fused them; a computer shows both at once, so anything that moved appears twice, one row apart. That is the combing.
How do I know if my clip is interlaced?
Use the check built into the tool. It scores nine frames for comb teeth and shows you the worst one at full resolution. Progressive footage measured under 0.01% of pixels on the test clips; the same footage interlaced measured 1.5–2.0%. Combing only appears where something moves, so a static shot reads clean either way.
One frame per frame or one frame per field?
yadif=0 keeps the frame rate and discards half the motion the camera recorded. yadif=1 outputs a frame per field, so 25i becomes 50 fps and the motion survives intact — at twice the frames. Pick per-field for sport, handheld or anything panning; pick per-frame to match a 25 or 30 fps timeline or to keep the file small.
What if I deinterlace progressive video?
It costs quality and buys nothing. yadif rebuilds rows whether or not they needed it, so the picture comes out slightly softer, and mode 1 doubles the frame rate with frames that hold no new information. Run the check first.
How long does it take?
Measured in this build: 8 s of 720p took 8.2 s at yadif=0 and 13.8 s at yadif=1; 8 s of 1080p took 14.0 s and 22.8 s; 4 s of 360p took 0.65 s and 1.0 s. Linear in duration, roughly proportional to the pixel count, give or take a third for how hard the picture is to encode, and several times slower on a phone. The tool estimates it for your file before you start, unless your browser cannot read the container — MPEG-2, DV and AVCHD give it no frame size to work from, though FFmpeg still deinterlaces them.
What comes out?
An MP4 with H.264 video in 4:2:0 and AAC audio. The 4:2:0 matters for DV and broadcast sources, which are 4:1:1 or 4:2:2: left alone, libx264 would keep that and produce a file no browser can play. The audio is re-encoded rather than copied — that keeps WebM and MKV sources working, at one generation of loss, and there is no setting that avoids it.
Do I need to set the field order?
No — yadif reads it from the file automatically. If the result judders backwards and forwards on alternate frames, the file has its field order labelled wrong and you need a desktop tool that lets you force the parity.