프로젝트 소개
op-cap은 OBS와 함께 사용하는 고처리량 USB 캡처 카드를 안정화하기 위한 Linux 툴킷입니다. 저렴한 HDMI 캡처 장치의 흔한 고장 유형인 무작위 연결 끊김, 드라이버 멈춤, 버퍼 손상, OBS 충돌을 대상으로 합니다.
핵심 접근 방식: FFmpeg가 물리적 캡처 장치를 읽고 v4l2loopback 가상 장치(기본 /dev/video10, 라벨 USB_Capture_Loop)에 씁니다. 그러면 OBS는 하드웨어 대신 이 안정적인 루프백에서 읽으므로, 하드웨어가 멈춰도 FFmpeg 피드만 죽고 모니터 서비스가 이를 자동으로 재시작합니다.
README에 설명된 기능:
- 자동 충돌 복구: USB 장치 실패 시 OBS를 다시 실행하며, 기본적으로 횟수 제한이 없습니다.
- 스트림 재개: 로그를 모니터링해 활성 스트림을 감지하고 충돌 후 재시작합니다.
- 자동 재연결: 장치를 감시하고 연결이 끊기면 피드를 재시작합니다.
- USB 리셋 및 드라이버 리바인드로 재부팅 없이 멈춘 장치를 복구합니다.
- 성능 조정: USB 자동 일시 중단을 비활성화하고 전원 설정을 조정하며, 지속 적용을 위한 udev 규칙 지침을 제공합니다.
- HDR 처리 모드(auto, force HDR + tonemap, HDR passthrough, force SDR).
- URL 또는 파일에서 선택적 오버레이/워터마크, 그리고 화면 로고 제거를 위한 delogo 및 crop 필터.
- 설치 중 해상도와 프레임레이트 자동 감지.
- Nvidia, AMD, Intel 드라이버를 위한 Wayland 그래픽 최적화로 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/ 아래 로그 캡처, 그리고 루프백, 장치, 자동 재개, 추가 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.