2011年7月2日土曜日

AviSynthで必要なファイルを読み込んで繋げて960x540にリサイズ

関連:Blu-RayからiPhone 4への動画変換メモ
Blu-RayからAviSynthを使ってエンコードの入力ファイルを作成します。


Avisynthは動画に様々なフィルタを掛けることができるものです。
フィルタ掛けのルールを記載したavsファイルをエンコードの入力ファイルにします。
詳しくはavisynth.info (旧 AviSynth wiki)などを参照。
今回は動画の読み込み,結合,リサイズなどに利用します。


準備として,まず以下の3つのダウンロード,インストールをします。


MatroskaSplitter
ffdshow filter
AviSynth


次にフィルタリングルールを記述します。
これはメモ帳などでも構いませんが,少し本格的にやるという方は専用エディタを使ってもいいかもしれません。
私はAvsPというスクリプトエディタを使っています。


Sample
 video1 = DirectShowSource("H:\BDMV\STREAM\00004.m2ts", fps=29.97, convertfps=true) 
 video2 = DirectShowSource("H:\BDMV\STREAM\00005.m2ts", fps=29.97, convertfps=true) 
 video = video1 + video2 
 video = LanczosResize(video,960, 540,taps=16) 
 return video 

DirectShowSourceというフィルタにより動画を読み込みます。
読み込むファイルはBDInfoで確認したファイルです。
今回のSampleでは2つのファイルを読み込み,結合させています。
次にLanczosResizeというフィルタでiPhone 4の画面に適した960x540へリサイズします。
最後にreturnして終わりです。

注:fpsの値が正しいか確認すること!
アニメは23.976 fpsのはず。

dts(音声)の読み込みにはNicDTSSourceフィルタを使う。


追記
Windows XPからWindows 7環境変えたらエラーがでた。
x264にavsファイルを食わせたとこででたんだけど。
内容は「avs [error]: unsupported input format (YUY)」って奴。
解決するには「return video」の前に「video = ConvertToYV12(video)」を入れる。

保存し,拡張子を.avsにする。
あとはこのavsファイルを入力としてエンコードをする。

0 件のコメント:

コメントを投稿