라즈베리파이 카메라로 동영상 스트리밍(mjpg-streamer)

바둑이·2021년 10월 14일
2

라즈베리파이 카메라를 이용한 동영상 스트리밍에는 motion, G-streamer, mjpg-streamer 등 다양한 방법들이 있습니다. 저는 그중에 mjpg-streamer에 대해 정리하려고 합니다.

패키지 설치전 우선 패키지를 업데이트 및 업그레이드 해줍니다.

sudo apt-get update //패키지 업데이트
sudo apt-get upgrade //패키지 업그레이드

스트리밍 패키지를 깃허브에서 클론 해 와야하기 때문에 저장할 폴더를 만들어주고 이동한 뒤 패키지를 클론합니다.

mkdir ./mjpg //저장 폴더명은 원하는 이름으로 변경해도 상관 없습니다.
cd mjpg/
git clone https://github.com/jacksonliam/mjpg-streamer.git

다운이 완료 됐으면 받은 폴더의 mjpg-streamer/mjpg-streamer-experimental/로 이동합니다.

cd mjpg-streamer/
cd mjpg-streamer-experimental/

아래 명령어를 입력하여 컴파일 및 설치를 해줍니다.

sudo apt-get install cmake

이제 mjpg-streamer에 필요한 패키지를 설치하는데, 다른분들이 올리신 것을 참고를 했는데 될 때도 있고 안될 때도 있는 것 같습니다. 일단 아래의 명령을 입력해 줍니다.

sudo apt-get install python-imaging
//해당 부분에서 오류가 나도 결과적으로는 문제가 없었습니다.
sudo apt-get install libjpeg-dev

이제 컴파일 해줍니다.

make CMAKE_BUILD_TYPE=Debug

컴파일이 정상 완료되었으면
이제 mjpg-streamer를 설치합니다.

sudo make install

패키지 설치가 모두 끝나면 홈 디렉토리로 돌아와 쉘 편집기를 열어줍니다.

cd ~
sudo nano mjpg.sh

적혀있는 코드를 아래와 같이 수정합니다. 포트는 사용하지않는 8091를 사용했습니다.

fps 는 디폴트로 5가 설정되어있는데 너무 끊기기 때문에 변경해 보면서 본인의 제품에 맞도록 변경해 주세요 -vf옵션으로 상하 반전으로 맞췄습니다.

명령어 옵션은 아래 그림을 참고해주시면 됩니다.

이제 아래 명령어로 스트리밍을 실행해봅니다.

sh mjpg.sh

명령어를 입력하면 아래와 같은 화면이 뜨면서 스트리밍 서버가 실행중임을 알 수 있습니다.

이제 웹에서 ip주소:8091(아까 지정한 포트넘버)를 입력해보겠습니다. 아래화면이 떠야 정상적으로 작동 된 겁니다.

왼쪽 배너에서 stream을 클릭해주면 실시간 스트리밍 화면을 볼 수 있습니다.

저는 15fps로 맞춰놨는데 엄청 부드럽진 않습니다. 카메라 사양 차이도 있을 것 같습니다.

명령어 옵션은 아래 그림을 참고해주세여

스트리밍을 중단하고 싶으면 아까 스트리밍을 실행시켰던 cmd창에 ctrl+Z를 입력하면 됩니다.

바로 스트리밍을 동작 시키면 프로세스 간 충돌이 일어날 수 있어서 에러가 납니다.

그래서 cmd창에 ps명령어로 지금 돌아가고있는 프로세스 목록을 확인하고
mjpg-streamer 프로세스를 말고 sh 프로세스(1648번)를 종료해야합니다.

kill -9 1648

sh프로세스와 mjpg_streamer 프로세스가 같이 종료되었습니다.
이제 다시 쉘 명령어로 스트리밍을 시작할 수 있습니다.

참고로 아까 웹사이트에서 해당 화면 말고 바로 스트리밍 화면을 보고싶다면 웹 주소에 ip주소:포트넘버/?action=stream 꼴로 작성하면됩니다.

ex) 162.178.31.2:8091/?action=stream

엔터치면 바로 스트리밍 화면이 뜨는 걸 확인할 수 있습니다.

다시 ps -> kill 명령어로 프로세스를 종료하여 사용을 마칠수 있습니다.
이상입니다 감사합니다. (>.<)/

profile
안녕하세용('<')/

1개의 댓글

comment-user-thumbnail
2022년 10월 19일

ERROR: could not find input plugin
Perhaps you want to adjust the search path with:

export LD_LIBRARY_PATH=/path/to/plugin/folder

dlopen: input_raspicam.so: cannot open shared object file: No such file or directory
라는 에러가 뜹니다. 파일로 가서 확인했더니 input_raspicam.so파일이 빠져있더군요 다른건 다있는데 이파일만 어떻게 해결할수 없나요? 다운받는다던지...정보가 너무 없어요 ㅠㅜ 제발 도와주세요 ㅠㅜ

답글 달기