Sobre o projeto
VidGear (vidgear) é um framework Python que simplifica tarefas complexas de processamento de vídeo em tempo real por meio de uma coleção de APIs especializadas chamadas "Gears". Ele fornece uma camada de alto nível, multi-thread e compatível com asyncio sobre bibliotecas como OpenCV, FFmpeg, ZeroMQ, picamera2, starlette, yt-dlp, dxcam, aiortc e python-mss, expondo seus parâmetros enquanto gerencia erros e sincronização internamente.
O framework organiza a funcionalidade em quatro grupos:
**Gears de Captura de Vídeo**
- CamGear: Lê de câmeras IP/USB, streams de rede (RTSP, RTMP, HTTP), arquivos multimídia, pipelines GStreamer e sites de streaming (YouTube, Twitch, etc.) via yt-dlp. Usa uma fila com threads para entrega de frames de baixa latência.
- FFGear: Wrapper do decodificador FFmpeg com aceleração de hardware (CUDA/CUVID, etc.) com suporte completo a filtergraph, extração de metadados por frame e processamento apenas de keyframes para otimização de inferência de IA.
- PiGear: Otimizado para módulos de câmera Raspberry Pi (OV5647, IMX219) via picamera2/libcamera, com fallback para picamera legado e um watchdog com threads para falhas de hardware.
- ScreenGear: Captura de tela de alta velocidade usando backends dxcam, pyscreenshot ou mss, com suporte a regiões de múltiplos monitores.
- VideoGear: API de captura unificada que pode alternar entre backends CamGear, PiGear e FFGear; inclui um estabilizador de vídeo integrado para redução de tremores em tempo real.
**Gear de Gravação de Vídeo**
- WriteGear: Codificador baseado em FFmpeg para saída sem perdas ou comprimida com codec, bitrate, resolução, legendas e multiplexação de áudio arbitrários. Também oferece um modo de não compressão do OpenCV VideoWriter. Suporta streaming ao vivo para endpoints RTMP/RTSP.
**Gears de Streaming**
- StreamGear: Transcodifica entrada em formatos de streaming adaptativo (MPEG-DASH, Apple HLS) com geração de chunks e manifestos.
- WebGear: Servidor ASGI que transmite frames MJPEG ao vivo para navegadores.
- WebGear_RTC: Servidor de mídia WebRTC asyncio para streaming ponto a ponto de baixa latência.
**Gears de Rede**
- NetGear: Transferência de frames e dados de alto desempenho entre sistemas pela rede (baseado em ZeroMQ).
- NetGear_Async: Versão asyncio de NetGear com eficiência de memória.
Todos os Gears compartilham um padrão consistente de iniciar/ler/parar, logging extensivo e documentação detalhada. O projeto é licenciado sob Apache 2.0.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.