Sobre o projeto
op-cap é um kit de ferramentas Linux para estabilizar placas de captura USB de alto rendimento usadas com o OBS. Ele visa os modos de falha comuns de dispositivos HDMI de captura baratos: desconexões aleatórias, travamentos de driver, corrupção de buffer e falhas do OBS.
Abordagem central: o FFmpeg lê o dispositivo de captura físico e grava em um dispositivo virtual v4l2loopback (padrão /dev/video10, rotulado USB_Capture_Loop). O OBS então lê desse loopback estável em vez do hardware, de modo que um travamento de hardware só mata o feed do FFmpeg, que um serviço de monitoramento reinicia automaticamente.
Recursos descritos no README:
- Recuperação automática de falhas: o OBS é relançado em caso de falha do dispositivo USB, ilimitado por padrão.
- Retomada de transmissão: os logs são monitorados para detectar uma transmissão ativa e reiniciá-la após uma falha.
- Reconexão automática: o dispositivo é monitorado e o feed é reiniciado em caso de desconexão.
- Reset USB e rebind de driver para recuperar dispositivos travados sem reiniciar.
- Ajustes de desempenho: desativa o autosuspend USB e ajusta configurações de energia, com orientação de regras udev para persistência.
- Modos de tratamento de HDR (auto, forçar HDR + tonemap, passthrough de HDR, forçar SDR).
- Sobreposição/marca d'água opcional a partir de URL ou arquivo, além de filtros delogo e crop para remover logotipos na tela.
- Detecção automática de formato de resolução e taxa de quadros durante a instalação.
- Otimização gráfica para Wayland nos drivers Nvidia, AMD e Intel, abordando sincronização explícita e problemas com PipeWire.
A instalação é feita via make build / make install, que seleciona interativamente o dispositivo de captura e instala serviços systemd (usb-capture-ffmpeg.service, usb-capture-monitor.service). Aliases de host sobs e cobs iniciam o OBS com recuperação de falhas, seja sem vínculo ou após escolher um dispositivo /dev/video*.
Um menu de manutenção interativo (scripts/maintenance.sh) expõe nove ferramentas de recuperação: detect_device, disable_overlay, hard_reset, optimise_device, pick_delogo, repair, simulate_disconnect, uhubctl_reset e usb_reset. Scripts adicionais cobrem validação de captura (diagnóstico de corrupção e timeout com resolução de fallback), otimização de dispositivo, otimização de driver, reconexão automática, análise de formato e uma folha de referência rápida.
A configuração fica em /etc/default/usb-capture, abrangendo caminho do dispositivo, resolução, taxa de quadros, formato de entrada, modo HDR, URL/arquivo/posição/escala da sobreposição, alternância de delogo, validação de buffer e limite de corrupção com resolução de fallback.
Um lançador de segurança (obs-safe-launch.sh) adiciona monitoramento de integridade do dispositivo, reinício após falha com um breve atraso de estabilização, retomada automática de transmissão, captura de logs em ~/.cache/obs-safe-launch/ e flags para loopback, dispositivo, retomada automática e argumentos extras do OBS. A recuperação de hardware USB requer sudo; um instalador opcional de sudoers limita quais scripts de recuperação podem ser executados sem senha.
Os requisitos incluem ffmpeg, v4l-utils e v4l2loopback-dkms, com uhubctl e slop opcionais, além de drivers específicos de GPU para aceleração de hardware.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.