ドライブレコーダーとして録画するに際して、以下の情報が埋め込まれている(表示されている)ほうがよいではと考えました。
・録画年月日、時間
・録画した場所(GPS情報)
前途の「raspivid」コマンドでも文字を動画に埋め込めるのですが、
「raspividコマンドを実行した時点での文字」となってしまうため、
録画されている時点の時刻ではなかったりします。
さらには、GPS情報も移動すれば常に変わっていくため、
実行した時点での情報ではあまり意味がありません。
ということで、今回はpythonコードにて録画します。
出力される動画フォーマットはh264形式のため取り回しが悪い(動画再生ソフトで速雄売りができなかったりします)ので、不本意ではあるのですが、
Rapsberry Pi Zero での処理速度を考えて、まぁ、良しとします。
ソースコードは以下。
60秒ごとに、開始年月日時間をファイル名とした「.h264」ファイルに録画動画を保存します。
解像度は「1280 × 720」。フレームレートはちょっと高めの24fps。
動画の上部に年月日時間を標準フォーマットした状態、白字で表示します。
さらには接続したディスプレイに録画状態をプレビューします。
接続しているディスプレイがHDMIではなくGPIO接続のようなものの場合は、かなりコマ落ちして表示されます。
録画された動画はコマ落ちしていないようですので、OKとします。
import picamera import datetime as dt with picamera.PiCamera() as camera: # 録画基本設定 camera.resolution = (1280, 720) camera.framerate = 24 camera.start_preview() while (True): start = dt.datetime.now() # ファイル名 recStart = start.strftime('%Y%m%d_%H%M%S') camera.start_recording(recStart + '.h264') # 指定時間毎に録画ファイルを切り替える(単位は秒) while (dt.datetime.now() - start).seconds < 60: camera.annotate_text = str(dt.datetime.now()) camera.wait_recording(0) camera.stop_recording()