概要:
家にあったRaspberry pi2 (ラズパイ2、以下ラズパイ)を使って何かできないかと調べていたところ、ローカル環境で使える配信カメラというものがあったので、やってみました。
とりあえずwebカメラとラズパイを繋いでストリーミング配信ができるようにしてみました。
必要なもの:
- USB接続のwebカメラ
- ラズパイ(raspberry pi2)
- マイクロusbケーブル (電源供給用)
- SDカード (OS、システムドライブ用)
- HDMIケーブル (OSインストール用)
- lanケーブル (ストリーミング配信用)
- *wifiアダプタ (ssh接続用 ← **配信に使うと途中で止まってしまうため)
*wifiアダプタはlanケーブルがあれば特に必要ありません
**通信速度が関係しているのかもしれませんので興味があれば高速wifiアダプタでお試しを
ストリーミング配信までの手順:
- ラズパイにOSをインストール (今回OSはraspbian)
- OSを立ち上げてsshが使えるように設定します。
- webサーバソフトのインストール (今回はApache)
- ftpサーバソフトのインストール
- ストリーミング配信ソフトのインストール (今回はmotion)
- ストリーミング配信ソフトの起動
OSをラズパイにインストールするためには、まずOSイメージをダウンロードして、SDカードに書き込む必要があります。
次に書き込みが終わったSDカードをラズパイに入れて起動します。
初期設定(セキュリティなど)が終えたらsshを使えるようにして、PCから接続します。
PCからラズパイにssh接続したら、webサーバソフト(Apache)、ftpサーバソフト(vsftpd)を順番にインストールします。(特に設定はしませんが起動しているかチェックします)
ストリーミング配信が可能なソフトとしてはlinux用のmotionというものがあり、これもインストールして使います。
設定のやり方、詳細につきましては以下のリンクをご参考ください。
Raspberry Pi 初回設定(購入 + OSインストール + セキュリティ設定)
ストリーミング配信を実行した結果:
今回はwebカメラにELECOM ucam-dla200hbkを使いました。
ELECOM ucam-dla200hbkの仕様:
- 最大解像度: 1600 ☓ 1200 px
- 最大フレームレート:MJPEG形式 25fps (〜 640 ☓ 480 px), 15fps (〜 1280 ☓ 1024px), 10fps (1600 ☓ 1200px)
- 色数:1677万色(24bit)

映像の確認方法
- ラズパイのmotion設定を変更: $sudo vi /etc/motion/motion.conf の stream_localhost on → off にする。
- PCのwebブラウザにラズパイアドレス:8080を入力:192.168.xx.xx:8080
- 配信が確認されればOKです。

このmotionというソフトは、動態検知機能もあるので監視カメラのように使うこともできます。
そこで次にmotionを監視カメラ用に設定することにしました。
ラズパイを監視カメラ設定にする。
概要:
動態検知機能により動画映像が記録され、記録映像をブラウザで確認できるようラズパイのmotion設定を行う。
記録映像の保存先ディレクトリを作る:
$sudo mkdir /var/www/html/motion
設定ファイル(motion.conf)の変更:
コンソールから次のコマンドで編集画面へ
$ sudo vi /etc/motion/motion.conf
設定項目、変更値は次の通り
daemon off → on
norm 0 → 1
width 640 → 320
height 480 → 240
framerate 2 → 30
stream_localhost on → off
target_dir /var/www/html/motion (localhost/motionで記録映像の確認ができる)
threshold 10000
ffmpeg_output_movies on
ffmpeg_bps 500000
stream_maxrate 10
motion を自動起動させる設定:
$sudo vi /etc/default/motion (設定変更)
start_motion_daemon = yes
撮影された映像が定期的に削除されるように設定:
$sudo vi /etc/cron.d/motion_clean (スクリプトファイル作成)
0 0 * * * find /var/www/html/motion -mtime +1 -delete (毎日0時00分に2日前まで削除)
$sudo chmod +x /etc/cron.d/motion_clean (実行権限付与)
motion 起動:
$sudo motion
motion 停止:
$sudo service motion stop
motion 再起動:
$sudo /etc/init.d/motion restart
とりあえずこれで様子をみます。
ラズパイカメラを常時起動させて、調整していく
外に向けてカメラを設置しました。対象が小さくなったので動作検知しきい値(threshold)を10000→150へ*設定変更
*設定変更はラズパイにssh接続して、$sudo vi /etc/motion/motion.confでします。
問題なさそうなので、画面サイズを大きくしてみる。width320→640、height240→480。それに伴いthreshold150→500へ変更。
結果、映像の容量サイズが1件につき10MBほど上昇してしまった。SDカードの容量がそれほど大きくないので画面サイズを元に戻す。width320、height240、threshold150、これでしばらく様子を見る。

大きくても2〜3MBに収まるようになりました。これで1分程度の映像になります。
次に、映像が少々荒いように感じたので画質を良くする設定
ffmpeg_bps 500000 → 800000 (後日、この設定はカメラの性能によることが判明したので500000に戻しました)
これで一日の記録映像がおよそ100MBぐらいになる。しばらく様子を見る。
今後の予定:
- ラズパイから配信される映像が外から見られるようにする。レンタルサーバに上げてみる?その他方法を調べる。
- ブラウザから記録映像が見られるようにする。削除できるようにする。
- ユーザーIDとパスワードを設定する。
“ラズパイを使った配信カメラ” への1件のコメント
参考になりました。