Cam」(Amazonでも買えます)で撮影した常時記録動画からタイムラプス動画を生成するPythonスクリプトを書いたので、メモを残しておきます。Camには、それ自身にもタイムラプス動画の作成機能がありますが、撮影開始前に条件(撮影間隔など)を決める必要があり、また不意に撮影が停止してしまうことがあったことから、別の方法を考えました。Camには、常時映像&音声を記録し、microSDカードに書き込む機能があります。MP4形式、フルHD(1980x1080)、20フレーム/秒の動画ファイルが1分毎のファイルとして生成されます。以前はそれらの動画ファイル群(撮影時間、条件にもよりますが10時間で6GBほど)をMP4Boxコマンドで結合し、ffmpegコマンドで速度の調整を行っていました。中間ファイルの容量もそれなりになってしまうため、直接タイムラプス動画を生成するPythonスクリプトを実装しました。今回はDocker内で実行しました。3系、OpenCVを使って実装しました。Dockerfileは以下の通りです。opencv-python==4.4.0.46Pythonスクリプトタイムラプス動画を生成するPythonスクリプトは以下の通りです。手抜きなので各種パラメータはハードコーディングされています。カレントディレクトリ以下の*.mp4を読み込む。カレントディレクトリにout.mp4というファイル名で動画を描き出す。600フレームに1フレームの割合で書き出す。(つまり600倍速)出力動画の解像度はフルHD(1980x1080)。出力動画のフレームレートは20フレーム/秒。動画読み込みスレッド、動画書き出しスレッドの2スレッドで動作。frame_queue},)write_frame_worker.start()read_frame_worker.join()write_frame_worker.join()print("done")何かの参考になれば幸いです。Kato株式会社那由多屋の代表取締役です。技術を創り出す者、楽しむ者、伝える者であり続けたいと思っています。バッジを贈って著者を応援しようバッジを受け取った著者にはZennから現金やAmazonギフト券が還元されます。Kato株式会社那由多屋の代表取締役です。技術を創り出す者、楽しむ者、伝える者であり続けたいと思っています。環境PythonスクリプトZennエンジニアのための情報共有コミュニティAboutZennについて運営会社お知らせ・リリースGuides使い方Publicationよくある質問LinksTwitterGitHubメディアキットLegal利用規約プライバシーポリシ。