원격으로 웹캠 사용하기
0. 문제
> 안전/보안 프로그램 특성상 cctv와 같은 카메라가 상시 대기해야 하는데, 이 카메라와 실제 기기들을 제어해야하는 프로그램 사이 물리적 거리차이가 존재할 수 밖에 없는 문제가 발생했다.
> 따라서 웹캠을 연결해놓은 pc를 웹캠 근처에 놓고, 웹캠을 연결을 한 PC에서 네트워크로 실제 프로그램이 있는 PC에 스트리밍만 해준다면 물리적인 차이는 일부 해결할 수 있다.
1. 웹캠이 연결된 PC 준비
1) mjpg-streamer 설치
sudo apt update
sudo apt install mjpg-streamer
2) 웹캠 확인
ls /dev/video*
3) 스트리밍 실행(해상도 640x480 / fps 15 / YUYV -> MJPEG 변환)
mjpg-streamer \
-i "input_uvc.so -d /dev/video0 -r 640x480 -f 15 -y" \
-o "output_http.so -p 8080 -w /usr/share/mjpg-streamer/www"
2. 방화벽 및 네트워크 확인
1) 웹캠이 연결된 PC가 나와 같은 네트워크에 있어야 함
2) 8080 포트가 방화벽에 열려있어야 함
sudo ufw allow 8080/tcp
3. 내 PC에서 접근
1) 웹 브라우저에서 접근
http://<원격PC_IP>:8080/?action=stream
2) Qt/OpenCV 프로그램에서 접근
cv::VideoCapture cap("http://<원격PC_IP>:8080/?action=stream");
4. 설치시 발생할 수 있는 경로설정 문제
1) mjpg-streamer 구조
- 실행파일
- 플러그인(입력 플러그인(input_uvc.so) / 출력 플러그인(output_http.so))
2) 설치 방식에 따른 플러그인 위치
- apt 설치(sudo apt install mjpg-streamer) -> /usr/lib/x86_64-linux-gnu/mjpg-streamer/input_uvc.so
- snap 설치(sudo snap install mjpg-streamer) ->/snap/mjpg-streamer/current/usr/lib/mjpg-streamer/
- 소스 빌드 설치 -> mjpg-streamer/plugins/
3) 해결방법
- 실행파일(mjpg_streamer) 경로 확인
which mjpg_streamer
> 예: /usr/bin/mjpg_streamer 또는 /snap/bin/mjpg_streamer
- 플러그인 경로 확인
find /usr -name "input_uvc.so" 2>/dev/null
find /snap -name "input_uvc.so" 2>/dev/null
- 플러그인 경로 지정
mjpg_streamer \
-i "/usr/lib/x86_64-linux-gnu/mjpg-streamer/input_uvc.so -d /dev/video0 -r 640x480 -f 15" \
-o "/usr/lib/x86_64-linux-gnu/mjpg-streamer/output_http.so -p 8080 -w /usr/share/mjpg-streamer/www"
'LMS 7 > 개발일지' 카테고리의 다른 글
| 25.09.10 / 제60회 전국기능경기대회 전시 작품 제작 프로젝트 2팀(안전/보안) / 6일차 (0) | 2025.11.04 |
|---|---|
| 25.09.09/ 제60회 전국기능경기대회 전시 작품 제작 프로젝트 2팀(안전/보안) / 5일차 (0) | 2025.11.04 |
| 25.09.05 / 제60회 전국기능경기대회 전시 작품 제작 프로젝트 2팀(안전/보안) / 3일차 (1) | 2025.11.04 |
| 25.08.13 / QT6 개인 프로젝트 1 (4) | 2025.08.13 |
| 25.08.11 학습개발일지 / QT6 Chapter26, 28 (3) | 2025.08.13 |