What Untrunc does
untrunc working.mp4 broken.mp4
That is the whole idea. A recording that was cut off, by a dead battery, a crash or a card pulled out, has its footage but not its index, the moov atom that tells a player where every frame sits. Untrunc reads the settings from a working video recorded on the same camera with the same settings, finds the frames in the broken file, and writes a new file with a fresh index. It adds _fixed to the broken file's name, so broken.mp4 comes back as broken_fixed.mp4.
The version most people use today is the fork maintained at github.com/anthwlock/untrunc, licensed under GPL-2.0. Its README lists MP4, M4V, MOV and 3GP, files over 2 GB, and GoPro and Sony XAVC recordings.
Untrunc on Windows
The project publishes ready-made Windows builds on its GitHub releases page, and the README says the optional graphical version is included in those builds.
- Open github.com/anthwlock/untrunc, go to Releases and download the latest Windows build.
- Unzip it to a folder.
- Start the graphical version, or open a command prompt in that folder and run it with the working file first and the broken file second:
untrunc "D:\videos\working.mp4" "D:\videos\broken.mp4"
- Look for the new file with
_fixedin its name next to the broken one, and play it.
Untrunc on a Mac
The README doesn't offer a ready-made Mac app. You build it from source, which takes Homebrew and a few minutes in Terminal:
brew install ffmpeg yasm
Then clone the repository from GitHub, open its folder in Terminal and build it, pointing the compiler at Homebrew, as the README's macOS section shows:
CPPFLAGS="-I/opt/homebrew/include" LDFLAGS="-L/opt/homebrew/lib" make
The README says Untrunc "works great with ffmpeg 3.3.9". If the build fails with a newer FFmpeg, that is the first thing to check.
When Untrunc doesn't work
- The reference was recorded differently. A clip at another resolution, frame rate or codec setting describes different frames. Use a clip from the same camera, recorded with the same settings, ideally the same day.
- The file is really empty. A 0-byte file, or one filled with zeros, has no footage to find.
- The repaired file still won't play. The README says the result should be playable, not that it always will be. Try a different reference clip before giving up.
The same repair in your browser
The checker on this page does what Untrunc does, with nothing to download or build:
- Open the broken video. Your browser reads it from your own disk; nothing is uploaded.
- If it asks, add a working video from the same camera. It borrows that video's settings and nothing else.
- The check is free. It tells you whether the footage is there and how much of the recording it can rebuild.
- The 5-second preview is free too, at reduced quality with a watermark, so you see your footage move before you pay anything.
- Downloading the full video is paid: one video, 3 months or 1 year. If the repaired video doesn't play, you get a refund.
Like Untrunc, it re-encodes nothing: the file holds the camera's own frames inside a new index. Some cameras repeat their settings inside the footage, and then no reference is needed at all: a Tesla front-camera clip came back that way in our tests. We have checked it on real files from GoPro HERO5 to HERO10, a DJI Avata, 70mai and Tesla dash cams and a Samsung Galaxy A56, and every frame came back identical to the original.
Untrunc or the checker?
| Untrunc | The checker on this page | |
|---|---|---|
| Price | Free | Check and preview free; download paid |
| Install | Windows build, or build from source on a Mac | Nothing; any modern browser |
| Source code | Open (GPL-2.0) | Closed |
| Formats | MP4, M4V, MOV, 3GP | MP4, MOV |
| Your video is uploaded | No | No |
| On a phone | No | The Video Repair app for Android |
If you're comfortable with a terminal and the free tool works for your file, it's the cheaper route. If you'd rather not install or compile anything, or you're on a Mac and don't want to build from source, the checker gives you the same kind of result and shows it to you before you pay.
