フレーム補間でぬるぬる
先ずはこいつを見て欲しい。1分おきに撮影した写真を動画にしたもので、毎秒1コマ。
かっくかく。紙芝居のおっさんの方が手が早い気がするレベル。こいつをどうにかしたいと思い、少し調べ物をした。
- Pythonスクリプトでなんとかする。→ timelapse.py
- AviSynthのフィルタ、MVToolsを使う。→ MVTools
- AviSynthのフィルタ、MSU Frame Rate Conversionを使う。→ AviSynth MSU Frame Rate Conversion Filter
動画素材との相性などもあるが、ワシの場合の結論を言えば、MSU Frame Rate Conversionが良かった。Pythonスクリプトはお手軽だが、単にフレーム間の平均を取ってるだけみたいで、よろしくない。MVToolsは使い方が難しくてよくわからん。動き予測の最適化とかやってられない。
作業はUbuntuで、wine経由で使うことになる。こんなだ。
$> wine ./avs2yuv.exe timelapse.avs - | x264 --stdin y4m --output output.mkv -
avsファイルはこんな。DSC_1049.jpgから連番で40枚の写真を読み込み、1 fpsの動画とする。んで、25 fpsとして出力してるだけ。
v = ImageSource("DSC_%04d.jpg", 1049, 1088, fps=1) v = v.ConvertToYV12().AutoCrop(0, wMultOf=16, hMultOf=16).MSU_FRC(25, "slow") return v