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, picamera, starlette, yt_dlp, pyscreenshot, 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 Raspberry-Pi Camera Modules.
- ScreenGear: Multi-Threaded API targeting ultra-fast Screencasting.
- 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
enarche-ahn and
freol35241 and
Benjamin Lowe and
MickaΓ«l Schoentgen and
Renaud Bouckenooghe},
title = {abhiTronix/vidgear: VidGear v0.2.6},
month = jul,
year = 2022,
publisher = {Zenodo},
version = {vidgear-0.2.6},
doi = {10.5281/zenodo.6926196},
url = {https://doi.org/10.5281/zenodo.6926196}
}