SPRING :: NOTE

[Raspberry Pi] V4L2 RTSP Server 설치 본문

Development Tools/Linux

[Raspberry Pi] V4L2 RTSP Server 설치

RAYZIE 2019. 7. 12. 15:52
반응형

프로젝트가 있어서 할 줄 모르는 라즈베리파이를 어쩔 수 없이 써봤다.

라즈베리의 RTSP 서버가 필요하여, 검색했더니 많이 사용하고있어서 그 내용을 정리할 겸 포스팅을 남긴다.

 

라즈베리파이 업데이트

pi@raspberrypi:~ $sudo apt-get update
pi@raspberrypi:~ $sudo apt-get upgrade #커널을 건드려 펌웨어가 망가질 수 있으니 주의!

완료 후, 필요한 유틸리티 설치

pi@raspberrypi:~ $sudo apt-get install v4l-utils
pi@raspberrypi:~ $sudo modprobe bcm2835-v4l2

bcm2835-v4l2를 사용하기 위해, 모듈 등록

pi@raspberrypi:~ $sudo nano /etc/modules

나노 에디터로 파일이 열리면, 다음을 추가

...
...
bcm2835-v4l2
...
...

RTSP Server 설치를 위한 git 설치

pi@raspberrypi:~ $sudo apt-get install git-core

RTSP Server 설치

pi@raspberrypi:~ $sudo git clone https://github.com/mpromonet/h264_v4l2_rtspserver.git

RTSP Server liblivemedia-dev 설치

pi@raspberrypi:~ $sudo apt-get install liblivemedia-dev libv4l-dev cmake libasound2-dev

RTSP Server(h264_v4l2_rtspserver) 설치 폴더로 이동

pi@raspberrypi:~ $cd h264_v4l2_rtspserver

RTSP Server(h264_v4l2_rtspserver) CMAKE & MAKE

pi@raspberrypi:~/h264_v4l2_rtspserver $sudo cmake . # 콤마 필수로 확인!!
pi@raspberrypi:~/h264_v4l2_rtspserver $sudo make

h264_v4l2_rtspserver 설치 완료

이로써 서버 설치가 완료되었다.

이제 스크립트를 실행하여 서버를 돌리기만 하면 된다.

pi@raspberrypi:~ $sudo ./h264_v4l2_rtspserver/v4l2rtspserver -F 25 -W 1280 -H 720 -P 8555 /dev/video0

v4l2 RTSP Server Run

RTSP 서버가 실행되면 위와 같이 접속 대기 상태가 된다.

이 상태에서 Server IP를 확인하고 다음팟 또는 VLC를 이용하여 영상 접속을 확인하면 된다.

RTSP 접속 주소는 다음과 같다.

rtsp://[your Pi IP Address]:8555/unicast/

RTSP 접속 확인 및 영상 스트리밍

위와 같이 성공적으로 RTSP Server에서 스트리밍 되고 있는 영상을 수신할 수 있다.

 

아래는 v4l2rtspserver 옵션값이다. 참고바람.

/v4l2rtspserver [-v[v]] [-Q queueSize] [-O file] \
		       [-I interface] [-P RTSP port] [-p RTSP/HTTP port] [-m multicast url] 
               [-u unicast url] [-M multicast addr] [-c] [-t timeout]
		       [-r] [-s] [-W width] [-H height] [-F fps] [device1] [device2]
	 -v       : verbose
	 -vv      : very verbose
	 -Q length: Number of frame queue  (default 10)
	 -O output: Copy captured frame to a file or a V4L2 device
	 
	 RTSP options :
	 -I addr  : RTSP interface (default autodetect)
	 -P port  : RTSP port (default 8554)
	 -p port  : RTSP over HTTP port (default 0)
	 -U user:password : RTSP user and password
	 -R realm  : use md5 password 'md5(<username>:<realm>:<password>')
	 -u url   : unicast url (default unicast)
	 -m url   : multicast url (default multicast)
	 -M addr  : multicast group:port (default is random_address:20000)
	 -c       : don't repeat config (default repeat config before IDR frame)
	 -t secs  : RTCP expiration timeout (default 65)
	 -S[secs] : HTTP segment duration (enable HLS & MPEG-DASH)
	 
	 V4L2 options :
	 -r       : V4L2 capture using read interface (default use memory mapped buffers)
	 -w       : V4L2 capture using write interface (default use memory mapped buffers)
             -B       : V4L2 capture using blocking mode (default use non-blocking mode)
	 -s       : V4L2 capture using live555 mainloop (default use a separated reading thread)
	 -f       : V4L2 capture using current capture format (-W,-H are ignored)
	 -fformat : V4L2 capture using format (-W,-H are used)
	 -W width : V4L2 capture width (default 640)
	 -H height: V4L2 capture height (default 480)
	 -F fps   : V4L2 capture framerate (default 25, 0 disable setting framerate)
	 -G <w>x<h>[x<f>] : V4L2 capture format (default 0x0x25)
	 
	 ALSA options :
	 -A freq    : ALSA capture frequency and channel (default 44100)
	 -C channels: ALSA capture channels (default 2)
	 -a fmt     : ALSA capture audio format (default S16_LE)
	 
	 device   : V4L2 capture device and/or ALSA device (default /dev/video0)
반응형
Comments