概要:
家にあったRaspberry pi2 (ラズパイ2、以下ラズパイ)を使って何かできないかと調べていたところ、「ローカル環境で使える配信カメラ」というものがあったので、やってみました。
とりあえずwebカメラとラズパイを繋いでライブストリーミング映像が見られるようにしてみました。
必要なもの:
- USB接続のwebカメラ
- ラズパイ(raspberry pi2)
- マイクロusbケーブル (電源供給用)
- SDカード (OS、システムドライブ用)
- HDMIケーブル (OSインストール用)
- lanケーブル (ストリーミング用)
- *wifiアダプタ (ssh用 ← ストリーミング配信に使うと途中で止まってしまう)
*wifiアダプタはlanケーブルがあれば特に必要ありません
ストリーミング配信までの手順:
- ラズパイにOSをインストール (今回はraspbian)
- 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
監視カメラを起動してmotionの設定を調整する:
外に向けてカメラを設置しました。対象が小さくなったので動作検知しきい値(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とパスワードを設定する。
2022年8月現在でこちらの投稿記事は新しい内容に置き換わっています。
こちらをご覧ください。
外出先から配信映像を確認する方法はこちらをご覧ください。