파이카메라를 이용한 MMAL MOTION – MJPEG 스트리밍
라즈베리 파이의 공식 카메라 모듈(?)인 파이 카메라(PiCamera)를 이용해서 CCTV를 만드는 방법입니다. CCTV라고 하기엔 좀 거창한 감이 있긴 한데, 기본은 JPG 이미지를 연속으로 스트리밍해서 웹캠처럼 보여지도록 하는 것입니다. MJPEG 라고 합니다.
먼저 전원을 끄고, 카메라를 라즈베리 파이에 연결합니다. 연결 방법은 아래 페이지에 자세히 나와 있습니다.
http://www.raspberrypi-spy.co.uk/2013/05/installing-the-raspberry-pi-camera-module/
파이 카메라는 간단한 설정만으로 사용이 가능합니다. 라즈베리 파이 설정을 실행합니다.
- sudo raspi-config
Enable Camera 항목을 선택하고 Enable 선택해서 활성화 해주세요.
이 과정은 재부팅이 필요합니다.
카메라를 테스트 해봅니다. 먼저 preview 이미지를 가져오기.
- raspistill -v -o
Raspistill 을 이용해서 사진을 찍습니다.
- raspistill -v -o xxx.jpg
Raspivid 를 이용하면 녹화가 가능합니다. 녹화 기본 설정이 1080p (1920×1080) 입니다. 5초간 비디오를 녹화해 봅니다.
- raspivid -t 5000 -o xxx.h264
이제 Motion-MMAL 을 이용해서 스트리밍을 할 수 있도록 설정해 보겠습니다.
JPG 이미지 파일을 연속적으로 전송하는 형태로 동작하는 것이 MJPEG 입니다. 이걸 지원해주는 스트리밍 어플리케이션이 motion 입니다. 그런데 원래 motion 어플은 USB 웹캠 같은 모듈용으로 설계된 것 같습니다. PiCamera 를 Motion과 연동하기 위해서는 설치과정이 조금 다릅니다. Motion-MMAL을 설치해야 합니다.
아래 명령으로 motion 을 설치합니다.
- sudo apt-get install motion
설치가 끝나면 아래 명령으로 motion 패키지를 삭제합니다.
- sudo apt-get remove motion
설치하자마자 다시 지워버리다니… 뭔가 삽질 같지만 motion을 설치하면서 외부 모듈/패키지와 관련된(dependency) 설정이 만들어집니다. motion 패키지를 지워도 이 설정들이 남아있기 때문에 이렇게 사용합니다. 일반적인 Motion 패키지가 삭제되었으므로 대신 MMAL 용 motion 파일을 다시 설치하면 됩니다.
Motion-MMAL을 설치하기 위한 가장 간단한 방법은 미리 컴파일된 버전을 가져와서 사용하는 것입니다. 먼저 적당한 폴더로 이동해서 아래 작업을 실행합니다.
압축을 풀고
- tar zxvf motion-mmal.tar.gz
설정 파일을 수정해 줍니다.
- sudo nano motion-mmalcam.conf
아래처럼 화면이 나오면 필요한 부분들을 수정합니다.
데몬 설정
- daemon on
이미지 회전 설정 (기울어져서 보이는 경우 수평을 맞추는 작업, 0-90-180-270 중 선택)
- rotate 0
Image resolution 640×480 (이미지 해상도가 높으면 끊김, 시스템 불안정의 원인이 될 수 있음)
- width 640
이미지 캡쳐 (동작이 감지되면 이미지를 저장)
- output_pictures off
비디오 포맷으로 저장
- ffmpeg_output_movies off
모든 네트웍에서 접근이 가능하도록 설정
- stream_localhost off
Ctrl-X –> Y 를 눌러서 저장합니다.
아래와 같이 Motion 실행합니다.
- sudo ./motion -c motion-mmalcam.conf
브라우저에서 라즈베리 파이 IP, 8081 포트로 접속하면 스트리밍 영상을 보실 수 있습니다. 단, 크롬과 IE에서는 안보이네요.
PC 브라우저가 지원하지 않는다면 아래 링크에서 전용 프로그램을 받아서 보세요.
http://www.softpedia.com/get/Internet/Other-Internet-Related/Motion-JPEG-Player.shtml
Motion을 데몬(백그라운드 서비스)로 실행하고 싶으시면 아래처럼 해보세요.
- sudo cp motion /usr/bin/
- sudo cp motion-mmalcam.conf /etc/motion/
- sudo nano /etc/default/motion
데몬 설정을 yes 로 수정 - sudo service motion start
- sudo service motion stop
(데몬 상태에서의 사용법은 추후 업데이트 예정)
주의!!! Motion-MMAL 을 실행할 때 libjpeg.so 9 is missing 과 유사한 에러가 발생한다면 해당 라이브러리 설치가 필요합니다. 아래 명령어를 실행해서 라이브러리 설치하고 다시 실행하면 됩니다.
- sudo apt-get install libjpeg62
일반 USB 웹캠을 사용한 Motion 사용 방법은 아래 링크를 참고하세요.
참고자료
- 파이카메라 활용하기 : 파이카메라 MOTION 적용하기
http://www.rasplay.org/?p=4910 - INSTALL MOTION-MMAL
http://embeddedday.com/projects/raspberry-pi/a-step-further/install-motion-mmal/