Guide · Deep dive
How to Find Footage by Bib or Jersey Number
The request for everything with number 100 becomes a thirty second job. Numbers are read from the frames themselves, on your machine.
Races, dance competitions and team sports all produce the same request: "send me
everything with number 100." Since FrameQuery 1.2.1 that is a search. Type bib:100 and
every result opens the video at the moment the number is on screen.
Turn on number reading
Open Settings → AI Models and switch on Competitor Numbers. A small model bundle downloads once, about 19 MB. From then on, every video you index gets scanned as part of normal processing.
The reading happens on your machine and the numbers stay in your library, like the rest of FrameQuery. Background in why we chose local-first.
Per frame, FrameQuery finds the people, finds printed text on their torsos, and reads it. The reader knows only digits, so it cannot make the usual OCR mistakes of reading S as 5 or B as 8. Text on banners and scoreboards is not read, because it is not on a person.
Search with bib: or number:
Both spellings are the same filter:
bib:100
number:100
Each result is a scene. The thumbnail on the card is the actual frame the number was
read from, and clicking it seeks the player to that second. Leading zeros don't matter;
bib:7 matches a bib printed "007" and vice versa.
It combines with the rest of the search operators:
bib:100 date:2026-06 number 100, June only
bib:42 "final round" number 42 in clips matching a phrase
bib:18 res:4k number 18, 4K sources only
There is no fuzzy matching. Searching 100 returns clips where 100 was read. Sending a client the wrong competitor costs more than a second search.
Scan the footage you already have
Anything indexed before you enabled the feature needs one pass: Settings → AI Models → Scan library.
It runs in the background with a progress bar and a time estimate, picks up where it stopped if you cancel or quit mid-run, and uses no processing minutes because all the work happens on your machine.
On a large library, plan for it to take a while. Where FrameQuery still has the frames it sampled during indexing, scanning is quick. Where those frames were cleaned up, the source files get decoded again, and that's the slow part. Disconnected drives and unmounted NAS shares are skipped. The next scan collects them once they are back.
What reads well
Black digits printed on white read best. Race bibs read reliably. Ballroom and dance numbers pinned to the back read well every time the wearer turns away from the camera, and in a rotation that happens constantly. On our test tape from a dance competition, 52 minutes long, every actively competing couple was read dozens of times, so a number missed in one frame is caught again a few seconds later.
The harder cases:
- Jersey numbers are read at lower confidence. Knit fabric, outline fonts and dark numbers on dark kits all hurt.
- Wide shots have a floor. A number needs real size in frame to read, so background competitors in a wide floor shot won't register until they come closer. They usually do.
- Motion blur costs individual frames. Repetition covers the gap.
For the close-ups where no number is visible at all, combine this with person search: the bib covers the wide shots, faces cover the rest.
The disk space question
Number reading works from sampled frames kept on disk, and the frames where a number was found are retained so search results can show them. You can see exactly what this costs in the dashboard's storage breakdown, under Sampled frames, and clear it from Settings → Data Management if you need the space.
After clearing, a future rescan decodes the source files again, and bib results show a nearby scene image instead of the exact frame. Clear them when you need the space.
Try it
Number search ships in FrameQuery 1.2.1, free on Windows and macOS. Download FrameQuery, index the cards and turn on the toggle.
Common questions
- How do you find footage by bib number?
- Turn on Competitor Numbers in FrameQuery's Settings → AI Models, let it scan your footage, then search bib:100. FrameQuery reads printed numbers from the video frames themselves and returns every clip where that number was spotted, with each result opening the video at the moment the number is visible.
- Does bib number search work on old footage?
- Yes, after a one-time scan. Settings → AI Models → Scan library runs a background pass over everything indexed before the feature was on. It resumes if interrupted, skips offline drives until they reconnect, and uses no processing minutes.
- Can it read jersey numbers, not just race bibs?
- Yes, with lower confidence. Black digits printed on white are the strongest case. Printed jersey numbers are read too, but knit fabric, outline fonts and dark numbers on dark colours reduce accuracy. Repetition compensates: a number missed in one frame is usually caught a few seconds later.
- Is number reading done in the cloud?
- No. The models run on your machine and the numbers they read stay in your local library, the same as FrameQuery's face and voice matching. Nothing is uploaded.
Try it on your own footage
Index a folder and search it the way this guide describes. Searching your library is free and works offline once indexing is done.