VideoPipe  by sherlockchou86

Cross-platform C++ framework for video analysis and structuring

Created 3 years ago
1,822 stars

Top 23.7% on SourcePulse

GitHubView on GitHub
Project Summary

VideoPipe is a cross-platform C++ framework for video analysis and structuring, designed for ease of use and portability. It targets developers building applications for traffic and security, such as incident detection, face recognition, and behavior analysis, offering a flexible pipeline architecture with minimal dependencies.

How It Works

VideoPipe employs a plugin-oriented design, allowing users to construct video analysis pipelines by chaining independent nodes. This modular approach supports various inference backends (OpenCV::DNN, TensorRT, ONNX Runtime, etc.) and integrates custom business logic. The framework handles stream reading, decoding, inference, tracking, data proxying, recording, and encoding, simplifying the integration of diverse computer vision models.

Quick Start & Requirements

  • Install: Clone the repository, create a build directory, and run cmake .. followed by make -j8.
  • Prerequisites: C++17, OpenCV >= 4.6, GStreamer 1.14.5. Optional: CUDA, TensorRT, Paddle Inference, ONNX Runtime, mLLM.
  • Compilation Options: Use -DVP_WITH_CUDA=ON, -DVP_WITH_TRT=ON, etc., to enable specific features.
  • Running Samples: Download model files and test data, place them in a vp_data directory, and execute compiled samples (e.g., build/bin/1-1-1_sample).
  • Links: VideoPipe Website, Tutorials, HAVE Dataset.

Highlighted Details

  • Supports multi-level inference and mLLM integration.
  • Offers hardware acceleration via OpenCV/GStreamer for decoding and encoding.
  • Includes over 40 prototype examples for various use cases.
  • Provides data proxying via Kafka or Socket and stream pushing capabilities.

Maintenance & Community

The project appears to be actively maintained by sherlockchou86. Community engagement can be found via a WeChat discussion group.

Licensing & Compatibility

The project is open-source, but the specific license is not explicitly stated in the README. Compatibility for commercial use or closed-source linking would require clarification of the license.

Limitations & Caveats

The README mentions that some hardware-specific code (Cambrian MLU, Rockchip RK35**, Ascend 310/910) is not provided. Performance is rated as "Medium" compared to proprietary frameworks like DeepStream and mxVision.

Health Check
Last Commit

2 days ago

Responsiveness

Inactive

Pull Requests (30d)
2
Issues (30d)
3
Star History
26 stars in the last 30 days

Explore Similar Projects

Feedback? Help us improve.