Raspberry PiでUSB Web CAMの動画を配信する ~v4l2rtspserver編~
今回はServerとしてv4l2rtspserverを用いる。
使用機材
- Raspberry Pi 2 Bodel B
- Logicool HD Web CAM C270
- 8GBのmicro SD Card
OS
- RASPBIAN STRETCH LITE (2017-11-29)
手順
既にRaspbianをSD CardにInstallしてあるものとする。
インストール方法については公式を参考
Raspberry Piを起動し、ログインしておく。(今回の作業では標準ユーザー Pi で作業している。)
Compileに必要なものをInstallしておく
sudo apt-get install raspberrypi-kernel-headers
sudo apt-get install v4l2loopback-dkms
sudo apt-get install v4l2loopback-utils
sudo apt-get install liblog4cpp5-dev libvpx-dev libx264-dev libjpeg-dev
sudo apt-get install liblivemedia-dev libv4l-dev
sudo apt-get install git make cmake gettext libtool autoconf
v4l2toolsをInstallする
cd ~
git clone https://github.com/mpromonet/v4l2tools.git
cd v4l2tools
make
sudo make install
v4l2rtspserverはlive555を使うとの事なのでこれもInstallしておく
cd ~
mkdir live555
cd live555
wget http://www.live555.com/liveMedia/public/live555-latest.tar.gz -O - | tar xvzf -
cd live
./genMakefiles linux
sudo make CPPFLAGS=-DALLOW_RTSP_SERVER_PORT_REUSE=1 install
v4l2rtspserver本体をInstallする
cd ~
git clone https://github.com/mpromonet/v4l2rtspserver.git
cd v4l2rtspserver
cmake . && make
sudo make install
v4l2rtspserverを実行する
sudo modprobe v4l2loopback video_nr=10
sudo v4l2compress_h264 /dev/video0 /dev/video10 &
sudo v4l2rtspserver /dev/video10 &
配信を見るには
RTSPに対応したPlayer(VLCなど)をInstallして、 rtsp://[RPiのIPaddress]:8554/ を開けば再生される。
雑記
- Systemdで自動化しようとしたところ/dev/video0と/dev/video10がダメになってしまい断念
- /dev/video10が仮想デバイスなので、変なタイミングでこけるとOSから見て変な状態になるのか、device busy状態でアクセスできなくなる
- psやfuserで見てもそれらしいものが見つからず。。。
- /dev/video0から入ってきた動画をv4l2compress_h264で変換している割には高速
- 遅延も5秒いかないくらい
- 思いのほか画質は良い
- OSがDebian 9 Stretchベースになっているので調べて見つかる資料と手順に若干差異がある
- 自動化周りで思いのほか手がかかりそうなので、RTSPは諦めてMotion JPEGへ