À propos du projet
VidGear (vidgear) est un framework Python qui simplifie les tâches complexes de traitement vidéo en temps réel grâce à une collection d'API spécialisées appelées « Gears ». Il fournit une couche de haut niveau, multi-thread et compatible asyncio, par-dessus des bibliothèques telles que OpenCV, FFmpeg, ZeroMQ, picamera2, starlette, yt-dlp, dxcam, aiortc et python-mss, exposant leurs paramètres tout en gérant les erreurs et la synchronisation en interne.
Le framework organise ses fonctionnalités en quatre groupes :
**Gears de capture vidéo**
- CamGear : Lit depuis des caméras IP/USB, des flux réseau (RTSP, RTMP, HTTP), des fichiers multimédia, des pipelines GStreamer et des sites de streaming (YouTube, Twitch, etc.) via yt-dlp. Utilise une file d'attente threadée pour une livraison de frames à faible latence.
- FFGear : Wrapper de décodeur FFmpeg accéléré matériellement (CUDA/CUVID, etc.) avec support complet des filtergraphs, extraction de métadonnées par frame et traitement uniquement des keyframes pour l'optimisation de l'inférence IA.
- PiGear : Optimisé pour les modules caméra Raspberry Pi (OV5647, IMX219) via picamera2/libcamera, avec repli sur l'ancien picamera et un chien de garde threadé pour les pannes matérielles.
- ScreenGear : Capture d'écran haute vitesse utilisant les backends dxcam, pyscreenshot ou mss, avec support de régions multi-moniteurs.
- VideoGear : API de capture unifiée qui peut basculer entre les backends CamGear, PiGear et FFGear ; inclut un stabilisateur vidéo intégré pour la réduction des secousses en temps réel.
**Gear d'écriture vidéo**
- WriteGear : Encodeur basé sur FFmpeg pour une sortie sans perte ou compressée avec codec, débit binaire, résolution, sous-titres et multiplexage audio arbitraires. Propose également un mode non compressé via OpenCV VideoWriter. Supporte le streaming en direct vers des endpoints RTMP/RTSP.
**Gears de streaming**
- StreamGear : Transcode l'entrée en formats de streaming adaptatif (MPEG-DASH, Apple HLS) avec génération de chunks et de manifestes.
- WebGear : Serveur ASGI diffusant des frames MJPEG en direct vers les navigateurs.
- WebGear_RTC : Serveur média WebRTC asyncio pour le streaming pair-à-pair à faible latence.
**Gears réseau**
- NetGear : Transfert haute performance de frames et de données entre systèmes sur le réseau (basé sur ZeroMQ).
- NetGear_Async : Version asyncio de NetGear économe en mémoire.
Tous les Gears partagent un modèle cohérent start/read/stop, une journalisation extensive et une documentation détaillée. Le projet est sous licence Apache 2.0.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.