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
Vincent Boivin and
Benjamin Lowe and
MickaΓ«l Schoentgen and
Renaud Bouckenooghe},
title = {abhiTronix/vidgear: VidGear v0.2.5},
month = feb,
year = 2022,
publisher = {Zenodo},
version = {vidgear-0.2.5},
doi = {10.5281/zenodo.6046843},
url = {https://doi.org/10.5281/zenodo.6046843}
}
β