-
Notifications
You must be signed in to change notification settings - Fork 296
Partial Clip Detection
Partial clip detection finds videos that are excerpts of a longer video, for example a highlight reel, a trailer, or a segment cut from a full recording. It works independently of visual similarity: it uses audio fingerprinting to compare the audio tracks, so it works even when the clip has been re-encoded, cropped, or has different visual quality from the source.
When a match is found, both videos appear together in the duplicate list. The shorter video is tagged with a clip offset (e.g. @ 00:04:54) showing exactly where in the longer video the clip begins.
No audio track? The AI partial pass detects clips visually and needs no audio. The Deep clean scan profile runs both.
- Both videos must have an audio track
- The clip must be at least as long as the Min clip / source ratio setting (default 10% of the source duration)
- FFmpeg must be available (needed for audio extraction, same requirement as the rest of VDF)
Either pick the Deep clean profile on the main screen, or enable it manually:
- Open Settings > Partial clips
- Check Enable partial clip detection
- Optionally adjust the thresholds (see below)
- Run a scan as normal. Partial clip detection runs automatically as a second phase after visual duplicate detection.
Note: On the first scan with this feature enabled, VDF extracts and caches an audio fingerprint for every video in your database. This takes extra time proportional to the number and length of your videos. Subsequent scans reuse the cached fingerprints and are much faster.
Audio fingerprinting requires decoding the full audio track of every video file. Unlike thumbnail extraction (which seeks to a few positions and grabs single frames), audio fingerprinting must read and decode the audio stream from start to finish. This makes the initial scan significantly slower than a visual-only scan.
What affects speed:
| Factor | Impact |
|---|---|
| Storage I/O | Typically the dominant bottleneck. Local NVMe/SSD storage is dramatically faster than network storage (NAS/SMB/NFS). A scan that takes 2-5 minutes on a local drive can take 30+ minutes over a slow network link. |
| Number and length of videos | Time scales linearly with total audio duration across all files. |
| CPU cores | Audio decoding runs in parallel; see Performance & Parallelism for the worker settings. |
| Native FFmpeg bindings | When enabled (Settings > Processing), native bindings avoid spawning a separate process per file. Recommended for large libraries. |
Typical benchmarks (800 video files, ~5-15 min average duration each):
| Storage | First scan (fingerprinting) | Subsequent scans (cached) |
|---|---|---|
| Local NVMe | ~2-5 minutes | seconds |
| NAS over 1 Gbps SMB | 15-35 minutes | seconds |
Tip: If your videos are on network storage and the initial scan is too slow, consider copying them to a local drive for the first scan. The cached fingerprints persist in the database, so you can point VDF back at the network location for future scans without re-extracting.
| Setting | Default | Description |
|---|---|---|
| Min clip / source ratio (%) | 10 | The clip must be at least this percentage of the source duration. Raise this to ignore very short excerpts; lower it to catch shorter clips. |
| Min audio similarity (%) | 80 | How closely the audio fingerprints must match. Lower this if clips were re-encoded with heavy compression or audio processing. 70-75% is a reasonable minimum. |
| Require visual match | on | Audio matches must also pass a visual frame check at the matched offset. This suppresses false positives from videos that merely share a soundtrack (e.g. different clips reusing the same song) but show different content. Turn it off if you specifically want same-audio matches. |
| Min visual similarity (%) | 85 | Threshold for that visual confirmation check. |
Partial clip results appear in the normal duplicate list alongside visual duplicates. Look for:
-
Clip offset - shows
@ hh:mm:ssfor the shorter video, indicating where within the source it starts. The longer (source) video has no offset shown. - Similarity - reflects how closely the audio fingerprints matched. Lower values than visual duplicates are normal; re-encoding always introduces some divergence.
- The group contains the source video plus all detected clips. The source video is automatically considered "best" by duration-based auto-selection, so Check lower quality / duration will mark all clips for deletion.
- Detection quality depends on how similar the audio tracks are after re-encoding. Heavy lossy compression, pitch shifts, or significant EQ changes reduce the similarity score and may require lowering the threshold.
- Files without audio tracks are automatically skipped and flagged; they do not cause errors. Use the AI partial pass for those.
- Partial clip detection only runs on videos not already matched by visual duplicate detection. If two videos are already in the same visual duplicate group, they are not re-examined as clip/source pairs.
- Very short clips (under ~5 seconds of audio) may not produce enough fingerprint data to match reliably.
A clip is not detected even at low similarity thresholds
- Enable Extended FFTools logging in the settings and re-run the scan. The log shows the fingerprint block count for each eligible video and the similarity score for each pair tested.
- If the block count for a file is 0 or missing, the audio could not be extracted. Check that FFmpeg can read the file and that the file has an audio stream.
- If the block count looks correct but similarity is very low (below 50%), the audio tracks may have been processed too differently (different pitch, time-stretched) for fingerprint matching to work.
- If the audio similarity is fine but the pair is still rejected, the visual confirmation may be the reason (the log says so). Lower Min visual similarity or disable Require visual match.
The scan database needs to be reset If you enabled partial clip detection after your database was already built, the first rescan extracts fingerprints for all files automatically. If files that existed before the feature was enabled are still not getting fingerprints, delete the scan database (Settings > Database > Custom database folder, or the default location) and run a fresh scan.
Getting started
How it works
Tuning