Files
video_probe/README.md

118 lines
2.2 KiB
Markdown

# 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
```bash
# 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
```bash
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
```bash
# Debug build
cargo build
# Release build (optimized)
cargo build --release
```
### Run
```bash
# Run with cargo
cargo run -- video.mp4
# Run the binary directly
./target/debug/video_probe video.mp4
```
### Test
```bash
# Run all tests
cargo test
# Run with output
cargo test -- --nocapture
```
### Code Quality
```bash
# Format code
cargo fmt
# Run linter
cargo clippy
# Check without building
cargo check
```
## License
This project is licensed under the MIT License.
## Links
- Repository: http://192.168.110.200:3000/warren/video_probe
- Issues: http://192.168.110.200:3000/warren/video_probe/issues