"No valid source or titles found"

HandBrake never reaches the transcode — this error comes from the scan it runs first, the pass that opens your file and tries to list the titles inside it. When it lists none, it almost never means the footage is gone: the compressed frames are usually still in the file, and what failed is the structure that catalogs them, which can be rebuilt without uploading anything.

When HandBrake pops up "No valid source or titles found.", the transcode never even started — the message comes from HandBrake's scan stage, the pass it runs before it will let you queue anything. HandBrake opens the file, tries to enumerate the titles inside it, and comes back with none. That rarely means your footage is destroyed: the compressed frames are usually sitting in the file untouched, and what failed is the structure that lists them. Drop the file above and the tool rebuilds that structure in your browser — so a fresh scan finds a title again — without the clip ever leaving your device.

Your file never leaves your device — repair runs in your browser. 0 bytes uploaded.

Your data is the big block — usually intact. What breaks is the small index. Repair rebuilds it.

Drop a file here or browseTap to choose a file

ZIP · Office · PDF · video · JPG · PNG · RAR/7z · SQLite — repaired right here in your browser. Nothing is uploaded

0 bytes uploadedFree: 3 repairs/day — up to 500 MB video, 100 MB docs & archives, 50 MB photos. Free download. Single repair €5.90. No account required.

Fix it now

  1. Drop the file
  2. Repair runs locally
  3. Download the result

Why HandBrake scans for "titles" — and why it can find zero

HandBrake began life as a DVD ripper, and it still thinks in the vocabulary of optical media. A DVD or Blu-ray does not contain "a video" — it contains a set of titles: the main feature, the trailers, the menus, each a separately addressable program on the disc. HandBrake kept that abstraction for every source it accepts, so even a single .mp4 or .mov is presented to you as Title 1. Before it will let you add anything to the queue, its engine (libhb) runs a scanhb_scan — whose whole job is to open the source and build that list of titles. When the list comes back empty, the front-end (Windows, macOS or the GTK build) shows exactly one message: "No valid source or titles found."

For a plain file rather than a disc folder, HandBrake does its demuxing through the FFmpeg libraries (libavformat/libavcodec) — the same engine behind almost every player. The scan calls avformat_open_input to parse the container header, then avformat_find_stream_info to learn what tracks exist, how long they run and how to seek them, and finally it decodes a short preview to confirm there is a real, playable stream. An MP4 or MOV is a tree of boxes (atoms): ftyp declares the brand, mdat holds the raw encoded samples, and moov is the index — the sample tables that say where each frame lives and which codec decodes it. If moov is missing or corrupt, if a box announces a length that runs off the end of the file, or if stray bytes sit in front of ftyp, that scan chain fails, no title is built, and you get the empty-list error — even though the frames in mdat are perfectly intact.

Rebuilding the container so the scan finds your title

The cure is to give libavformat a container it can actually parse. When the encoded samples survived but the map is broken, the tool remuxes: it scans the surviving stream data, reconstructs the sample tables the format needs, and writes a fresh, well-formed MP4/MOV around the same footage. No frames are re-encoded, so there is no quality loss — these are the original bytes you recorded, just correctly indexed again. Where the moov was never written — the classic unfinalized recording, when a camera, dash-cam or phone app is cut off before you press stop — the tool rebuilds that index from the structure of the media stream so a scanner has the frame map it was looking for. If the damage is garbage bytes ahead of ftyp (a common result of a bad copy or a mangled transfer), it strips them so the box tree starts where it should.

Once the file has a coherent ftyp/moov/mdat structure again, point HandBrake at the rebuilt copy and re-scan: avformat_open_input succeeds, find_stream_info reports a real track and duration, the preview decodes, and Title 1 appears so you can transcode as normal. All of this — reading the boxes, rebuilding the index, writing the new file — happens inside your browser tab. There is no HandBrake plug-in, no command line, and no server ever receives the video.

Where this genuinely can't be fixed

Rebuilding the container only works when the container is what broke. Repair recovers frames that are present; it cannot invent frames that were never written. If the recording was truncated — the power died, the card filled, the app crashed mid-write — everything after the cut is simply not on the disk, and the tool can only return the footage up to that point. That is the honest ceiling on any recovery, ours or anyone's. Likewise, if the underlying mdat was overwritten or returned as zeros by a failing card or drive, there are no good samples to re-index; recover the raw bytes from the storage first, then repair.

Two other cases are genuinely out of scope, and it is worth naming them so you do not waste time. A file that is not really a video — a document, an image, or a broken fragment wearing a .mp4 extension — has no title to find, and no container repair changes that. And a pure codec problem — a stream in a format HandBrake's libraries have no decoder for — is not something a structural rebuild fixes; the container can be perfectly valid while the decode is simply unsupported. When the footage is there and only the structure failed, though, the browser-only approach means sensitive material — evidence, personal recordings, unreleased work — is repaired without being copied anywhere. Open the Network tab and you can confirm 0 bytes of the clip are ever sent.

What this can and can't fix

Can fix

  • MP4/MOV files whose moov index is missing or damaged, so HandBrake's scan enumerates zero titles while the mdat footage survives
  • Unfinalized recordings cut off before the container was written (dead battery, yanked card, crashed app) — the sample tables are rebuilt from the surviving stream
  • Stray or garbage bytes in front of the ftyp box that make libavformat reject the source before it can list a title
  • Broken sample tables, bad chunk offsets or zero-length durations that make find_stream_info report no usable stream
  • The portion of an interrupted download or transfer that actually arrived, rebuilt into a file HandBrake can scan

Can't fix

  • Frames past a truncation cut — those bytes were never written to disk, so no rebuild can bring them back
  • Media whose mdat was overwritten or returned as zeros by a failing card/drive (recover the raw bytes first, then repair)
  • A pure codec gap — a stream HandBrake's libraries can't decode at all; that is not a container repair and no rebuild adds a decoder
  • A non-video file (document, image or fragment) wearing a .mp4/.mov extension — there is no title to find

If a repair fails, we tell you why (missing data versus broken structure), and you are never charged for a failed repair.

FAQ

Does "No valid source or titles found" mean my video is gone?

Usually not. The message comes from HandBrake's scan stage, which failed to enumerate a title because it couldn't parse the container — most often a missing or damaged moov index. The encoded frames in mdat are frequently intact, and a fresh scan finds them once the container is rebuilt around them.

Why does HandBrake talk about "titles" when I only gave it one file?

It is a habit from HandBrake's DVD-ripping origins: a disc holds several titles (main feature, trailers, menus), so HandBrake models every source as a list of titles and shows a single file as Title 1. The scan has to produce at least one title before you can queue a job; when it produces none, you get "No valid source or titles found."

HandBrake won't scan it — is it the container or the codec?

A quick test: open the file in VLC. If VLC also fails or shows a 0:00 length, the container is damaged and rebuilding its index is the fix — that is what this tool does. If VLC plays it cleanly but HandBrake still won't scan, you may be looking at a codec or preview issue rather than corruption, and repairing a structurally healthy file won't change that. See repairing an MP4 for the container case.

Do I have to upload the video to HandBrake or to this tool?

No. The file is read from your disk and rebuilt in your browser tab; nothing is transmitted. You can confirm 0 bytes leave your machine in the browser's Network tab — the property you want for evidence, personal recordings, or anything you wouldn't hand to an unknown server.

Related: Repair an MP4 · QuickTime Error -2048 · Repair a .mov file