ラズパイを使った配信カメラ


概要:

家にあったRaspberry pi2 (ラズパイ2、以下ラズパイ)を使って何かできないかと調べていたところ、ローカル環境で使える配信カメラというものがあったので、やってみました。

とりあえずwebカメラとラズパイを繋いでストリーミング配信ができるようにしてみました。

必要なもの:

  • USB接続のwebカメラ
  • ラズパイ(raspberry pi2)
  • マイクロusbケーブル (電源供給用)
  • SDカード (OS、システムドライブ用)
  • HDMIケーブル (OSインストール用)
  • lanケーブル (ストリーミング配信用)
  • *wifiアダプタ (ssh接続用 ← **配信に使うと途中で止まってしまうため)

*wifiアダプタはlanケーブルがあれば特に必要ありません

**通信速度が関係しているのかもしれませんので興味があれば高速wifiアダプタでお試しを

ストリーミング配信までの手順:

  1. ラズパイにOSをインストール (今回OSはraspbian)
  2. OSを立ち上げてsshが使えるように設定します。
  3. webサーバソフトのインストール (今回はApache)
  4. ftpサーバソフトのインストール
  5. ストリーミング配信ソフトのインストール (今回はmotion)
  6. ストリーミング配信ソフトの起動

OSをラズパイにインストールするためには、まずOSイメージをダウンロードして、SDカードに書き込む必要があります。

次に書き込みが終わったSDカードをラズパイに入れて起動します。

初期設定(セキュリティなど)が終えたらsshを使えるようにして、PCから接続します。

PCからラズパイにssh接続したら、webサーバソフト(Apache)、ftpサーバソフト(vsftpd)を順番にインストールします。(特に設定はしませんが起動しているかチェックします)

ストリーミング配信が可能なソフトとしてはlinux用のmotionというものがあり、これもインストールして使います。

設定のやり方、詳細につきましては以下のリンクをご参考ください。

ubuntuでラズパイosをSDカードに書き込む

Raspberry Pi 初回設定(購入 + OSインストール + セキュリティ設定)

ラズパイで動体検知対応の監視カメラを作る (3/3)

ストリーミング配信を実行した結果:

今回はwebカメラにELECOM ucam-dla200hbkを使いました。

ELECOM ucam-dla200hbkの仕様:

  • 最大解像度: 1600 ☓ 1200 px
  • 最大フレームレート:MJPEG形式 25fps (〜 640 ☓ 480 px), 15fps (〜 1280 ☓ 1024px), 10fps (1600 ☓ 1200px)
  • 色数:1677万色(24bit)

映像の確認方法

  1. ラズパイのmotion設定を変更: $sudo vi /etc/motion/motion.conf の stream_localhost on → off にする。
  2. PCのwebブラウザにラズパイアドレス:8080を入力:192.168.xx.xx:8080
  3. 配信が確認されれば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件のコメント

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)