Raspberry Pi ドライブレコーダーの作成⑧ 少しだけ、方向転換

ドライブレコーダーとして録画するに際して、以下の情報が埋め込まれている(表示されている)ほうがよいではと考えました。

・録画年月日、時間

・録画した場所(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()