Sobre el proyecto
VidGear (vidgear) es un framework Python que simplifica tareas complejas de procesamiento de video en tiempo real mediante una colección de APIs especializadas llamadas "Gears". Proporciona una capa de alto nivel, multi-hilo y compatible con asyncio sobre bibliotecas como OpenCV, FFmpeg, ZeroMQ, picamera2, starlette, yt-dlp, dxcam, aiortc y python-mss, exponiendo sus parámetros mientras maneja errores y sincronización internamente.
El framework organiza la funcionalidad en cuatro grupos:
**Gears de captura de video**
- CamGear: Lee desde cámaras IP/USB, transmisiones de red (RTSP, RTMP, HTTP), archivos multimedia, pipelines de GStreamer y sitios de streaming (YouTube, Twitch, etc.) mediante yt-dlp. Utiliza una cola con hilos para entrega de fotogramas de baja latencia.
- FFGear: Envoltorio de decodificador FFmpeg con aceleración por hardware (CUDA/CUVID, etc.) con soporte completo de filtergraph, extracción de metadatos por fotograma y procesamiento solo de fotogramas clave para optimización de inferencia de IA.
- PiGear: Optimizado para módulos de cámara Raspberry Pi (OV5647, IMX219) mediante picamera2/libcamera, con respaldo a picamera legacy y un watchdog con hilos para fallos de hardware.
- ScreenGear: Captura de pantalla de alta velocidad usando backends dxcam, pyscreenshot o mss, con soporte para regiones de múltiples monitores.
- VideoGear: API de captura unificada que puede alternar entre backends CamGear, PiGear y FFGear; incluye un estabilizador de video integrado para reducción de vibración en tiempo real.
**Gear de escritura de video**
- WriteGear: Codificador basado en FFmpeg para salida sin pérdida o comprimida con códec, bitrate, resolución, subtítulos y multiplexación de audio arbitrarios. También ofrece un modo sin compresión de OpenCV VideoWriter. Soporta transmisión en vivo a endpoints RTMP/RTSP.
**Gears de streaming**
- StreamGear: Transcodifica la entrada a formatos de streaming adaptativo (MPEG-DASH, Apple HLS) con fragmentación y generación de manifiestos.
- WebGear: Servidor ASGI que transmite fotogramas MJPEG en vivo a navegadores.
- WebGear_RTC: Servidor de medios WebRTC asyncio para streaming peer-to-peer de baja latencia.
**Gears de red**
- NetGear: Transferencia de fotogramas y datos de alto rendimiento entre sistemas a través de la red (basado en ZeroMQ).
- NetGear_Async: Versión asyncio de NetGear eficiente en memoria.
Todos los Gears comparten un patrón consistente de inicio/lectura/parada, registro extenso y documentación detallada. El proyecto está licenciado bajo Apache 2.0.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.