Home » 산딸기 가지고 놀기 » 라즈베리파이 활용 강좌 : USB캠을 이용한 웹 스트리밍

 

아래 강좌는 오로카( http://cafe.naver.com/openrt ) 카페 매니져님이자 네이버 라즈베리파이 카페 회원으로 활동 중 이신  표윤석 님께서 기고해 주신 포스팅 내용입니다.

사견 :  현재 세계적으로 많은 종류의 Pi를 활용한 webcam 테스트가 이루어 지고 있습니다.
그러나 대부분이 스트리밍 방식을 차용한데는 Pi의 H/W spec. 으로 직접 구동방식이 아닌 외부기기를 통해 Viewer 기능을 구현하는 것이 가장 최적의  연동기법이기 때문입니다.
해당 기고를 따라하시거나 직접 Pi 내에서 직접방식으로 Webcam 구현을 하시려는 분들께서는 참고 하시기 바랍니다.

 

라즈베리파이 활용 강좌

라즈베리파이 활용 강좌 : 01. USB캠을 이용한 웹 스트리밍

 

 1. 도전과제

: 라즈베리파이의 응용은 무궁무진하다. 그 응용에 필요한 여러 디바이스의 활용 방법에 대해 이번 라즈베리파이 활용 강좌 시리즈를 통해 알아보도록 하자. 오늘 다룰 도전 과제는 USB캠을 이용한 웹 스트리밍 이다. 라즈베리파이는 USB 포트를 두개 가지고 있기때문에 USB 관련 디바이스를 사용가능하다. 그 대표적인 예로 USB 캠을 들 수 있다. 또한, 라즈베리파이는 유선랜 혹은 USB 무선 아답터를 이용가능하여, USB 캠으로 촬영한 동영상을 웹에서 볼 수 있다. 자! 그럼 USB 캠을 이용하여 웹 스트리밍을 하는 방법에 대해 알아보자!

 

2. H/W 환경구축

: 라즈베리파이로 USB캠 웹 스트리밍을 하기 위해서는 라즈베리파이 본체 및 기본 악세서리 이외에 아래와 같은 하드웨어가 필요하다. 그리고, 아래의 하드웨어는 필자가 동작 확인한 주변기기 하드웨어이다. 이외에도 호환가능한 하드웨도 많으니 테스트해보기 바란다. (참고로, 필자는 라즈베리파이 모델B 버전2 512RAM 를 이용하고 있다.)
 
1. USB CAM (Microsoft LifeCam VX-3000)
: 필자는 10년전쯤에 구입한 Microsoft LifeCam VX-3000 을 이용하고 있다. 최신의 USB 캠도 문제 없어보이나, 리눅스 사용자라면 최신의 장비보다는 드라이브가 준비된 구모델을 선호한다. 결코, 돈이 없다는 것은 아니다 ㅎㅎ

vx3000

 

2. USB Hub (독립전원)
: 라즈베리파이는 하드웨어 설계상 최대 700mA의 전류를 사용하고 있으며, 각 USB 포트는 최대 140mA를 출력할 수있다. 즉, 140mA 이상의 디바이스를 라즈베리파이의 USB 포트에 접속시켜서는 안된다. USB 캠을 직접 라즈베리파이의 본체의 USB 포트에 접속시켜 테스트는 해본 결과, 정상적인 동작이 안되었다. 즉, 라즈베리파이에 140mA 이상의 전류를 사용하는 디바이스와 연결하기 위해서는 별도의 독립전원을 사용하는 USB 허브를 사용해야한다. 필자가 사용하는 USB 허브는 독립전원 공급이 가능한 제품으로 각 포트당 500mA 전류를 공급 가능한 제품을 선택하였다. (라즈베리파이의 사용전류의 내용은 http://elinux.org/RPi_Hardware 을 참고하세요.)

USB-HUB225GSV_MA

3. 이더넷 연결
: 웹 스트리밍을 해야하니, 라즈베리파이의 유선랜 및 USB 무선랜 아답터를 이용하여 인터넷에 연결해주도록 하자.

 

3. S/W 환경구축

: 필자는 소프트웨어적으로 라즈베리파이의 공식 OS라고도 할 수 있는 데비안 리눅스계열의 Raspbian “wheezy”의 “2013-02-09-wheezy”버전을 사용하고 있다. Raspbian “wheezy” 설치방법은 이전 강좌 “05. Raspberry Pi 퀵스타트 (OS 설치 및 테스트 구동)”을 참고하기 바란다.
그리고, 라즈베리파이 OS의 의존패키지 등이 변경 및 업데이트 되었을 가능성도 있기때문에 본강좌를 시작하기 전에 기본적인 업데이트를 실행해주자. 명령어는 아래와 같이 두 개로 구성되어 있으며 터미널창에서 실행하도록 하자.

 

1. 공식 지원 웹서버에서 설치된 OS의 최신 패키지 업데이트 등의 정보를 받아 내부의 패키지 리스트를 업데이트한다.
sudo apt-get update
2. 현재 설치되어 있는 패키지가 업데이트 된 경우 모두 새버전으로 업그레이드 한다.
sudo apt-get upgrade

그 다음으로는 본격적으로 USB 캠을 사용하기위한 소프트웨어 환경구축이다.

 

3. 우선, lsusb 를 통해 USB 캠이 제대로 연결되었는지 확인해보자.

lsusb

lsusb

사용자마다 다른 결과가 나오겠지만, 필자의 경우에는 마지막 줄에 Bus 001 Device 015: ID 045e:00f5 Microsoft Corp. LifeCam VX-300 이라는 결과가 나왔다. 라즈베리파이와 제대로 연결되었다는 것이 확인 할 수 있다.

 

4. 이번 강좌에서 사용할 motion 패키지를 설치하자.

: motion 패키지는 이름에서 알 수 있듯이 비디오 결과물의 영상에서 모션의 움직임을 포착하여 이벤트를 발생시켜주는 프로그램 유명하다. 특화된 기능이외에도 기본적으로 USB 이미지 촬영, 전송, 웹스트리밍 등이 가능하다.

sudo apt-get install motion

 

5. motion 패키지 설정

: 웹 스트리밍 기능을 사용할 수 있도록 /etc/motion/motion.conf 의 설정 파일을 수정하도록 하자.

sudo nano /etc/motion/motion.conf

1) daemon = off 에서 on 으로 설정

: daemon 옵션을 프로그램을 백그라운드에서 별도로 돌리기 위한 옵션 설정이다.

2) webcam_localhost = on 에서 off 으로 설정
: 웹캠을 로칼에서만 사용할지를 설정하는 것으로 우리는 다른 컴퓨터 및 장비로부터 접속할 예정이기에 Off로 설정하도록 하자.

위 두 옵션은 웹 스트리밍을 위한 최소한의 조건이고, 그 이외에 웹캠의 이미지의 넓이, 높이, 프레임레이트 설정, 웹캠 포트 설정 등이 있다. 또한, 필자가 언급한 설정 이외에도 많은 설정을 포함하고 있으니, /etc/motion/motion.conf 의 부가 설명을 읽어보고 자신이 원하는 설정으로 바꿔도 된다.

width 320
height 240
framerate 2
webcam_port 8081

 

6. motion 패키지 디폴트 설정 변경

: 백그라운드에서 동작하도록 설정한 daemon 설정과 관련하여 한가지 더 설정하도록 하자.
sudo nano /etc/default/motion 에서 아래 내용을 yes 로 변경하자!

start_motion_daemon = no

 

7. motion 패키지 구동

sudo service motion start

이것으로 이제! 웹 스트림을 확인해볼 수 있다.

 

4. 실전!

: 이제는 웹 브라우저에서 라즈베리파이의 IP 로 USB 캠의 스트림 데이타를 확인해 볼 수 있다.

예를들어, 자신의 라즈베리파이의 IP가 192.168.4.151 이라면 뒤에 포트번호 8081을 붙여주는 식이다. 즉, 192.168.4.151:8081 이라고 웹브라우저에 입력하면 된다. 컴퓨터 뿐만 아니라 내부 네트워크를 이용하는 장비라면 어디서든지 확인 가능하다. 필자는 데스크탑 PC 와 태블릿에서 확인해 보았다.

(자신의 라즈베리파이의 아이피를 모르는 경우에는 터미널창에서 ifconfig 를 하여 확인하세요.)

CaptureWeb
picar3

이걸로 본 강좌를 마친다. 지금은 단순히 USB 캠의 스트림을 웹으로 확인해보는 작업을 하였지만 이를 응용하면 IPCAM (글로벌 고정 IP 필요), 영상처리, 스마트홈, 로봇 제어 등이 가능할 것이다. 더욱 심화된 응용방법에 대해서는 다음 기회에 또 강좌를 작성하기로 한다.

 

참고자료

[1] “라즈베리파이 공식 사이트”, http://www.raspberrypi.org/
[2] “라즈베리파이 위키미디어 설명”, http://en.wikipedia.org/wiki/Raspberry_Pi
[3] “Embedded Linux Wiki”, http://elinux.org/
[4] “공식 판매점 Element14”, http://downloads.element14.com/raspberryPi1.html?COM=raspi-group
[5] “공식 판매점 RS Componts”, http://uk.rs-online.com/web/generalDisplay.html?id=raspberrypi
[6] “한국 공식 판매점 ICBanQ”, http://www.icbanq.com/
[7] “bcm2835”, http://www.open.com.au/mikem/bcm2835/
[8] “RPi Hardware”, http://elinux.org/RPi_Hardware
[9] “RaspberryPi Blog”, http://raspberry-blog.com/general/installing-webcam-on-raspberry-pi/
[10] “How To: Raspberry PI Web Cam Server”, http://pingbin.com/2012/12/raspberry-pi-web-cam-server-motion/

End.

산딸기마을 포스트 검색

공동제작 공동프로젝트 무상후원 기관

산딸기마을 기부하기

산딸기마을 방문자 현황

Flags Countries Visits Page views
South Korea 626063 1845660
United States 10882 26091
Japan 5011 13204
Germany 2755 5151
India 1897 2902
Canada 1729 4640
United Kingdom 1596 2642
Australia 1240 2901
Russia 1219 1677
China 1077 2239
Total Pageviews: 1936700