Home » 산딸기 가지고 놀기 » 라즈베리파이 파이카메라 활용강좌 : 웹 스트리밍(Mjpg-Stream)

라즈베리파이 파이카메라 활용강좌 : 웹 스트리밍(Mjpg-Stream)

Created Date: 2014.03.04
Modified Date: 2014.03.06
revision 0.8

안녕하세요. 나무꾼 입니다.

 

라즈베리파이 전용 카메라 인 파이캠(Pi-CAM)을 이용한 Mjpg-Stream 을 구현 강좌를 진행 하려 합니다.

우선 개인적으로 웹스트리밍 또는 기타 외부 기기에서 파이캠 을 이용한 웹스트리밍 서비스를 하기 위해선 Mjpg-Stream 이 가장 최적화 되어 있다고 판단을 하고 있다.

이러한 이유를 살펴 보도록 하자.

 

mjpg_1

[사진1] mjpg-streamer 구동 화면

 

1. 라즈베리파이(Raspberrypi) 환경

a.  초소형(신용카드 크기) 저사양(Armv6 : 700Mhz ~ 1000Mhz) 으로 낮은 램 메모리(512MB) 보유.

b. 소형화 및 저전력 설계에 기반한 제품으로 최대 750mA 를 사용이 가능함.

c. 고화질 FULL HD(1080p) 500만 화소 라즈베리파이 전용 카메라 출시
(적외선 촬영가능 제품 NoIR 권유,  전류 50mA 소모)

 

위 내용을 근간으로 두 가지로 Mjpg-Streamer 를 구동해 볼 예정이다.

첫 번째로는 라즈베리파이 전용 드라이브인 몰드라이브(MMAL Driver) 를 이용한 mjpg-stream 을 실행 해 보고,

 

2. Mjpg-Streamer 컴파일 하기

 

2.1.  mjpg-streamer 설치 준비

mjpg-stream 컴파일을 위해 아래 영상관련 라이브러리 및 cmake 패키지를 설치 해 주도록 한다.

pi@openmake ~ $ sudo apt-get install git cmake libjpeg8-dev imagemagick -y

mjpg_2

[사진2] mjpg-streamer 관련 라이브러리 다운로드  화면

 

2.2.  videodev2.h 헤더파일 링크

mjpg-streamer 를 컴파일 진행 시에는 요구하는 videodev.h 헤더파일을 변경된 videodev2.h 파일로 링크 하자.

pi@openmake ~ $ sudo ln -s /usr/include/linux/videodev2.h /usr/include/linux/videodev.h

 

2.3.  mjpg-streamer 다운로드  및 컴파일 하기

물런, mjpg-stream svn 서버 와 raspberrypi pi-cam 소스 공개 배포처를  통해 소스를 내려 받고 mmal driver 에 맞추어 일부 내용을 수정 하는 작업을 하여도 되겠으나,

아두이노도 마찬가지겠지만, 라즈베리파이의 경우 역시 이미 많은 개척 유저 및 오픈소스 프로젝트를 지향하는 유저들의 노력에 의해  편하게 사용 할 수 있도록 자신의 소스들을

git hub 또는 bitbucket 서버를 이용하여 공개 배포를 하고 있다.

이러한 프로젝트 서버에서 mjpg-streamer 에서 RaspiStill.c 파일을 수정한 유저 중 한 명인 git hub 서버를 통해 배포 중인 소스를 다운로드 받고 컴파일을 해 보자.

pi@openmake ~ $ git clone https://github.com/liamfraser/mjpg-streamer
pi@openmake ~ $  cd ~/mjpg-streamer/mjpg-streamer-experimental

mjpg_3

[사진3] mjpg-streamer 관련 디렉토리 이동  화면

 

pi@openmake ~/mjpg-streamer/mjpg-streamer-experimental/ $ make clean all

mjpg_4

[사진4] mjpg-streamer 관련 컴파일  화면 

 

2.4.  mjpg-streamer 자동 스크립트 작성 및 실행

앞의 과정들을 통해 mjpg-streamer 를 실행 할 수 있는 환경이 갖추어 졌으니, 마지막으로 파이 캠에서 mjpg-streamer 를 이용 할 수 있도록

자동 스크립트를 작성하고 명령어를 입력 해  웹 스트리밍을 구현 해 보자.

pi@openmake ~/mjpg-streamer/mjpg-streamer-experimental/ $ cd ~
pi@openmake ~ $ sudo nano mjpg.sh

export STREAMER_PATH=$HOME/mjpg-streamer/mjpg-streamer-experimental
export LD_LIBRARY_PATH=$STREAMER_PATH
$STREAMER_PATH/mjpg_streamer -i "input_raspicam.so -d 200" -o "output_http.so -w $STREAMER_PATH/www"

* 주의사항 : 위 내용 중에 워드프레스의 문제로 인해 따옴표(") 는 기존 내용을 삭제 후, 재작성을 해 주어야만 먹는 문제가 발행함.
pi@openmake ~ $ sh mjpg.sh

mjpg_5

[사진5] 터미널에서  mjpg-streamer 실행한 화면  

 

3.  mjpg-streamer 웹 스트리밍 영상확인

mjpg-streamer를 간단히 비유하자면 라즈베리파이 카메라를 통해 jpeg 파일로 생성된 이미지를 학창시절에 교과서 귀퉁이에 손으로 자그마하게 그림을 그리고 빠른 속도로 책장을 넘겨가면서

정지된 이미지를 파노라마처럼 스틸 샷으로 만들어 마치 영상물처럼 보던 원리와 같은 이치로 구현된다.

이러한 스틸 샷 영상은 ” http://라즈베리파이아이피 :8080/?action=stream ” 파일로 저장이 되어지는데 mjpg-streamer라는 툴을 통해 이러한 여러 장의 스틸샷을 웹으로 전송하여

사용자들이 영상처럼 느끼고 볼 수 있도록 도움을 주는 툴이라 이야기 할 수 있고, 웹 이외에도 VLC Player 와 같은 툴을 이용해 스트리밍 영상을 확인 할 수가 있다.

 

3.1. 웹에서 스트리밍 영상.

mjpg_6

[사진6] http://라즈베리파이아이피:8080 접속 후, 스트리밍 영상 확인 화면

 

3.2. VLC Player 네트워크 스트리밍 구동 영상.

mjpg_7

[사진7] vlc player 네트워크 스트리밍 을 이용 해, 스트리밍 영상을 확인하는 화면

 

[참고사이트]

http://sourceforge.net/apps/mediawiki/mjpg-streamer/index.php?title=Main_Page
o https://github.com/jacksonliam/mjpg-streamer
https://github.com/liamfraser/mjpg-streamer

산딸기마을 포스트 검색

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

산딸기마을 기부하기

산딸기마을 방문자 현황

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