Files
vid-repair/README.md

1.5 KiB
Raw Blame History

Vid-Repair

Vid-Repair is a crossplatform Rust CLI that scans video files for container/stream/decode problems and applies safe repairs using system ffmpeg/ffprobe.

Features

  • Scan: ffprobe metadata + ffmpeg decode pass
  • Datadriven rulesets (TOML) with linting
  • Safe fix planning (remux/faststart) + optional aggressive reencode
  • Atomic replace + optional keeporiginal
  • Watch mode with settle window
  • Text output by default, JSON with schema version

Requirements

  • ffmpeg and ffprobe available on PATH

Install

cargo build --release

Usage

# Scan
vid-repair scan /path/to/videos

# Scan and watch for new files
vid-repair scan --watch /path/to/videos

# Fix (safe policy, in-place)
vid-repair fix /path/to/videos

# Fix with aggressive policy
vid-repair fix --policy aggressive /path/to/videos

# JSON output
vid-repair scan --json /path/to/videos

# Lint rulesets
vid-repair rules lint

Exit codes:

  • 0 no issues
  • 1 issues found
  • 2 fix failed
  • 3 fatal 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

CLI flags override config values.

Rulesets

Rules are stored in rulesets/*.toml. Use vid-repair rules lint before shipping changes.

Fixtures

Generate fixtures (gitignored) with:

scripts/generate_fixtures.sh