Raspberry PiでRaspberry Pi Camera V2の動画を配信する ~mjpg-streamer編~
今回はServerとしてmjpg-streamerを用いる。
使用機材
- Raspberry Pi 2 Model B
- Raspberry Pi Camera V2
- 8GBのmicro SD Card
OS
- RASPBIAN STRETCH LITE (2017-11-29)
手順
既にRaspbianをSD CardにInstallしてあるものとする。
インストール方法については公式を参考
Raspberry Piを起動し、ログインしておく。(今回の作業では標準ユーザー Pi で作業している。)
Raspberry PiにCamera V2を接続しておく。
接続方法についてはRS-Onlineの解説を参照
Raspberry Pi Camera V2を利用できるようにしておく
raspi-configコマンドで設定画面を呼び出し、必要な設定を行う。
sudo raspi-config
サーバーとして起動させるためAutologinを有効にしておく。
3 Boot Option
B1 Desktop/CLI
B2 Console Autologin
言語関係の設定を行う。
4 Localisation Options
I1 Change Locale
ja_JP.UTF-8 UTF-8 //ここでスペースキーを叩いて選択状態にする
OK
Default
ja_JP.UTF-8
I2 Change Timezone
Asia
Tokyo
I3 Change Keyboard Layout
[適当なのものを選ぶ]
Other
Japanese
Japanese
The Default for the Keyboard Layout
No Compose key
Camera, SSH, SD Cardを全容量使用する設定
5 Interfacing Options
P1 Camera
(to be enable ?)
YES
OK
P2 SSH
(to be enable ?)
YES
OK
7 Advanced Option
A1 Expand Filesystem
OK
設定が終わったら反映する
Finish
Would you like reboot now?
YES
Compileに必要なものをInstallしておく
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install git cmake libjpeg8-dev
mjpg-streamerをInstallする
cd ~
git clone https://github.com/jacksonliam/mjpg-streamer.git
cd mjpg-streamer/
cd mjpg-streamer-experimental
make
sudo make install
Web公開用のディレクトリを用意する
sudo cp -r www /var/www
mjpg_streamerを起動する
sudo mjpg_streamer -i "input_raspicam.so -x 1280 -y 720 -fps 15" -o "output_http.so -w /var/www -p 8080"
input_raspicam.soのReferenceによると 1080p(-x 1280 -y 720)をサポートしているが、妥協点としては720p(-x 640 -y 480) との事。テストした環境においては、1080pで15fpsの場合に1~2秒程度遅延する模様。
起動を自動化する
mjpg-streamerをSystemdの配下にし、電源投入時に自動的にmjpg-streamerを起動するようにする。
まず設定ファイルを作成する。
sudo nano /etc/systemd/system/mjpg-streamer.service
次に設定ファイルに以下の内容を書き込む。
[Unit]
Description=MJPG-Streamer
After=udev.target
After=network-online.target
[Service]
type=simple
ExecStart=/usr/local/bin/mjpg_streamer -i 'input_raspicam.so -x 1280 -y 720 -fps 15' -o 'output_http.so -w /var/www -p 8080'
[Install]
WantedBy=multi-user.target
最後に、systemdに登録を行う。
sudo systemctl enable mjpg-streamer.service