Files
vid-repair/README.md
2025-12-31 23:01:53 -05:00

2.5 KiB
Raw Blame History

Vid-Repair 🎬🛠️

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

Quick Start 🚀

Requirements

  • ffmpeg and ffprobe available 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 nonrecursive 🧭

# Disable recursive scanning
vid-repair scan --no-recursive /path/to/videos

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

You can edit this file to set defaults like scan depth, include/exclude patterns, and watch behavior. CLI flags always override config values.

AI Disclaimer 🤖

This software was written with assistance from OpenAI Codex.

Developer Guide 🛠️

This section is for contributors and anyone building on the project.

Project layout 🧱

  • vid-repair/ CLI binary
  • vid-repair-core/ core library (scan, rules, fix, report, watch)
  • rulesets/ modular rule packs (TOML)
  • scripts/ helper scripts (fixtures, checks)

Rulesets 🧩

Rules are datadriven and split by domain in rulesets/*.toml.
Before shipping changes:

vid-repair rules lint

Fixtures 🧪

Generate fixtures locally (gitignored):

scripts/generate_fixtures.sh

Use fixtures to validate scan logic and rule coverage. Add new fixtures for realworld edge cases (truncated files, corrupted NAL units, etc.).

Tests

scripts/check.sh

This runs the full test suite and ruleset lint.