車載装置を作る その3
の続き。
ファイルサイズについて考える。
録画しっぱなしでいいのかを考える。
ロングドライブであれば、4時間つきっぱなしが想定される。
その際、4時間で1ファイルが良いのか、分割されているべきなのかを考え、分割しておくことにした。
とりあえず、定時( */10 = 毎 0,10,20,30,40,50分)に 5 秒止めて、録画を再度開始する。
動作の流れ
録画開始のタイミングが2つ有る。
電源ONのタイミング
定時 録画リスタート
実装
どっちも、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秒に修正した。