2010年1月11日月曜日

ベネディクト戦記 エンコード設定

この前筆者がエンコした動画に「エンコ設定教えてよ」というコメントがついていたので、ここに書いておくことにする。


0.使用したものとか

エンコード素材:
DVDレコーダーによる録画(VOBファイル、19725フレーム、10分58秒)

使用ツール:
DGMPGDec 1.5.7
AviSynth 2.5.8MT(SEt)
VirtualDub 1.9.8(プレビュー用)
avs2yuv.exe
pipebuf.exe
x264.exe (rev1376/64bit)
wavi.exe
neroaacenc.exe 1.5.3.0
mp4box.exe

なお解説にあたってはファイルパスは省略

1.d2vファイルと音声ファイルの作成
DGIndex.exe -ai source.vob -o source -ia 3 -fo 0 -yr 2 -om 2 -hide -exit >null

2.avisynth scriptの作成
#ベネディクト戦記 #16 movie.avs
SetMemoryMax(1024)
SetMTMode(2,0)
LoadPlugin("DGDecode.dll")
LoadPlugin("NicAudio.dll")
LoadPlugin("YadifMod.dll")
LoadPlugin("NNEDI2.dll")
LoadPlugin("mt_masktools-25.dll")
LoadPlugin("RemoveGrainSSE2.dll")
Import("LimitedSharpenFaster.avs")
LoadPlugin("mvtools2.dll")
LoadPlugin("AddGrainC_11.dll")
#メモリリーク回避のためver.1.1を使用
LoadPlugin("Gradfun2db.dll")
Import("Gradfun2dbmod.avs")
Import("GrainFactory3.avs")

#映像、音声の読み込み
MPEG2Source("source.d2v", cpu=6) #ブロックノイズがひどいのでcpu=6
AudioDub(NicAC3Source("source T80 2_0ch 256kbps DELAY24ms.ac3", channels=2))
DelayAudio(0.024)
Normalize(volume=1.0,show=false)

#動画の開始部分の崩れた映像を1秒弱削る
Trim(25,0)
#インターレース解除
#60fps? ニコニコでは再生重過ぎ&ビットレート足りないだろjk
interp=NNEDI2(qual=3)
YadifMod(edeint=interp)

#周囲の黒ベタを全部削り、16:9にリサイズ
#アスペクト比はほんの少し狂うが、画面の大きさ&見やすさ優先
Spline36Resize(768,432,15,21,-17,-16)
#とにかくボケボケのソースなので思いっきりSharpenかけてから512x288にリサイズ
Sharpen(1.0)
LimitedSharpenFaster(dest_x=512, dest_y=288, SMode=4, LMode=4, strength=200)

#30fpsの動きの悪さをごまかす&ビットレート削減のため、ちょっと強めにモーションブラー
#ベネディクト戦記はやたら動きが激しいので、モーションブラーかけるとカッコイイ(と思う)
super=MSuper()
bw_vec=MAnalyse(super, isb=true)
fw_vec=MAnalyse(super, isb=false)
MFlowBlur(super, bw_vec, fw_vec, blur=45)

#壁や地面ののっぺり対策にディザとシルバーグレインをかける
#ただし、明部にかけるとノイズが目立ちすぎるので、中間部と暗部のみ
GradFun2dbmod(custom="GrainFactory3(g1str=10, g2str=10, g3str=0, g1shrp=50, g2sharp=50,g1size=1.4, g2size=1.1, th3=120, th4=120)
Distributor()
return last #スクリプト終了

3.音声のエンコード
とりあえずHE-AACで64kbps使っとけば、まず音質で文句はでない
wavi.exe movie.avs audio.wav
neroaacenc.exe -br 64000 -2pass -if audio.wav -of audio.aac

4.映像のエンコード
基本方針はプレミアム会員のファイルサイズ100MBをほぼ使い切る&多少のノイズは気にしないでディテール重視。
x264は非常に優秀なので、あれこれオプションをいじってもいいことは殆どない。適当に任せておけば、うまいこと良い感じに誤魔化してくれる。
pipebuf.exe avs2yuv.exe movie.avs -o video.y4m -o - : ^
x264_x64.exe - stdin y4m --pass 1 --bitrate 1182 --tune film --bframes 5 --b-pyramid normal --direct auto --weightp 0 --keyint 300 --aq-mode 2 -o null

x264_x64.exe video.y4m --pass 2 --bitrate 1182 --tune film --bframes 5 --b-pyramid normal --ref 8 --keyint 300 --direct auto --me umh --subme 10 --trellis 2 --colormatrix smpte170m
--weightp 0 --no-dct-decimate --aq-mode 2 -o video.264

5.映像と音声を結合
mp4box.exe -add video.264:fps=30000/1001 -add audio.aac -new result.mp4

以上で全行程終了
所要時間 約1時間半(Core2Quad Q9450 定格 / Windows7pro x64 / メモリ8GB)

6.最後に
筆者は、このゲームをやったことはおろか、実物を見たことすらありません(近所のゲーセンには入っていませんでした)。
仕方が無いので、画質に関しては自分の好み&視聴者受けしそうな感じになるように、適当にフィルターかけていじってます。
いままでのシリーズ16回のうち14回は自分がエンコしました。
もし変だったらごめんね、ベネディクトさん...

6 件のコメント:

  1. スレには規制で書けなかったのでこちらで。
    最近頻繁に見てるのは私です。
    申し訳ありません。

    初心者で質問できる程ではありませんので。。

    返信削除
  2. 好きで公開してるわけですから、別に謝る必要はありません。
    自分がメアドを晒していないのはspam対策ですが、細かい質問等があるなら
    IRC2ch.netの #JEEBさんの雑談部屋 (夜なら大抵います)に来るか、http://bbs.fushizen.eu/ で、自分宛にプライベートメールを送ってくれればいいです。(こちらは登録が必要ですが)

    返信削除
  3. 一応プライベートメールを送ってみました。
    お忙しいようでしたらスルーで結構ですので。。

    返信削除
  4. あら? もうお返事は書いたのですが、届いてませんでした?

    返信削除
  5. はい、27日の時点では届いていませんでした。

    現在は何故かエラーが出てアクセスできませんが。

    返信削除
  6. うーむ、それではこちらに貼っておきます。
    http://privatepaste.com/91e57c022c
    1日で消えますので、もし見られなかった場合は、メアドを教えてください。そちらに再度送信します。

    返信削除