2.3 KiB
Vid-Repair
Vid-Repair is a cross‑platform CLI that scans video files for container/stream/decode problems and applies safe repairs using your system ffmpeg/ffprobe.
Quick Start
Requirements
ffmpegandffprobeavailable on PATH
Install
cargo build --release
Common commands
# Scan files or folders
vid-repair scan /path/to/videos
# Watch a folder and scan new/changed files once they finish writing
vid-repair scan --watch /path/to/videos
# Fix (safe policy, in-place)
vid-repair fix /path/to/videos
# Fix with aggressive policy (allows re-encode)
vid-repair fix --policy aggressive /path/to/videos
# JSON output (for scripts)
vid-repair scan --json /path/to/videos
Scan depth
# Quick scan (faster, less thorough)
vid-repair scan --scan-depth quick /path/to/videos
# Standard scan
vid-repair scan --scan-depth standard /path/to/videos
# Deep scan (default, full decode)
vid-repair scan --scan-depth deep /path/to/videos
Recursive vs non‑recursive
# Disable recursive scanning
vid-repair scan --no-recursive /path/to/videos
Exit codes
0no issues1issues found2fix failed3fatal error
Config
On first run, a commented TOML config is created in the XDG config directory:
- Linux:
~/.config/vid-repair/config.toml - macOS:
~/Library/Application Support/vid-repair/config.toml - Windows:
%APPDATA%/vid-repair/config.toml
You can edit this file to set defaults like scan depth, include/exclude patterns, and watch behavior. CLI flags always override config values.
Developer Guide
This section is for contributors and anyone building on the project.
Project layout
vid-repair/– CLI binaryvid-repair-core/– core library (scan, rules, fix, report, watch)rulesets/– modular rule packs (TOML)scripts/– helper scripts (fixtures, checks)
Rulesets
Rules are data‑driven and split by domain in rulesets/*.toml.
Before shipping changes:
vid-repair rules lint
Fixtures
Generate fixtures locally (git‑ignored):
scripts/generate_fixtures.sh
Use fixtures to validate scan logic and rule coverage. Add new fixtures for real‑world edge cases (truncated files, corrupted NAL units, etc.).
Tests
scripts/check.sh
This runs the full test suite and ruleset lint.