e-tipsmemo

ごった煮

ffmpegでドライブレコーダーの動画をつなげる

ドライブレコーダーに詳しいわけではないが、
おそらく1分ぐらいの動画ファイルがたくさん録画されるようなものが普通だという前提で、
それらをつなげるshellscriptのメモ。

ffmpeg

ffmpegのオプションにconcatというものがあり、
指定したテキストファイル内に列挙された動画を順番に繋げるというものを使えば非常に簡単だった。

ffmpegでMP4ファイルを結合する - Qiita

file 動画のファイル名

という行が、羅列されたもの。

ls *MP4 | sed -e "s/^/file /g" > mylist.txt

とすれば、
MP4という拡張子のファイルが、列挙されて、
sedでいっこずつ処理される。
ついでに先頭の文字を「file 」(fileとスペース)に置き換える。
最後にmylist.txtに書き出す。
こんな感じになる。


Qiitaにあるように続けて

ffmpeg -f concat -i mylist.txt -c copy output.mp4

これを行えば、元のファイルを消さずに、つながれた動画ファイルoutput.mp4が出力される。


連続した走行動画のみを1つの動画として保存したかった
(PAなどで止まったら次の走行からは別の動画にしたい)
一個ずつやるのも面倒なので、
gnu parallelとかで並列化できるのかためしたが、
ボトルネックがHDDのアクセスにあるので、いみなさそう。

ドライブレコーダートヨタ純正のもが最初からついていたが、720pだったので、
Full HDのドライブレコーダーの以下のものを増設した。

これを8時間録画するには128GBのmicroSDが必要

FullHDだと動画サイズが大きく、小さいmicroSD容量でループ録画してしまうと、過去の録画に上書きされてしまうので気を付けておきたい。