AviSynthで、jpegからHD動画に変換する。
えー内容としてはとても簡単しもっと最適化できそうですが、AviSynthど素人なのでここまで調べるのに、ちょっと時間がかかったので、メモ
- AviSynth 入力された映像(静止画を含む)を加工して映像(静止画)として出力するソフト。加工条件の設定がスクリプトベースでできるのがポイント。2.5を使用
- VirtualDub 動画編集ソフト、AviSynth用のスクリプトが入力として使用できる。1.8.6の日本語版を使用
このあと凝った編集をするなら、VirtualDubで適当なaviファイルとしてセーブしてEdiusなどで加工します。
AviSynth のスクリプト例
SD動画(640x480)作成
# #以降はコメントです # jpgファイルを連番で読み込む src = ImageSource("HC08%04d.jpg",1054,1122,29.97,false,false,"RGB32") # 640x480にBilinearでリサイズ src = src.BilinearResize(640,480) # srcを返す。 return src
上記ファイルの、"HC08%04d.jpg",1054,1122 の部分は 1054が開始ファイル名、1122が終了ファイル名です。具体的にはHC081054,jpg 〜 HC081122.jpg のリストとして展開されます。また、29.97がフレームレートになります。
HD動画(1920x1080)作成
#以降はコメントです src = ImageSource("HC08%04d.jpg",1054,1122,29.97,false,false,"RGB32") # アスペクト比が4:3なので、適当な範囲を16:9に切り抜く src = src.Crop(0,378,4032,2268) src = src.BilinearResize(1920,1080) return src
あとは、夜景などは前後のフレームを混ぜるのもいいかもしれません(試行錯誤中)
HD動画(1920x1080)作成 4フレーム合成
src = ImageSource("HA20%04d.jpg",4272,4701,29.97,false,false,"RGB32") src = src.Crop(0,378,4032,2268) src = src.BilinearResize(1920,1080) src1 = src.trim(0,-420) src2 = src.trim(1,-420) src3 = src.trim(2,-420) src4 = src.trim(3,-420) src12 = Layer(src1,src2,"fast",128) src34 = Layer(src3,src4,"fast",128) src1234 = Layer(src12,src34,"fast",128) return src1234