GD-C100 Ubuntu

GD-C100 Ubuntu 연결 성공

다이소에서 약 5,000원대에 구할 수 있는 PC용 GD-C100 USB 화상카메라를 192.168.0.197 Ubuntu 서버에 연결했고, uStreamer와 nginx 프록시로 실시간 MJPEG 공개 송출까지 성공했습니다.

연결 상태 LIVE SUCCESS
서버 192.168.0.197
카메라 GD-C100 USB
장치 경로 /dev/video0
실시간 스트림 uStreamer 8088/stream
송출 설정 640x480 / 목표 30fps / JPEG 90
GD-C100 실시간 영상 원본 열기
GD-C100 Ubuntu 서버 실시간 웹캠 영상 192.168.0.197 / MJPEG
nginx가 192.168.0.197:8088/stream을 직접 프록시합니다. PHP-FPM을 거치지 않는 실시간 MJPEG 경로라 장시간 재생에 맞습니다.
Connection Report

GD-C100 Ubuntu 실시간 연결 성공 요약

GD-C100은 Ubuntu에서 /dev/video0 장치로 인식됐고, 현재 640x480 모드로 실시간 송출 중입니다. nginx는 192.168.0.197:8088/stream을 공개 경로로 넘겨서 메인 캠프 위젯과 전용 페이지에서 바로 볼 수 있게 구성했습니다.

구매부터 Ubuntu 인식까지

GD-C100은 별도 전원 없이 USB로 연결하는 보급형 PC 화상카메라입니다. 설치는 제품을 서버 USB 포트에 꽂고, Linux 웹캠 장치로 잡히는지 확인한 뒤 실시간 송출 서비스를 붙이는 순서로 진행했습니다.

  1. GD-C100을 서버 USB 포트에 연결합니다.
  2. lsusb로 USB 카메라가 잡히는지 확인합니다.
  3. v4l-utils, ffmpeg, cheese, ustreamer를 설치합니다.
  4. v4l2-ctl --list-devices/dev/video0 같은 영상 장치를 확인합니다.
  5. 웹 서버나 캡처 프로세스를 실행할 계정을 video 그룹에 넣고 재로그인합니다.
  6. v4l2-ctl --list-formats-ext로 실제 지원 해상도와 FPS를 확인합니다.
sudo apt update
sudo apt install -y v4l-utils ffmpeg cheese ustreamer
lsusb
v4l2-ctl --list-devices
v4l2-ctl -d /dev/video0 --list-formats-ext
sudo usermod -aG video "$USER"
현재 연결된 카메라는 커널 기준 최대 640x480 30fps 모드까지 확인됩니다. 실제 FPS는 조명, USB 상태, 장면 변화량에 따라 /statecaptured_fps 값처럼 낮아질 수 있고, 720p 이상은 이 장치가 지원 모드로 제공하지 않습니다.

테스트 캡처

장치가 /dev/video0로 보이면 지원 해상도인 640x480으로 한 장을 캡처합니다. 파일이 정상 생성되면 서버가 카메라 입력을 받을 준비가 된 상태입니다.

mkdir -p ~/gd-c100-test
ffmpeg -y -f v4l2 -input_format yuyv422 -video_size 640x480 -i /dev/video0 -frames:v 1 ~/gd-c100-test/gd-c100.jpg
ls -lh ~/gd-c100-test/gd-c100.jpg

실시간 확인이 필요할 때

ffplay -f v4l2 -input_format yuyv422 -video_size 640x480 -framerate 30 -i /dev/video0

GUI 확인은 cheese로 하고, 공개 페이지 운영은 ustreamer 서비스를 사용합니다.

현재 운영 서비스

현재 실시간 영상은 gd-c100-ustreamer.service가 담당합니다. 서비스는 부팅 시 자동으로 켜지고, nginx는 /gd-c100-ubuntu-camera/live-stream/ 요청을 192.168.0.197:8088/stream으로 직접 전달합니다. uStreamer는 목표 30fps와 JPEG 품질 90으로 실행하며, 실제 캡처 FPS는 상태 API에서 확인합니다.

systemctl status gd-c100-ustreamer.service
curl -I http://192.168.0.197:8088/stream
curl http://192.168.0.197:8088/state
curl -I https://www.netcity.co.kr/gd-c100-ubuntu-camera/live-stream/

수동 실행 기준

ustreamer --device /dev/video0 --host 0.0.0.0 --port 8088 \
  --resolution 640x480 --format YUYV --desired-fps 30 \
  --encoder CPU --quality 90 --persistent --drop-same-frames 30