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, picamera, 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 Raspberry-Pi Camera Modules.
  • 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 πŸ™‚

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
                  enarche-ahn and
                  freol35241 and
                  Benjamin Lowe and
                  MickaΓ«l Schoentgen and
                  Renaud Bouckenooghe},
  title        = {abhiTronix/vidgear: VidGear v0.3.1},
  month        = jul,
  year         = 2023,
  publisher    = {Zenodo},
  version      = {vidgear-0.3.1},
  doi          = {10.5281/zenodo.8174694},
  url          = {https://doi.org/10.5281/zenodo.8174694}
}


Last update: September 10, 2023