Raspberry Pi ドライブレコーダーの作成⑥ ともあれZeroで

諸問題は山積しているものの、まずは録画してみましょう。

 

1.以下のスクリプトを保存する

  以下のシェルスクリプトを保存します。

  仕様としては、

  ・USBメモリをマウントしてみる(2本刺さっていたら~とか、細かいことは気にしない)

  ・1分ごとの動画として録画、USBメモリに年月日日時ファイルとして保存

  ・フレームレートは15fps(たぶん、コマ落ちはしないかな)

  です。

  Lite版のOSを使用していない限り、外部ライブラリなど(ffmpeg)を追加インストールする必要は無いようです。スバラシイ。

  カメラから動画を取得する方法としては、「raspivid」コマンドが最速のようです。個人的にはPythonスクリプトを組んで~としたかったのですが、コマ落ちが嫌なので最速と言われる「raspivid」コマンドの内容を「ffmpeg」にパイプ、60秒ごとの動画ファイルに区切って保存としました。

 

#!/bin/sh

# USBメモリをアンマウント、マウントする
sudo umount /mnt/usb1/
sudo mount /dev/sda1 /mnt/usb1/


# 録画していく(raspvidで取得した動画をffmpegにパイプ、60秒で区切って年月日ファイル名でUSBメモリに保存)
sudo raspivid -o - -t 0 -fps 15 -w 800 -h 600 |
 ffmpeg \
  -r 15 \
  -i - \
  -vcodec copy \
  -f segment \
  -strftime 1 \
  -segment_time 60 \
  -segment_format_options movflags=+faststart \
  -segment_format mp4 \
  -reset_timestamps 1 \
  /mnt/usb1/capturedVideos/%Y-%m-%d_%H-%M-%S.mp4

この内容でどこかに保存します(何も考えないのであれば、「/home/pi/」かな)

2.起動時処理として登録
  作成したシェルスクリプトが起動したら実行されるように登録しておきます。
  起動時に実行する処理を登録する方法は多々あるようですが、以下の方法にて確認しました。
 /etc/rc.local
  に下記を追記します。(「exit 0」より上に書く!)
  「sleep~」は、内部の時計が毎回狂う(リセット?)ために、録画開始時間をちょっとずらそうという悪あがきです。上記シェルスクリプトを「/home/pi/」に「captureD.sh」として保存した場合です。

sleep $((RANDOM % 10))
sudo sh /home/pi/captureD.sh &