Об этом проекте

op-cap — это набор инструментов Linux для стабилизации высокопроизводительных USB-карт захвата, используемых с OBS. Он нацелен на типичные сбои дешёвых HDMI-устройств захвата: случайные отключения, зависания драйверов, повреждение буферов и падения OBS. Основной подход: FFmpeg читает физическое устройство захвата и пишет в виртуальное устройство v4l2loopback (по умолчанию /dev/video10 с меткой USB_Capture_Loop). Затем OBS читает из этого стабильного loopback-устройства вместо аппаратного, поэтому зависание оборудования убивает только поток FFmpeg, который служба мониторинга автоматически перезапускает. Возможности, описанные в README: - Автоматическое восстановление после сбоев: OBS перезапускается при отказе USB-устройства, по умолчанию без ограничений. - Возобновление потока: логи отслеживаются для обнаружения активного стрима и его перезапуска после сбоя. - Автопереподключение: устройство отслеживается, и поток перезапускается при отключении. - Сброс USB и повторное связывание драйвера для восстановления зависших устройств без перезагрузки. - Настройки производительности: отключает USB autosuspend и корректирует параметры питания, с рекомендациями по udev-правилам для сохранения настроек. - Режимы обработки HDR (auto, force HDR + tonemap, HDR passthrough, force SDR). - Опциональный оверлей/водяной знак из URL или файла, а также фильтры delogo и crop для удаления логотипов на экране. - Автоопределение формата разрешения и частоты кадров во время установки. - Оптимизация графики Wayland для драйверов Nvidia, AMD и Intel, решающая проблемы explicit sync и PipeWire. Установка выполняется через make build / make install, что интерактивно выбирает устройство захвата и устанавливает службы systemd (usb-capture-ffmpeg.service, usb-capture-monitor.service). Псевдонимы хоста sobs и cobs запускают OBS с восстановлением после сбоев — либо без привязки, либо после выбора устройства /dev/video*. Интерактивное меню обслуживания (scripts/maintenance.sh) предоставляет девять инструментов восстановления: detect_device, disable_overlay, hard_reset, optimise_device, pick_delogo, repair, simulate_disconnect, uhubctl_reset и usb_reset. Дополнительные скрипты охватывают проверку захвата (диагностика повреждений и тайм-аутов с резервным разрешением), оптимизацию устройства, оптимизацию драйвера, автопереподключение, разбор формата и краткую справочную шпаргалку. Конфигурация находится в /etc/default/usb-capture и охватывает путь устройства, разрешение, частоту кадров, входной формат, режим HDR, URL/файл/позицию/масштаб оверлея, переключатель delogo, проверку буфера и порог повреждений с резервным разрешением. Безопасный лаунчер (obs-safe-launch.sh) добавляет мониторинг состояния устройства, перезапуск после сбоя с короткой задержкой стабилизации, автовозобновление потока, захват логов в ~/.cache/obs-safe-launch/ и флаги для loopback, устройства, автовозобновления и дополнительных аргументов OBS. Для восстановления USB-оборудования нужен sudo; опциональный установщик sudoers ограничивает, какие скрипты восстановления могут запускаться без пароля. Требования включают ffmpeg, v4l-utils и v4l2loopback-dkms, опционально uhubctl и slop, а также драйверы для конкретных GPU для аппаратного ускорения.