À propos du projet

op-cap est une boîte à outils Linux pour stabiliser les cartes de capture USB à haut débit utilisées avec OBS. Elle cible les modes de défaillance courants des périphériques de capture HDMI bon marché : déconnexions aléatoires, blocages de pilotes, corruption de tampons et plantages d'OBS. Approche principale : FFmpeg lit le périphérique de capture physique et écrit vers un périphérique virtuel v4l2loopback (par défaut /dev/video10, étiqueté USB_Capture_Loop). OBS lit ensuite depuis ce loopback stable au lieu du matériel, de sorte qu'un blocage matériel ne tue que le flux FFmpeg, qu'un service de surveillance redémarre automatiquement. Fonctionnalités décrites dans le README : - Récupération automatique après plantage : OBS est relancé en cas de défaillance du périphérique USB, sans limite par défaut. - Reprise du flux : les journaux sont surveillés pour détecter un flux actif et le redémarrer après un plantage. - Reconnexion automatique : le périphérique est surveillé et le flux redémarré en cas de déconnexion. - Réinitialisation USB et rebinding du pilote pour récupérer les périphériques bloqués sans redémarrer. - Optimisations de performance : désactive l'autosuspend USB et ajuste les paramètres d'alimentation, avec des conseils de règles udev pour la persistance. - Modes de gestion HDR (auto, forcer HDR + tonemap, passthrough HDR, forcer SDR). - Incrustation/filigrane optionnel depuis une URL ou un fichier, plus filtres delogo et crop pour supprimer les logos à l'écran. - Détection automatique du format (résolution et fréquence d'images) lors de l'installation. - Optimisation graphique Wayland pour les pilotes Nvidia, AMD et Intel, traitant la synchronisation explicite et les problèmes PipeWire. L'installation se fait via make build / make install, qui sélectionne interactivement le périphérique de capture et installe les services systemd (usb-capture-ffmpeg.service, usb-capture-monitor.service). Les alias d'hôte sobs et cobs lancent OBS avec récupération après plantage, soit sans liaison, soit après avoir choisi un périphérique /dev/video*. Un menu de maintenance interactif (scripts/maintenance.sh) expose neuf outils de récupération : detect_device, disable_overlay, hard_reset, optimise_device, pick_delogo, repair, simulate_disconnect, uhubctl_reset et usb_reset. Des scripts supplémentaires couvrent la validation de capture (diagnostic de corruption et de timeout avec résolution de repli), l'optimisation du périphérique, l'optimisation du pilote, la reconnexion automatique, l'analyse du format et une fiche de référence rapide. La configuration se trouve dans /etc/default/usb-capture, couvrant le chemin du périphérique, la résolution, la fréquence d'images, le format d'entrée, le mode HDR, l'URL/fichier/position/échelle de l'incrustation, l'activation de delogo, la validation du tampon et le seuil de corruption avec résolution de repli. Un lanceur sécurisé (obs-safe-launch.sh) ajoute la surveillance de l'état du périphérique, le redémarrage après plantage avec un court délai de stabilisation, la reprise automatique du flux, la capture des journaux sous ~/.cache/obs-safe-launch/, et des options pour le loopback, le périphérique, la reprise automatique et des arguments OBS supplémentaires. La récupération matérielle USB nécessite sudo ; un installateur sudoers optionnel limite les scripts de récupération pouvant s'exécuter sans mot de passe. Les prérequis incluent ffmpeg, v4l-utils et v4l2loopback-dkms, avec uhubctl et slop en option, plus les pilotes spécifiques au GPU pour l'accélération matérielle.