38a593337502fd940bf89656e307d2973e5da7e1
video_probe
Extract video metadata using ffprobe (Rust version)
A fast and efficient command-line tool to extract comprehensive metadata from video files using ffprobe.
Features
- Fast & Efficient - Written in Rust for optimal performance
- Cross-platform - Works on Linux, macOS, and Windows
- Comprehensive - Extracts video, audio, subtitle, and format metadata
- JSON Output - Structured JSON output for easy processing
- User-friendly - Clear console output with formatted summaries
- Lightweight - Single binary deployment, no runtime dependencies
Installation
Prerequisites
- Rust 1.70+ (https://rustup.rs/)
- ffprobe from FFmpeg
- macOS: brew install ffmpeg
- Ubuntu/Debian: sudo apt-get install ffmpeg
From Source
# Clone the repository
git clone http://192.168.110.200:3000/warren/video_probe.git
cd video_probe
# Build release version
cargo build --release
The compiled binary will be available at target/release/video_probe.
Usage
Basic Usage
video_probe video.mp4
This will create a video.probe.json file in the same directory as the video file.
Project Structure
video_probe/
├── src/
│ ├── main.rs # CLI entry point
│ ├── lib.rs # Library interface
│ ├── error.rs # Error types
│ ├── metadata.rs # Data structures
│ ├── probe.rs # ffprobe execution
│ ├── parser.rs # JSON parsing
│ └── output.rs # Output formatting
├── tests/
│ └── integration_test.rs
├── Cargo.toml
└── README.md
Development
Build
# Debug build
cargo build
# Release build (optimized)
cargo build --release
Run
# Run with cargo
cargo run -- video.mp4
# Run the binary directly
./target/debug/video_probe video.mp4
Test
# Run all tests
cargo test
# Run with output
cargo test -- --nocapture
Code Quality
# Format code
cargo fmt
# Run linter
cargo clippy
# Check without building
cargo check
License
This project is licensed under the MIT License.
Links
Description
Languages
Rust
69.1%
Python
30.9%