Raspberry Pi 備忘録 / Mbedもあるよ!

Raspberry Pi であれこれやった事の記録

車載装置を作る その3

pongsuke.hatenablog.com

の続き。

ファイルサイズについて考える。

録画しっぱなしでいいのかを考える。

ロングドライブであれば、4時間つきっぱなしが想定される。

その際、4時間で1ファイルが良いのか、分割されているべきなのかを考え、分割しておくことにした。

とりあえず、定時( */10 = 毎 0,10,20,30,40,50分)に 5 秒止めて、録画を再度開始する。

動作の流れ

録画開始のタイミングが2つ有る。

  1. 電源ONのタイミング

  2. 定時 録画リスタート

実装

どっちも、crontab でやっちゃう。

起動

@reboot と、 */10 分 リスタート

動作テスト

0分で終了し、再起動する。

$ crontab -l
@reboot ./at_start.sh
*/10  *  *  *  * ./restart.sh
5-59/10  *  *  *  * ./convert.sh

各種スクリプト

AquesTalkPi は -g で音量を設定できる。

0-100 の範囲ということなのだが、100以上を設定すると、更に音が大きくなるので、使ってます。

録画開始スクリプト
$ cat record.sh 
#!/bin/bash

rec_milisec=`expr 60 \* 60 \* 1000 - 3000`
filename=`date +%Y%m%d%H%M`


function finish_recording(){
        /usr/local/etc/aquestalkpi/AquesTalkPi -g 200 -s 150 "録画が終了しました" | aplay -D plughw:0,0
}

trap 'finish_recording; exit 1' 1 2 3 15

/usr/local/etc/aquestalkpi/AquesTalkPi -g 200 -s 150 "録画を開始します" | aplay -D plughw:0,0

# 終了は、このプロセスを止める
/usr/bin/raspivid -w 640 -h 480 -fps 30 -t $rec_milisec -o ./video/$filename.h264 -a 4 -a "%Y-%m-%d %X" -p '460,220,320,240' -op 100 &

wait
finish_recording
起動スクリプト
$ cat at_start.sh 
#!/bin/bash

# ストレージ使用量を伝える
str1="ストレージ/使用量は"
str2=`df /usbmem/ | tail -1 | tr -s ' ' , | cut --delimiter , -f 5`
str3="です"

/usr/local/etc/aquestalkpi/AquesTalkPi -g 200 -s 150 $str1$str2$str3 | aplay -D plughw:0,0
sleep 1s

# 録画を開始する
./record.sh
コンバートスクリプト
$ cat convert.sh 
#!/bin/bash

/usr/local/etc/aquestalkpi/AquesTalkPi -g 200 -s 150 "変換を開始します" | aplay -D plughw:0,0
/usr/bin/find /usbmem/video/ -name "*.h264" -type f | xargs -I {} sh -c 'echo /usr/bin/MP4Box -fps 30 -add {} {} ; echo "/bin/rm {} "' | sed -e "s/h264$/mp4/" | sh
テスト結果

10秒は不要なので、5秒に修正した。