AviSynth 入門してみた

録画やら管理やら視聴でもっと楽をして楽しもうと思って。


とりあえずだいたい動くようになったけど、えらい手間がかかった。
こんなのみんなよく使えてるなぁ...。


で、いまのところこんな流れに...

  • PT1録画専用のPC
    • CPUは無駄にCore 2 Duo E8400@3GHz
    • 録画したtsファイルをTsSplitterに
    • 出力先はエンコード用のPCの共有フォルダ
  • 常時起動のエンコード用のPC
    • CPUはCeleron E3200@2.4GHz
    • 共有フォルダのファイルを定期的にチェック
    • 新しいファイルがあればエンコード用のフォルダにmove
    • 空き容量が減ってたら古いtsファイルを削除
    • moveしたファイルをBonTsDemuxでm2vとwavに
    • DGIndexでm2vをd2vに
    • x264itvfrでd2vをmp4に
    • neroAacEncでwavをaac
    • mp4boxでmp4とaacを合体したmp4を最終的な保存場所に出力


アニメ用のavs。

LoadPlugin("AviSynth\itvfr\itvfr.dll")
LoadPlugin("AviSynth\warpsharp\warpsharp.dll")
LoadPlugin("AviSynth\dgmpgdec\DGDecode.dll")
MPEG2Source("tmp\tmp_demux.d2v", idct=3) 

Spline16Resize(720,last.height)
FrameCache(5).itvfr(ref="TOP", diMode=1, debug=false)
Spline16Resize(last.width,540)

ConvertToYV12()

return last

itvfrとリサイズだけですな。
FrameCache(5)て書いてあるのは他のサイトのサンプルで見たまんまなんだけど、速度に影響無いような...。
Spline16Resize() については試した中では一番速かったから。画質の比較とかはしてない。
720x540というサイズはソース(1440x1080)の半分という意味しかない。CPUパワーがもっとあればもっと高解像度にしてもいいんだけど、処理時間やら画質やらファイルサイズのバランスでこれに。
これで30分番組の処理時間は45分。


アニメ以外はitvfrを使わずに、リサイズだけ。アニメかどうかはファイル名にジャンルを入れてあるのでそれで判別。デインタレースはしてない。縦の解像度が元の半分だからブレンドしたような絵になる。--crf 30 だし細かいことは気にしない。こっちは30分番組が30分。


AviSynthを使う前に、AviUtl+afs+x264guiで自動化してみたけど、録画のペースに対して処理時間が長すぎて無理だった。
「itvfrは軽いらしい」といううわさだったので AviUtl+itvfr+x264itvfr も試したけど今回の使い方では速度的なメリットは無かった。
afsはフィルタ版があるから、フィルタの前に幅だけリサイズすることで高速化できるが、AviUtl+itvfrではたぶん無理だから。