以前、ラズベリーパイを使って、撮影されているカメラ画像をラズパイはもちろん、他のデバイスからもリアルタイムで確認できる「ストリーミング配信」の方法をまとめました。
※カメラ画像のストリーミング配信についてはコチラ↓
今回は、ストリーミング配信だけではなく、その画像(動画)をラズパイのストレージ(SDカード)に保存する方法をまとめたいと思います。
動画の保存が可能になれば、リアルタイムで確認できなかった場面を後で確認する事が出来ます。
用途でいえば、防犯カメラ、ドライブレコーダー等に利用できますね。
ちなみに、「MJPG-streamer」というアプリを使用しての説明になりますので、前提として「MJPG-streamer」が利用できる状態が必須です。
冒頭の過去記事のリンクを参照して頂くと分かりやすいと思います。
目次
必要環境
ハードウェア
ラズベリーパイ3B+、カメラモジュール (Raspberry pi camera V2)を使用します。
新たにアプリをダウンロードするため、インターネット接続環境が必要です。
※ラズパイは3B+で試しましたが、ラズパイゼロ~4まで恐らく対応しているかと思います。
ソフトウェア
OSからMJPG-streamerのアプリなど、前途した過去記事にてまとめているソフトウェアが使える事が前提になります。
過去記事でまとめているのでMJPG-streamerのインストールは割愛します。
動画保存アプリ
ffmpeg
MJPG-streamerを使用し、WEBサーバにカメラ画像を表示させる事ができていれば、この「ffmpeg」アプリをインストールするだけで動画の保存が可能になります。
ffmpegは、動画を保存するだけではなく、コーデックの変換も同時に行ってくれます。
まずはこのffmpegのアプリをダウンロード、インストールします。
1 |
$sudo apt-get -y install ffmpeg |
あとは次の手順に沿ってシェルにコードを入れていきます。
動画保存手順
MJPG-streamerの立ち上げ
下記コードを入力し、MJPG-streamerを起動させます。
まずアプリフォルダ選択。
1 |
$cd mjpg-streamer/mjpg-streamer-experimental |
次いで解像度の設定。
1 |
$./mjpg_streamer -o "./output_http.so -w ./www" -i "./input_raspicam.so -x 640 -y 480 -fps 30 -q 10" |
これが立ち上がると、ラズパイのWEBサーバーにカメラ画像が反映されます。
-x -y の値が解像度になるので、フルHDなら-x1920、-y1080 になります。
-fpsはフレームレートですね、これらを上げすぎると容量がバカでかくなるので注意が必要です。好みに合わせて調整しましょう。
映像の確認は、WEBブラウザのURL記入欄に「ラズパイのローカルIP:8080」もしくは「127.0.0.1:8080」で確認できます。ちなみに8080はWEBサーバーのポート番号になります。
動画の保存
最後に、今回インストールしたffmpegを起動させますが、先ほどカメラの解像度を指定したコードでシェルの画面が操作不能になっています。(新たにコードを記入することができない状態)
これを閉じてしまったらストリーミング配信が止まってしますので、開いたままにします。
シェルの上部に「タブの追加」があるので、そこをクリックすると、2ページ目のシェル入力画面が出てきますので、そこにffmpegのコードを入力します。
これはタブの追加でなくても、単にもう1つシェルを立ち上げてもOKです。
入力コードは次の通り。
1 |
ffmpeg -i http://127.0.0.1:8080/?action=stream -an -vcodec MPEG4 file.mp4 |
-vcodecの後の記述が変換後の動画コーデックになります。
末尾のfile.mp4はファイル名になるので、好みの名前に変更してもOKです。
これを入力すると、そのタイミングからストリーミング配信画像が動画として保存されます。
動画データはmjpg-streamer-experimentalフォルダの配下に生成されます。
保存を止めるには、シェル画面で「q」を押すと止まります。
ストリーミング配信は続いていますので、止めたければシェルを閉じればOKです。
一応今回の内容で保存したデータをアップしときます。
画質が悪いですが、その分容量は少ないですね。1分で2MB位かな。
ちなみにラズパイをベースに使ったロボットを過去に作ったんですけど、それにも応用できそうです。ロボット目線の動画が保存される。
※ラジコンロボは過去記事でまとめてますので是非どうぞ↓
「ラズパイのカメラ動画保存方法」MJPG-streamerから簡単に出来ます!まとめ
MICが無かったので音声が入ってませんが、意外と簡単に動画の保存が出来ました。用途としてはやはり防犯カメラとか、流行りのドライブレコーダーとかに使えそうです。
防犯カメラは家のネットワークに繋げれるでしょうから、遠隔操作も難なくできるでしょう。動画の保存が出来ればラズパイの使い方も幅が広がりますね。
今回、ストレージは16GBのSDカードにしましたが、USBにする事も可能です。
低画質であれば1時間で120MB位なんで、まあ余裕で数時間稼働できますが、高画質になれば話は別です。用途によってストレージは変えればいいと思います。
ストレージの変更や、ドライブレコーダー、音声入りの動画保存については後日また記事にしたいと思います。