Об этом проекте
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 для аппаратного ускорения.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.