Introduction¶
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 this is your first time using VidGear, head straight to the Installation to install VidGear.
-
Once you have VidGear installed, Checkout its Function-Specific Gears.
-
Also, if you're already familar with OpenCV library, then see Switching from OpenCV Library.
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
Citation¶
Here is a Bibtex entry you can use to cite this project in a publication:
@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}
}