웹캠이 노는게 있어서 2개를 연결해서 테스트 해봤다.

모델은
Samsung Electro-Mechanics Co. MPC-C30 AnyCam Premium for Notebooks [pwc]
OmniVision Technologies, Inc. OV511+ Webcam
Z-Star Microelectronics Corp. ZC0301 Webcam

현재 쓰고 있는 모델은 마지막 ZC0301
모듈은 gspca_zc3xx 를 올려서 사용한다.(자동으로 모듈이 올라온다)
OV511 은 gspca_ov519 를 사용한다.
MPC-C30 은 pwc 라는 것을 사용하는데, 드라이버가 잘 안 맞는지 작동하지 않는다.

OV511 은 Cheese 로 연결해서 보면 잘 나온다.
그런데, motion 쪽에 연결하면 motion 이 segfault 를 내뱉으며 죽는다.


그래서 최근에 구매한 놈을 연결하기로 했다.
연결하니  Sirius USB2.0 Camera 라는 놈인것 같다.
이것은 UVC 연결을 지원한다.  드라이버도 uvcvideo 모듈이 올라온다.
치즈도 잘되고 motion 에서도 잘 연결되어 작동한다.

카메라 두개를 motion 에서 사용하려면
/etc/motion/motion.conf 에서 마지막 부분의 주석처리를 빼주고 적당한 경로로 바꿔준다
thread /etc/motion/thread1.conf
thread /etc/motion/thread2.conf
이런 부분이 있다. thread1 이 첫번째 카메라, thread2 는 두번째 카메라 의 설정이 된다.
threadN.conf 파일을 주석빼고 보면
cat thread1.conf | grep -v '#'
이런 내용이다.
videodevice /dev/video0
input 8
text_left CAMERA 1
target_dir /tmp/motion1
webcam_port 8081

;on_picture_save /usr/local/motion-extras/camparse1.pl
;on_movie_end /usr/local/motion-extras/mpegparse1.pl
카메라가 인식되면  /dev/video0 , video1 으로 장치드라이버가 생기게 된다.
각 thread1,2 에 각각 장치드라이버를 적어주다.
input 8 은 기본 usb 카메라일때를 말하는 듯(주석설명에 그렇게.)
target_dir 은 움직임이 포착되면 이미지로 저장이 되는데 그 저장위치를 지정한다.
webcam_port 는 웹브라우저로 카메라 영상을 볼 수 있는 포트를 지정한다.
카메라별로 다르게 포트를 지정해준다.

on_picture_save , on_movie_end  부분은 추후 카메라영상 원격 저장하기에서 다룰 예정이다.

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,
오래된 윈도우용 웹캠이 있다. 윈도우XP 까지만 지원된다.(3개정도 있던가.)
더군다나 제조회사는 이미 망해버린 상태이다.(웹캠 회사는 온전한 곳이 별로 없다)
대기업표 웹캠도 오래된 것들은 윈XP 이상의 드라이버는 제공하지 않는다.
윈도우 비스타, 윈도우7 을 사용하고 있는 상황에서 쓸모없는 물건이 되버렸다.
아직 윈XP 가 많이 쓰이지만, 왠지 시한부 인생을 사는 것 같이 씁쓸하다.

혹시나 하는 마음에 리눅스(우분투)에 연결했다.
3개중 2개는 그냥 인식되네, 나머지 하나도 테스트해봐야 겠다.
치즈(cheese)를 실행시켜보니 잘 되는구나.

웹캠 감시 시스템을 적용해 볼까?
몇가지 찾아보니, motion 과 zoneminder 라는 것이 있다.

우선 zoneminder 를 해보기로 한다.
참조 : http://www.linuxscrew.com/2007/11/05/howto-home-video-security-with-zoneminder-and-ubuntu/


설치하기
설치는 우분투 패키지를 제공하기 때문에 쉽다.
apt-get install zoneminder apache2 php5-mysql libapache2-mod-php5 mysql-server ffmpeg
카메라 영상을 웹에서 보기위해 apache2 가 필요하다.
mysql-server 는  zoneminder 의 설정등을 저장하기 위해 mysql 을 사용하기 때문에 필요하다.
웹기반으로 카메라 영상 감시를 하기위한 어플이 php 로 제작되어 있다.(php5, mod-php5 필요)
ffmpeg 는 카메라 영상을 동영상으로 저장하기 위해 필요한 패키지 이다.

http://localhost/zm 으로 접속하기 위해 apache 설정을 한다.
ln -s /etc/zm/apache.conf /etc/apache2/conf.d/zoneminder.conf
아파치를 재시작한다.


옵셥설정하기
http://localhost/zm   으로 접속해서 기본 옵션을 설정한다.(오른쪽 윗 부분에 있다.)
옵션중에 다른 부분은 바꿀 것은 없고. image 부분에서
두번째 항목  ZM_STREAM_METHOD  를  mpeg 에서  jpeg 로 바꾼다.(save 를 꼭 해준다)

그리고 zoneminder 를 재시작해준다.
/etc/init.d/zoneminder restart
여기까지 한후, 감시설정을 해준다.(웹캠이 여러개가 있다면, 여러개의 감시설정을 할 수 있다.)

감시설정하기
"Add New Monitor" 를 눌러 설정을 한다.

아무 이름이나 쓰고, Local 로 해준다. Function 은  원하는 것으로 선택한다.
잘못 이해했는지 모르겠지만, Modect 로 설정하면 Event 가 발생할 듯 싶은데, 잘 안된다.
그래서 Mocord 를 하니 제대로 Event 를 잡아내는 듯 하다.(Record 를 해야 하나?)
그리고 저장한다.

소스(Source) 부분에서  웹캠 디바이스를 지정한다.(보통 /dev/video0)
여러개 있다면,  video1 , video2  등의 디바이스가 생겼을 것이다.
capture width , height 는 320x240 이 적당할 듯 하다.
640x480 등은  커널 공유메모리를 늘려줘야 하나보다.(shmall , shmmax 관련)

감시화면보기
모니터 설정후에  설정한 이름을 클릭하면

다음처럼 웹캠 화면이 나온다.(지금은 어두워서, 밝은 것은 프라이버시 문제로...)

이벤트도 기록되는 것을 볼 수 있다.(어떤 상황에 이벤트가 생성되는지 정확한 기준은 아직 모르겠다)

주의사항 : /var/cache/zoneminder 에 영상이 저장된다. 충분한 공간을 확보해야 한다.


영상이 잘 안보인다면
감시화면을 띄웠을때 카메라 영상이 제대로 나오지 않는다면,
/var/log/messages 를 확인해본다.  퍼미션 에러가 나온다면.
아래처럼 권한을 조정해 본다.(zoneminder 재시작)
chmod 4755 /usr/bin/zmfix
그래도 안된다면, 아래처럼 video0 의 other 권한을 rwx 로 바꿔준다. (또는 666 ,777 )
chmod o+rwx /dev/video0


ps. 테스트에 사용된 웹캠이  Z-Star Microelectronics Corp. ZC0301 WebCam 이다.(lsusb)
저게  LED 조명이 있는데 꺼져있다. 켜는 방법을 아직 못찾겠다.(없나?)
그러고보니 윈도우에서도 조절을 못했던 것 같다.

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,