Skip to content

Introduction

VidGear

VidGear tagline

VidGear is a cross-platform High-Performance Video-Processing Framework for building complex real-time media applications in python 🔥

VidGear provides an easy-to-use, highly extensible, Multi-Threaded + Asyncio API Framework on top of many state-of-the-art specialized libraries like OpenCV, FFmpeg, ZeroMQ, picamera2, starlette, yt_dlp, pyscreenshot, dxcam, aiortc and python-mss at its backend, and enable us to flexibly exploit their internal parameters and methods, while silently delivering robust error-handling and real-time performance ⚡️.

"Write Less and Accomplish More" — VidGear's Motto

VidGear focuses on simplicity, and thereby lets programmers and software developers to easily integrate and perform Complex Video Processing Tasks without going through hefty documentation and in just a few lines of code.

Getting Started

In case you're run into any problems, consult the Help section.

If you're just getting started with OpenCV-Python programming, then refer this FAQ ➶

Gears

VidGear is built with multiple Gears each with some unique functionality.

Each Gear is designed exclusively to handle/control/process different data-specific & device-specific video streams, network streams, and media encoders/decoders.

These Gears can be classified as follows:

VideoCapture Gears

  • CamGear: Multi-Threaded API targeting various IP-USB-Cameras/Network-Streams/Streaming-Sites-URLs.
  • PiGear: Multi-Threaded API targeting various Camera Modules and (limited) USB cameras on Raspberry Pis .
  • ScreenGear: High-performance API targeting rapid Screencasting Capabilities.
  • VideoGear: Common Video-Capture API with internal Video Stabilizer wrapper.

VideoWriter Gears

  • WriteGear: Handles Lossless Video-Writer for file/stream/frames Encoding and Compression.

Streaming Gears

  • StreamGear: Handles Transcoding of High-Quality, Dynamic & Adaptive Streaming Formats.

  • Asynchronous I/O Streaming Gear:

    • WebGear: ASGI Video-Server that broadcasts Live MJPEG-Frames to any web-browser on the network.
    • WebGear_RTC: Real-time Asyncio WebRTC media server for streaming directly to peer clients over the network.

Network Gears

  • NetGear: Handles High-Performance Video-Frames & Data Transfer between interconnecting systems over the network.

  • Asynchronous I/O Network Gear:

    • NetGear_Async: Immensely Memory-Efficient Asyncio Video-Frames Network Messaging Framework.

Contributions

Contributions are welcome, and greatly appreciated!

Please see our Contribution Guidelines for more details.

Community Channel

If you've come up with some new idea, or looking for the fastest way troubleshoot your problems. Please checkout our Gitter community channel ➶

Become a Stargazer

You can be a Stargazer 🌟 by starring us on Github, it helps us a lot and you're making it easier for others to find & trust this library. Thanks!

Donations

VidGear is free and open source and will always remain so. ❤

It is something I am doing with my own free time. But so much more needs to be done, and I need your help to do this. For just the price of a cup of coffee, you can make a difference 🙂

Buy Me a Coffee at ko-fi.com

Citation

Here is a Bibtex entry you can use to cite this project in a publication:

DOI

@software{vidgear,
  author       = {Abhishek Thakur and
                  Zoe Papakipos and
                  Christian Clauss and
                  Christian Hollinger and
                  Ian Max Andolina and
                  Vincent Boivin and
                  Kyle Ahn and
                  freol35241 and
                  Benjamin Lowe and
                  Mickaël Schoentgen and
                  Renaud Bouckenooghe and
                  Ibtsam Ahmad},
  title        = {abhiTronix/vidgear: VidGear Stable v0.3.2},
  month        = sep,
  year         = 2023,
  publisher    = {Zenodo},
  version      = {vidgear-0.3.2},
  doi          = {10.5281/zenodo.8332548},
  url          = {https://doi.org/10.5281/zenodo.8332548}
}