À 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.