A macOS app that scans video files for corruption, shows exactly what's wrong, and repairs them through intelligent remuxing.
Video files — especially MP4s in broadcast environments — get corrupted during recording, transfer, or storage. Identifying what's wrong and fixing it currently requires CLI knowledge (ffmpeg, ffprobe), manual inspection of error logs, and guesswork about the right repair approach.
- Drop video files onto VCR (or use the Open dialog)
- Scan — VCR analyzes each file frame-by-frame, showing progress in real-time
- Review — See exactly what's wrong: decode errors, timestamp gaps, truncation, bad headers — with timestamps and severity
- Repair — Approve a repair strategy and queue files for processing
- Done — Repaired files are output alongside the originals (or to a folder you choose)
- Dual-engine analysis — AVFoundation for native formats (MP4/MOV), ffmpeg for everything else
- Frame-by-frame scanning — Detects decode failures, timestamp discontinuities, truncated streams, and header corruption
- Lossless remux repair — Re-wraps the container without re-encoding (fast, preserves quality)
- Repair queue — Review scan results, approve strategies, process files sequentially
- Real-time progress — Per-file progress during both scanning and repair
- Drag and drop — Drop files or entire folders; VCR finds all supported videos recursively
- Swift 6 with strict concurrency
- SwiftUI + AppKit
- Bundled ffmpeg/ffprobe (arm64)
- macOS 14+ (Sonoma)
- No external dependencies — Apple frameworks only
VCR uses XcodeGen for project generation:
cd 01_Project
xcodegen generate
open VCR.xcodeprojFFmpeg binaries are bundled via the included script:
./bundle-ffmpeg.sh- Scan — frame-by-frame corruption detection
- Remux repair — lossless container re-wrap
- Transcode repair — re-encode broken sections
- Cut repair — remove broken sections with timecode handling
- Video preview with error markers
- MXF format support
- Report export (CSV/JSON)
See LICENSE for details.