118 lines
2.2 KiB
Markdown
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 |