1
0

Initial implementation of video_probe (Rust)

Core modules:
- probe.rs: ffprobe execution logic
- parser.rs: JSON parsing logic
- output.rs: Output formatting
- lib.rs: Library interface
- main.rs: CLI entry point

Features:
- Extract video metadata using ffprobe
- Parse video/audio/subtitle streams
- Save to JSON file
- Console summary output

Documentation:
- Added QUICKSTART.md
- Added ENVIRONMENT_SETUP_REPORT.md
This commit is contained in:
accusys
2026-03-07 10:10:19 +08:00
commit f3e2d2dca7
464 changed files with 125611 additions and 0 deletions

View File

@@ -0,0 +1,264 @@
=== Crate version: 0.98.1
=== Environment configuration:
=== OPENCV_PACKAGE_NAME = None
=== OPENCV_PKGCONFIG_NAME = None
=== OPENCV_CMAKE_NAME = None
=== OPENCV_CMAKE_BIN = None
=== OPENCV_VCPKG_NAME = None
=== OPENCV_LINK_LIBS = None
=== OPENCV_LINK_PATHS = None
=== OPENCV_INCLUDE_PATHS = None
=== OPENCV_DISABLE_PROBES = None
=== OPENCV_MSVC_CRT = None
=== OPENCV_CMAKE_TOOLCHAIN_FILE = None
=== OPENCV_CMAKE_ARGS = None
=== CMAKE_PREFIX_PATH = None
=== OpenCV_DIR = None
=== PKG_CONFIG_PATH = None
=== VCPKG_ROOT = None
=== VCPKGRS_DYNAMIC = None
=== VCPKGRS_TRIPLET = None
=== OCVRS_DOCS_GENERATE_DIR = None
=== DOCS_RS = None
=== PATH = Some("/opt/homebrew/bin:/Users/accusys/.cargo/bin:/usr/bin:/bin:/usr/sbin:/sbin")
=== Enabled features:
=== DNN
=== HIGHGUI
=== IMGPROC
=== VIDEOIO
=== Detected probe priority boost based on environment vars: pkg_config: false, cmake: false, vcpkg: false
=== Probing the OpenCV library in the following order: environment, pkg_config, cmake, vcpkg_cmake, vcpkg
=== Can't probe using: environment, continuing with other methods because: Some environment variables are missing
=== Probing OpenCV library using pkg_config
=== Link search path: LinkSearch(Default, "/opt/homebrew/opt/opencv/lib")
=== Link search path: LinkSearch(Framework, "/opt/homebrew/opt/opencv/lib")
=== Linking to library: LinkLib(Default, "opencv_gapi")
=== Linking to library: LinkLib(Default, "opencv_stitching")
=== Linking to library: LinkLib(Default, "opencv_alphamat")
=== Linking to library: LinkLib(Default, "opencv_aruco")
=== Linking to library: LinkLib(Default, "opencv_bgsegm")
=== Linking to library: LinkLib(Default, "opencv_bioinspired")
=== Linking to library: LinkLib(Default, "opencv_ccalib")
=== Linking to library: LinkLib(Default, "opencv_dnn_objdetect")
=== Linking to library: LinkLib(Default, "opencv_dnn_superres")
=== Linking to library: LinkLib(Default, "opencv_dpm")
=== Linking to library: LinkLib(Default, "opencv_face")
=== Linking to library: LinkLib(Default, "opencv_freetype")
=== Linking to library: LinkLib(Default, "opencv_fuzzy")
=== Linking to library: LinkLib(Default, "opencv_hfs")
=== Linking to library: LinkLib(Default, "opencv_img_hash")
=== Linking to library: LinkLib(Default, "opencv_intensity_transform")
=== Linking to library: LinkLib(Default, "opencv_line_descriptor")
=== Linking to library: LinkLib(Default, "opencv_mcc")
=== Linking to library: LinkLib(Default, "opencv_quality")
=== Linking to library: LinkLib(Default, "opencv_rapid")
=== Linking to library: LinkLib(Default, "opencv_reg")
=== Linking to library: LinkLib(Default, "opencv_rgbd")
=== Linking to library: LinkLib(Default, "opencv_saliency")
=== Linking to library: LinkLib(Default, "opencv_sfm")
=== Linking to library: LinkLib(Default, "opencv_signal")
=== Linking to library: LinkLib(Default, "opencv_stereo")
=== Linking to library: LinkLib(Default, "opencv_structured_light")
=== Linking to library: LinkLib(Default, "opencv_phase_unwrapping")
=== Linking to library: LinkLib(Default, "opencv_superres")
=== Linking to library: LinkLib(Default, "opencv_optflow")
=== Linking to library: LinkLib(Default, "opencv_surface_matching")
=== Linking to library: LinkLib(Default, "opencv_tracking")
=== Linking to library: LinkLib(Default, "opencv_highgui")
=== Linking to library: LinkLib(Default, "opencv_datasets")
=== Linking to library: LinkLib(Default, "opencv_text")
=== Linking to library: LinkLib(Default, "opencv_plot")
=== Linking to library: LinkLib(Default, "opencv_videostab")
=== Linking to library: LinkLib(Default, "opencv_videoio")
=== Linking to library: LinkLib(Default, "opencv_viz")
=== Linking to library: LinkLib(Default, "opencv_wechat_qrcode")
=== Linking to library: LinkLib(Default, "opencv_xfeatures2d")
=== Linking to library: LinkLib(Default, "opencv_shape")
=== Linking to library: LinkLib(Default, "opencv_ml")
=== Linking to library: LinkLib(Default, "opencv_ximgproc")
=== Linking to library: LinkLib(Default, "opencv_video")
=== Linking to library: LinkLib(Default, "opencv_xobjdetect")
=== Linking to library: LinkLib(Default, "opencv_objdetect")
=== Linking to library: LinkLib(Default, "opencv_calib3d")
=== Linking to library: LinkLib(Default, "opencv_imgcodecs")
=== Linking to library: LinkLib(Default, "opencv_features2d")
=== Linking to library: LinkLib(Default, "opencv_dnn")
=== Linking to library: LinkLib(Default, "opencv_flann")
=== Linking to library: LinkLib(Default, "opencv_xphoto")
=== Linking to library: LinkLib(Default, "opencv_photo")
=== Linking to library: LinkLib(Default, "opencv_imgproc")
=== Linking to library: LinkLib(Default, "opencv_core")
=== Successfully probed using: pkg_config
=== OpenCV library configuration: Library {
include_paths: [
"/opt/homebrew/opt/opencv/include/opencv4",
],
version: Version {
major: 4,
minor: 13,
patch: 0,
},
inherent_features: [
"eigen",
"openjpeg",
"jpeg",
"opencl",
"opencl_static",
"openexr",
"png",
"pthread",
"pthreads_pf",
"tbb",
"tiff",
"lapack",
],
cargo_metadata: [
"cargo::rustc-link-search=/opt/homebrew/opt/opencv/lib",
"cargo::rustc-link-search=framework=/opt/homebrew/opt/opencv/lib",
"cargo::rustc-link-lib=opencv_gapi",
"cargo::rustc-link-lib=opencv_stitching",
"cargo::rustc-link-lib=opencv_alphamat",
"cargo::rustc-link-lib=opencv_aruco",
"cargo::rustc-link-lib=opencv_bgsegm",
"cargo::rustc-link-lib=opencv_bioinspired",
"cargo::rustc-link-lib=opencv_ccalib",
"cargo::rustc-link-lib=opencv_dnn_objdetect",
"cargo::rustc-link-lib=opencv_dnn_superres",
"cargo::rustc-link-lib=opencv_dpm",
"cargo::rustc-link-lib=opencv_face",
"cargo::rustc-link-lib=opencv_freetype",
"cargo::rustc-link-lib=opencv_fuzzy",
"cargo::rustc-link-lib=opencv_hfs",
"cargo::rustc-link-lib=opencv_img_hash",
"cargo::rustc-link-lib=opencv_intensity_transform",
"cargo::rustc-link-lib=opencv_line_descriptor",
"cargo::rustc-link-lib=opencv_mcc",
"cargo::rustc-link-lib=opencv_quality",
"cargo::rustc-link-lib=opencv_rapid",
"cargo::rustc-link-lib=opencv_reg",
"cargo::rustc-link-lib=opencv_rgbd",
"cargo::rustc-link-lib=opencv_saliency",
"cargo::rustc-link-lib=opencv_sfm",
"cargo::rustc-link-lib=opencv_signal",
"cargo::rustc-link-lib=opencv_stereo",
"cargo::rustc-link-lib=opencv_structured_light",
"cargo::rustc-link-lib=opencv_phase_unwrapping",
"cargo::rustc-link-lib=opencv_superres",
"cargo::rustc-link-lib=opencv_optflow",
"cargo::rustc-link-lib=opencv_surface_matching",
"cargo::rustc-link-lib=opencv_tracking",
"cargo::rustc-link-lib=opencv_highgui",
"cargo::rustc-link-lib=opencv_datasets",
"cargo::rustc-link-lib=opencv_text",
"cargo::rustc-link-lib=opencv_plot",
"cargo::rustc-link-lib=opencv_videostab",
"cargo::rustc-link-lib=opencv_videoio",
"cargo::rustc-link-lib=opencv_viz",
"cargo::rustc-link-lib=opencv_wechat_qrcode",
"cargo::rustc-link-lib=opencv_xfeatures2d",
"cargo::rustc-link-lib=opencv_shape",
"cargo::rustc-link-lib=opencv_ml",
"cargo::rustc-link-lib=opencv_ximgproc",
"cargo::rustc-link-lib=opencv_video",
"cargo::rustc-link-lib=opencv_xobjdetect",
"cargo::rustc-link-lib=opencv_objdetect",
"cargo::rustc-link-lib=opencv_calib3d",
"cargo::rustc-link-lib=opencv_imgcodecs",
"cargo::rustc-link-lib=opencv_features2d",
"cargo::rustc-link-lib=opencv_dnn",
"cargo::rustc-link-lib=opencv_flann",
"cargo::rustc-link-lib=opencv_xphoto",
"cargo::rustc-link-lib=opencv_photo",
"cargo::rustc-link-lib=opencv_imgproc",
"cargo::rustc-link-lib=opencv_core",
],
}
=== Found OpenCV version: 4.13.0 in headers located at: /opt/homebrew/opt/opencv/include/opencv4
=== Detected OpenCV module header dir at: /opt/homebrew/opt/opencv/include/opencv4/opencv2
=== Generating code in: /Users/accusys/video_yolo_player/target/debug/build/opencv-4e105b5546afc119/out
=== Placing generated bindings into: /Users/accusys/video_yolo_player/target/debug/build/opencv-4e105b5546afc119/out/opencv
=== Using OpenCV headers from: /opt/homebrew/opt/opencv/include/opencv4
=== Clang: Homebrew clang version 22.1.0
=== Clang command line args: [
"-isystem/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1",
"-isystem/Library/Developer/CommandLineTools/usr/lib/clang/17/include",
"-isystem/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include",
"-isystem/Library/Developer/CommandLineTools/usr/include",
"-isystem/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks",
"-isystem/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/SubFrameworks",
"-I/opt/homebrew/Cellar/opencv/4.13.0_5/include/opencv4",
"-F/opt/homebrew/Cellar/opencv/4.13.0_5/include/opencv4",
"-I/Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/opencv-0.98.1/src_cpp",
"-F/Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/opencv-0.98.1/src_cpp",
"-DOCVRS_PARSING_HEADERS",
"-includeocvrs_common.hpp",
"-std=c++17",
]
=== Using environment job server with the the amount of available jobs: 10
=== Generating 5 modules
=== Running: "/Users/accusys/video_yolo_player/target/debug/build/opencv-5ede7add649d8d6b/build-script-build" "/opt/homebrew/opt/opencv/include/opencv4" "/Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/opencv-0.98.1/src_cpp" "/Users/accusys/video_yolo_player/target/debug/build/opencv-4e105b5546afc119/out" "core" ""
=== Running: "/Users/accusys/video_yolo_player/target/debug/build/opencv-5ede7add649d8d6b/build-script-build" "/opt/homebrew/opt/opencv/include/opencv4" "/Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/opencv-0.98.1/src_cpp" "/Users/accusys/video_yolo_player/target/debug/build/opencv-4e105b5546afc119/out" "imgproc" ""
=== Running: "/Users/accusys/video_yolo_player/target/debug/build/opencv-5ede7add649d8d6b/build-script-build" "/opt/homebrew/opt/opencv/include/opencv4" "/Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/opencv-0.98.1/src_cpp" "/Users/accusys/video_yolo_player/target/debug/build/opencv-4e105b5546afc119/out" "highgui" ""
=== Running: "/Users/accusys/video_yolo_player/target/debug/build/opencv-5ede7add649d8d6b/build-script-build" "/opt/homebrew/opt/opencv/include/opencv4" "/Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/opencv-0.98.1/src_cpp" "/Users/accusys/video_yolo_player/target/debug/build/opencv-4e105b5546afc119/out" "dnn" ""
=== Running: "/Users/accusys/video_yolo_player/target/debug/build/opencv-5ede7add649d8d6b/build-script-build" "/opt/homebrew/opt/opencv/include/opencv4" "/Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/opencv-0.98.1/src_cpp" "/Users/accusys/video_yolo_player/target/debug/build/opencv-4e105b5546afc119/out" "videoio" ""
=== Generated module bindings: highgui in: 1.159883291s
=== Generated module bindings: videoio in: 1.159964541s
=== Generated module bindings: imgproc in: 1.682992208s
=== Generated module bindings: core in: 2.165579s
=== Generated module bindings: dnn in: 2.473092042s
=== Total binding generation time: 2.473287583s
=== Total binding collection time: 73.435958ms
=== Compiler information: Tool {
path: "c++",
cc_wrapper_path: None,
cc_wrapper_args: [],
args: [
"-O0",
"-ffunction-sections",
"-fdata-sections",
"-fPIC",
"-g",
"-gdwarf-2",
"-fno-omit-frame-pointer",
"--target=arm64-apple-macosx",
"-mmacosx-version-min=26.2",
"-std=c++17",
"-I",
"/Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/opencv-0.98.1/src_cpp",
"-I",
"/Users/accusys/video_yolo_player/target/debug/build/opencv-4e105b5546afc119/out",
"-I",
".",
"-I",
"/opt/homebrew/opt/opencv/include/opencv4",
"-Wall",
"-Wextra",
"-Wno-deprecated-declarations",
"-Wno-deprecated-copy",
"-Wno-unused-parameter",
"-Wno-sign-compare",
"-Wno-comment",
"-Wno-uninitialized",
"-Wno-unused-variable",
"-Wno-ignored-qualifiers",
"-Wno-return-type-c-linkage",
"-Wno-overloaded-virtual",
"-Wno-delete-non-virtual-dtor",
"-F/opt/homebrew/opt/opencv/include/opencv4",
"-DOCVRS_FFI_EXPORT_SUFFIX=_0_98_1",
"-DOCVRS_TARGET_OS_WINDOWS=0",
],
env: [
(
"LC_ALL",
"C",
),
],
family: Clang {
zig_cc: false,
},
cuda: false,
removed_args: [],
has_internal_target_arg: false,
}
=== Total cpp build time: 3.109806292s