一日の良い時間!
大New日、私はある種のビデオ監視を構築することを考えていました。 必要なものはすべて手元にありました。
- Raspberry Pi Model Bシングルボードコンピューター
- LOGITECH HD Webcam C270 Webcam
記事を読んだ後、著者の考えを少し発展させることにしました。
私のアイデアと著者のアイデアの主な違いは、ビデオ録画という主要な機能を失うことなく、イベントをリアルタイムで表示できることです。
知人
ですから、まず最初に、メインの「コンポーネント」について理解してください。
Raspberry Piの外観:
特徴:- Broadcom BCM2835 700MHz ARM1176JZFSプロセッサとFPUおよびVideocore 4 GPU
- GPUは、Open GL ES 2.0、ハードウェアアクセラレーションOpenVG、および1080p30 H.264ハイプロファイルデコードを提供します
- GPUは、テクスチャフィルタリングとDMAインフラストラクチャを備えた1Gpixel / s、1.5Gtexel / sまたは24GFLOPに対応しています。
- 512MB RAM
- Linuxオペレーティングシステムのバージョンを実行しているSDカードからの起動
- 10/100 BaseTイーサネットソケット
- HDMIビデオ出力ソケット
- 2 x USB 2.0ソケット
- RCAコンポジットビデオ出力ソケット
- SDカードソケット
- microUSBソケットから給電
- 3.5mmオーディオ出力ジャック
- Raspberry Pi HDビデオカメラコネクタ
- サイズ:85.6 x 53.98 x 17mm "
pi@hall-pi ~ $ cat /proc/cpuinfo processor : 0 model name : ARMv6-compatible processor rev 7 (v6l) BogoMIPS : 2.00 Features : swp half thumb fastmult vfp edsp java tls CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xb76 CPU revision : 7 Hardware : BCM2708 Revision : 000e Serial : 000000005a82c372
公式にサポートされているディストリビューションのリストは
こちらにあります 。 グラフィカルシェルなしでRaspbianを選択しました。
インストールプロセスは非常に単純であり、詳細な説明は必要ありません。そのため、注意が必要な主な事実をリストします。
- タイムゾーン設定
- コンピューター名の設定
- SSHアクセスを有効にする
- システム更新
必要な設定をすべて完了したら、続行できます。
準備する
まず、必要なすべてのパッケージをインストールします。
sudo apt-get install imagemagick libav-tools libjpeg8-dev subversion
その後、mjpg-streamerをダウンロードしてコンパイルします。
sudo svn co https://svn.code.sf.net/p/mjpg-streamer/code/mjpg-streamer/ mjpg-streamer cd mjpg-streamer make
なぜなら すべてのデータがクラウドに保存され、WebDAVを介してリモートファイルシステムで作業を構成します。
sudo apt-get install davfs2 sudo mkdir /mnt/dav sudo mount -t davfs https://webdav.yandex.ru /mnt/dav -o uid=pi,gid=pi
ユーザー名とパスワードを毎回入力しないようにするには、それらをファイルに追加する必要があります
/ etc / davfs2 /シークレット
/mnt/dav user password
作業プロセス
/etc/rc.localにコマンドを追加してWebDAVをマウントし、スクリプトを実行してネットワークにブロードキャストします。
mount -t davfs https://webdav.yandex.ru /mnt/dav -o uid=pi,gid=pi cd /home/pi/mjpg-streamer && ./mjpg_streamer -i "./input_uvc.so" -o "./output_http.so -w ./www"
ここで、アドレスhttp://:8080にアクセスして、カメラにアクセスします。 ルーターのポートを転送するためだけに残り、ローカルネットワークの外部のカメラにアクセスできます。
タイムラプスビデオを作成する
まず、カメラから画像を取得する必要があります。 なぜなら 既に撮影されている場合(画像はWebサーバーによってブロードキャストされます)、Webサーバーから現在の画像を取得する機会を使用します。
curl http://localhost:8080/?action=snapshot > out.jpg
画像に画像の日付を描画したい場合は、convertコマンドを使用できます
timestamp=`stat -c %y out.jpg` convert out.jpg -fill black -fill white -pointsize 15 -draw "text 5,15 '${timestamp:0:19}'" out_.jpg
スクリプトのフルバージョン:
ビデオはavconvコマンドによって構築されます。
avconv -r 10 -i %06d.jpg -r 10 -vcodec mjpeg -qscale 1 out.avi
ビデオビルドスクリプトのフルバージョン:
Cronスケジューラーにスクリプトの実行を登録するだけです。
* * * * * pi bash /home/pi/cam.sh 59 23 * * * pi bash /home/pi/build.sh
ビデオサンプル
おわりに
このアプローチは、ビデオの視聴に多くの時間を費やす必要性を取り除くのに役立ち、最終製品のコストも削減します。 本格的なOSの存在のおかげで、機能を正しい方向に拡張することが可能になります。
PS残念ながら、ハブで「DIY or Do it your、Iron、Gadgets」で公開してください。 オタク向けのデバイスは「十分なカルマを持っていなかったので、利用可能な最も近いものを選択しました。