diff --git a/README.md b/README.md index b4c78b0..7faf038 100644 --- a/README.md +++ b/README.md @@ -1 +1,118 @@ -IyB2aWRlby1wcm9iZQoKRGVzY3JpcHRpb246IEV4dHJhY3QgdmlkZW8gbWV0YWRhdGEgdXNpbmcgZmZwcm9iZSAoUnVzdCB2ZXJzaW9uKQoKIyMgRmVhdHVyZXMKCi0gRmFzdCAmIEVmZmljaWVudCAtIFJ1c3QgUmVzdCBwb3dlcmVkCi0gQ3Jvc3MtcGxhdGZvcm0gLSBMaW51eCwgbWFjT1MsIFdpbmRvd3MKLSBDb21wcmVoZW5zaXZlIC0gRXh0cmFjdHMgYWxsIHZpZGVvLCBhdWRpbywgc3VidGl0bGUgbWV0YWRhdGEKLSBKU09OIE91dHB1dCAtIFN0cnVjdHVyZWQgZGF0YQotIFVzZXItZnJpZW5kbHkgLSBDbGVhciBjb25zb2xlIG91dHB1dAotIExpZ2h0d2VpZ2h0IC0gU2luZ2xlIGJpbmFyeQoKIyMgSW5zdGFsbGF0aW9uCgojIyMgUHJlcmVxdWlzaXRlcwoKLSBSdXN0IDEuNzArIC0gaHR0cHM6Ly9ydXN0dXAucnMvCi0gZmZwcm9iZSBmcm9tIEZNcGVnOgogIC0gbWFjT1M6IGJyZXcgaW5zdGFsbCBmZm1wZWcKICAtIFVidW50dS9EZWJpYW46IHN1ZG8gYXB0LWdldCBpbnN0YWxsIGZmbXBlZwoKIyMgRnJvbSBTb3VyY2UKCgdpdCBjbG9uZSBodHRwOi8vMTkyLjE2OC4xMTAuMjAwOjMwMDAvd2FycmVuL3ZpZGVvX3Byb2JlLmdpdApjZCB2aWRlb19wcm9iZQpjYXJnbyBidWlsZCAtLXJlbGVhc2UKCiMjIFVzYWdlCgojIyMgQmFzaWMgVXNhZ2UKCgd2aWRlby1wcm9iZSB2aWRlby5tcDQKCldoaWNoIHdpbGwgY3JlYXRlIGB2aWRlby5wcm9iZS5qc29uYC4KCgojIyBQcm9qZWN0IFN0cnVjdHVyZQoKdmlkZW9fcHJvYmUvCi0tIHNyYy8KICAgIC0tIG1haW4ucnMKICAgIC0tIGxpYi5ycwogICAgLS0gZXJyb3IucnMKICAgIC0tIG1ldGFkYXRhLnJzCiAgICAtLSBwcm9iZS5ycwogICAgLS0gcGFyc2VyLnJzCiAgICAtLSBvdXRwdXQucnMKLS1kb2NzLwogICAgLS0gREVWRUxPUE1FTlQubWQKICAgIC0tIFVTRUFHRS5tZAogICAgLS0gQVBJLm1kCi0tdGVzdHMvCiAgICAtLSBpbnRlZ3JhdGlvbl90ZXN0LnJzCi0tQ2FyZ28udG9tbCAtLVJFQURNRS5tZAoKIyMgQnVpbGQgJiBSdW4KCiMjIEJ1aWxkCiogRGVidWc6IGNhcmdvIGJ1aWxkCiogUmVsZWFzZTogY2FyZ28gYnVpbGQgLS1yZWxlYXNlCgojIyBSdW4KKiBjYXJnbyBydW4gLS0gdmlkZW8ubXA0CiogLi90YXJnZXQvcmVsZWFzZS92aWRlb19wcm9iZSB2aWRlby5tcDQKCiMjIFRlc3QKKiBjYXJnbyB0ZXN0CgojIyBMaWNlbnNlCgpNSU0gdHlwZSBsaWNlbnNlCgojIyBMaW5rcwoKKiBSZXBvc2l0b3J5OiBodHRwOi8vMTkyLjE2OC4xMTAuMjAwOjMwMDAvd2FycmVuL3ZpZGVvX3Byb2JlCiogSVNzdWVzOiBodHRwOi8vMTkyLjE2OC4xMTAuMjAwOjMwMDAvd2FycmVuL3ZpZGVvX3Byb2JlL2lzc3Vlcw== \ No newline at end of file +# 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 \ No newline at end of file