タイムラプス画像を動画に変換

前回、Raspberry Piとカメラモジュール、RPi-Cam-Web-Interfaceを使ってタイムラプス画像を撮影する方法をご紹介させて頂きました。

しかし、撮影した画像はJPEGファイルで、動画ではありません。

こちらの複数の画像から、動画を作成する方法をご紹介させて頂きたいと思います。


タイムラプスに必要な画像の枚数計算

使用する画像の枚数は、次の条件でタイムラプス撮影時に決めておきました。

  1. 何fpsの何分の動画を作りたいか
  2. タイムラプスを何時間(何分)撮影するか

たとえば最終的に30fps(1秒間に30フレーム)の1分間の動画を作りたい場合、30[fps]×60[秒]=1800[枚]の画像を撮影すれば良さそうです。別の例で、もっと精細な60fpsの2分間の動画を作りたい場合は、60[fps]×2[分]×60[秒]=7200[枚]の画像が必要になります。

次に、タイムラプスの撮影時間を決めます。たとえば12時間撮影して、1800枚の画像を撮影したい場合は、12時間を1800枚で割れば・・・
インターバル(12[時間]×60[分]×60[秒])/1800[枚]=24[秒おき]
に撮影すれば、12時間で1800枚撮影できる計算になります。

64GBのmicroSDカードを用意した場合。500万画素(2592×1944[px])の画質良好のJPEG画像のサイズを1枚500KB程度として計算すると、50GBの空き容量に100万枚の画像を入れることができます。数分程度の動画を作る目的の場合、通常は1~2万枚の画像が入ればOKですので、空き容量を細かく気にする必要はなさそうです。


JPEG画像から動画を作成する手順

では、撮影した画像から動画を作成したいと思います。

次の2ステップで行いたいと思います。

  1. 複数のJPEG画像を結合してAVIファイルに変換します(VirtualDub)
  2. AVIファイルを再生したいデバイスに合わせてmp4ファイル等に圧縮します(HandBrake)

複数のJPEG画像を結合してAVIファイルに変換

  1. あらかじめJPEG画像のファイル名を連番付きに変更します。
    RPi-Cam-Web-Interfaceで撮影した画像は「tl_0003_0001_20171210_100001.jp」のようなファイル名です。これを連番のファイル名に変更します。
    Ctrl+Aを押してファイルをすべて選択し、右クリックメニュー→名前の変更を選択します。
  2. 何か適当なファイル名を入力すると、ファイル名に(1)から始まる連番が付加されます。
  3. VirtualDubをダウンロードして展開します。
  4. VirtualDubを実行します。
  5. Fileメニュー→Open video fileをクリックします。
  6. 2番で名前を変更した画像を選択して開きます。
    このとき、左下の「Automatically load linked segments」のチェックがONになっている事を確認してから開きます。
  7. うまく連番のファイルが読み込まれると、画面の右下に読み込まれた枚数が表示されます。これが総フレーム数になります。
  8. Videoメニュー→Frame Rateを選択します。
  9. 作成したい動画のフレームレートを入力します。30fpsにしてみました。
  10. Fileメニュー→Save as AVIを選択して、AVIファイルを出力します。
  11. しばらく待つとAVIファイルが出力されます。

こちらのAVIファイルは、複数のJPEG画像を結合した巨大なファイルになります。動画の長さによっては、数十GBの大きさになる場合もありますので、作成時はディスクの空き容量に注意が必要です。

AVIファイルが大きすぎて扱いづらい場合、Videoメニュー→Filters→Addでresizeフィルタを選択すると、画像の解像度(サイズ)を変えてAVI出力することができます。

必要に応じて、動画編集ソフトウェアでAVIファイルを加工して、字幕やタイトル、音楽等を追加します。

AVIファイルを再生デバイスに合わせて圧縮

AVIファイルは巨大で、インターネットのアップロードにあまり向いていません。HandBrake等の圧縮ツールを使ってmp4ファイル等に加工します。

  1. Handbrakeをダウンロード、インストールします。
  2. Handbrakeを実行して「File」をクリック、作成したAVIファイルを選択します。
  3. 画面の右側から、プリセットを選択します。出力したい解像度(1080pや720p)や画質(HQ=高画質、Fast=低画質)、デバイス(AndroidやApple)から選択します。
  4. Destination欄に出力先のファイル名を入力します。
  5. 「Start Encode」ボタンをクリックして変換を開始します。

変換が完了すると、メディアプレイヤー等でタイムラプス動画を再生することができるようになります。

ざっと試したレベルですが。画質が良いタイムラプス動画を作るには、撮影時の解像度や測光・露出設定を調整する必要がありそうです。

AVIファイルの編集は、一般的な有償・無償の動画編集ソフトウェアを使用しますが、その段階である程度の画質の補正もできるかと思います。

いろいろと工夫の余地がありそうですので、色々と撮影して試してみるのも面白そうですね。

スポンサーリンク

フォローする

スポンサーリンク