본문으로 건너뛰기

다중 카메라 구성

FLYOS-FAST v1.4.0의 GoCam은 동일한 상위 컴퓨터에서 여러 개의 UVC 카메라를 연결하는 것을 지원합니다. 본 문서에서는 두 개의 카메라를 예로 들어 전체 구성 방법을 설명하며, 세 개, 네 개의 경우에도 동일하게 적용됩니다.

적용 버전

다중 카메라는 GoCam에 의존하며, FLYOS-FAST v1.4.0 이상 버전에서만 제공됩니다. Crowsnest를 사용하는 기기는 카메라 연결 및 사용을 참고하시고, 단일 GoCam의 기본 사용법은 GoCam 카메라 서비스를 참고하십시오.

포트 및 접속 주소​

각 카메라의 포트와 웹페이지 경로는 일대일로 대응되며, /webcamN/ 접두사는 nginx에 출하 시 미리 설정되어 있어 수정할 필요가 없습니다. 주소 오른쪽의 아이콘을 클릭하면 복사할 수 있습니다:

채널 및 포트실시간 비디오 스트림단일 프레임 스냅샷
제1채널 · 8080
Loading...
Loading...
제2채널 · 8081
Loading...
Loading...
제3채널 · 8082
Loading...
Loading...
제4채널 · 8083
Loading...
Loading...

규칙은 다음과 같습니다: 제N채널의 포트는 8080 + (N - 1)이며, 웹페이지 경로는 /webcamN/이고, 그중 제1채널은 숫자를 생략하여 /webcam/으로 표기합니다.

?action=stream과 ?action=snapshot은 GoCam이 mjpg-streamer와 호환되는 표기법으로, 각각 /stream 및 /snapshot과 동일하며, 인터페이스 자체의 동작으로 구성해야 하는 옵션이 아닙니다.

카메라 연결​

카메라 선택, 배선 방식 및 드라이버 불필요 UVC 요구 사항은 카메라 연결 및 사용을 참고하십시오.

다중 카메라 환경에서는 각 카메라를 상위 컴퓨터의 서로 다른 USB 인터페이스에 연결해야 하며, 동일한 비전원 허브를 거치지 않아야 합니다. 카메라를 연결하거나 분리하기 전에 프린터를 완전히 종료하고 전원을 차단하십시오.

1단계: 구성 열기​

Fluidd에서 구성 파일을 열고 장치 노드(카메라 ID)를 확인하는 방법은 구성 열기를 참고하십시오.

다중 카메라 환경에서는 각 채널마다 해당 카메라의 캡처 노드(video-index0)를 기입해야 하며, metadata 노드를 가리키지 않도록 하고, USB 물리 포트에 따라 고정하여 재부팅 후 노드 번호 변경으로 인한 오류를 방지하십시오.

2단계: 다중 채널 구성 작성​

구성 파일 위치:

/usr/share/printer_data/config/gocam.conf

두 채널 구성 예시(device는 by-path로 고정, 해상도는 실측값으로 기입):

[cam 1]
port: 8080
device: /dev/v4l/by-path/platform-5311000.usb-usb-0:1:1.0-video-index0
resolution: 640x480
max_fps: 15
quality: 5

[cam 2]
port: 8081
device: /dev/v4l/by-path/platform-5101000.usb-usb-0:1:1.0-video-index0
resolution: 640x480
max_fps: 15
quality: 5
매개변수설명
port해당 채널이 수신하는 HTTP 포트, 채널 간 중복 불가
device해당 카메라 캡처 노드(video-index0)의 경로
resolution카메라가 실제로 지원하는 해상도, 형식은 너비x높이
max_fps최대 프레임 레이트, 카메라 열거 값을 초과하지 않도록 권장
qualityMJPEG 품질, 값 범위 1 ~ 31, 숫자가 작을수록 화질이 좋고 대역폭이 높음
v4l2ctl선택 사항, UVC 매개변수, 관리 페이지에서 저장한 매개변수가 이 항목에 기록됨
ffmpeg_flags선택 사항, FFmpeg 매개변수
소프트웨어 인코딩과 패스스루

YUYV 형식만 지원하는 카메라는 상위 컴퓨터에서 MJPEG로 소프트웨어 인코딩해야 하므로 CPU 점유율이 높습니다. MJPG를 지원하는 카메라는 패스스루가 가능하여 CPU를 거의 점유하지 않습니다. 두 채널 모두 YUYV만 가능한 경우 640x480, 15 프레임부터 시작하는 것을 권장하며, 특정 채널이 MJPG를 지원하는 경우 해당 채널만 해상도를 높일 수 있습니다.

3단계: 웹페이지에서 카메라 패널 추가​

GoCam을 구성한 후 Moonraker에 카메라를 등록해야 Fluidd / Mainsail에서 패널이 표시됩니다.

Fluidd에서 설정 → 카메라를 열고 두 채널 항목을 각각 다음과 같이 기입했는지 확인하십시오:

항목비디오 스트림 주소스냅샷 주소
제1채널
Loading...
Loading...
제2채널
Loading...
Loading...
일반적인 오류
  • 제2채널을 여전히 /webcam/으로 작성: 두 패널이 동일한 카메라의 화면을 표시합니다. 제N채널은 반드시 /webcamN/을 사용해야 합니다.
  • 웹페이지에서 추가한 항목은 Moonraker 데이터베이스에 저장됩니다(source가 database). moonraker.conf만 수정하면 적용되지 않으며, 반드시 인터페이스에서 수정해야 합니다.
  • Moonraker의 /server/webcams/item 인터페이스는 조회, 추가, 삭제만 지원하며 수정은 지원하지 않으므로 역시 인터페이스에서 조작하십시오.

구성 파일 방식으로 항목을 추가해야 하는 경우(데이터베이스의 기존 항목은 변경하지 않음), moonraker.conf에 다음을 추가할 수 있습니다:

[webcam cam2]
enabled: true
service: mjpegstreamer-adaptive
target_fps: 15
stream_url: /webcam2/?action=stream
snapshot_url: /webcam2/?action=snapshot

자주 묻는 질문​

증상가능한 원인처리
페이지에 NO SIGNAL 표시, frames가 항상 0device가 metadata 노드를 가리키거나 resolution이 카메라 성능을 초과함--list-formats-ext로 확인하고 video-index0으로 변경
두 패널의 화면이 완전히 동일함제2채널의 URL이 여전히 /webcam/으로 작성됨/webcam2/?action=stream으로 변경
재부팅 후 특정 채널이 작동하지 않음/dev/videoN 번호가 연결/분리 순서에 따라 변경됨device를 /dev/v4l/by-path/...-video-index0으로 변경
제2채널 포트가 연결되지 않음[cam 2]가 구성되지 않았거나 다른 서비스 포트와 충돌ss -lntp | grep 8081로 수신 확인
화면 끊김, 상위 컴퓨터 부하 증가YUYV 소프트웨어 인코딩에 높은 해상도, 높은 프레임 레이트가 중첩됨해상도나 프레임 레이트를 낮추거나 MJPG 지원 카메라로 교체
Loading...