VapourSynthでタイムラプス

プログラミングVapourSynth,動画

一つ前の記事用に作成したタイムラプス動画は、VapourSynthで作成しています。

ごく単純なものですが、VapourSynthの利用サンプルとして掲載します。

コード

import vapoursynth as vs
import os
core = vs.core
ext = '.jpg' #適宜変更
dir = r'E:\vapoursynth_test' #適宜変更
srcs = [os.path.join(dir , src) for src in os.listdir(dir) if src.endswith(ext)]
clip = core.imwri.Read(srcs)
clip = core.resize.Lanczos(clip,format=vs.YUV420P8, matrix_s="709")
#clip = core.resize.Lanczos(clip,1920,1080,format=vs.YUV420P8, matrix_s="709") #解像度を変更する場合
clip.set_output()

dirに指定したフォルダ内にあるextで終わるファイルを、名前順で読み込んで動画として出力します。写真のファイル名は連番でなくてもよいですが、名前の順になっている必要があります。

また、上記のコードは、事前にクロップ・リサイズを行った画像を使っています。リサイズを行う際は、8行目ではなく9行目を使用します。

色空間の設定が合っているのかは自信ありません・・・

コマンドライン

エンコードのコマンドライン例はこちらです。

vspipe.exe input.vpy  - |  x264-64bit.exe - --input-res 3840x2160 --fps 30   -o output.mp4

4Kの解像度(3840×2160)で、エンコード速度は約4.9fpsでした。(Core i7 4770k)