動画作りの経過

前回の動画作成時 ( http://d.hatena.ne.jp/janus_wel/20080514#1212766596 ) に思ったより画質が悪かったことに反発して色々試してみてたところ、いい方法がわかったのでまとめ。俺はかなり勘違いをしていた上に情報が古かったことが判明。ついでに主にニコニコ動画を念頭において書いている。 YouTube はあとあと。

まず AviSynth ( http://avisynth.org/mediawiki/Main_Page ) の存在。スクリプトベースの動画加工ソフトウェアっていうと誤解があるんだけどまぁそんな感じ。ホントはフレームサーバって言ったほうがいいらしいんだけど俺の理解では wsh みたいな常駐インタプリタっぽいもの ? みたいな ? あってるかどうか自信がない上にどうでもいい。そのうちヘルプをちゃんと読むさ。

とりあえず AviSynth のオススメツールでもある VirtualDubMod ( http://virtualdubmod.sourceforge.net/ ) とあわせてインストゥール。書いたスクリプトを VirtualDubMod に落とすと多少重いものの処理結果を見られるのが素敵。あとは VirtualDubMod に AviSynth 用エディタがついてるんだけど使わずに vim で作業した。 avs 用の vim syntax ファイルもあったんだけど ( http://www.vim.org/scripts/script.php?script_id=1418 ) 古いみたいで全然カバーできてない。そのうち書くかもしれないし書かないかもしれない。

で、今はこんな便利なモンがあるのかと思いつつ http://www.avisynth.info/ を参考にしてカホカホとスクリプトを打った。

# Pin Extension for GReader デモ動画用 AviSynth スクリプト

# 画面のやや下側に文字をセンタリングして入れる関数
function Terop(clip clip, string "text", int "start", int "end") {
  SubtitleEx(clip, text, 255, 280, start, end, "HGPゴシックE", "c", 20, $00000000, $00ffffff)
}

# 強制的に 60fps で読み込む
DirectShowSource("pin_extension_for_greader.avi", fps=60, convertfps=true)
# WarpSharp 用に色変換 ( まだよくわかってない )
ConvertToYV12()
# 無駄に Lanczos4
Lanczos4Resize(512, 384)
# シャープネス
WarpSharp(48,3,48,-0.6)

# 文字を打ち込む
# 入りと出のフレーム数は元ソースの秒数にフレームレート 60 をかけて算出
Terop("Google Reader 起動", 0, 680)
Terop("適当なフィードを選択", 680, 1250)
Terop("記事を読んでいく", 1250, 2040)
Terop("i キーでピンを刺す", 2040, 2420)
Terop("o キーで元ソースの表示", 2420, 3096)
Terop("読む…", 3096, 3500)
Terop("ピンを刺していない場合に o キーを押すと|選択中のアイテムが開く", 3500, 4200)
Terop("また読む…", 4200, 4560)

てな感じのスクリプトを VirtualDubMod に読み込ませて Save as ... で codec 指定 ( XviD ) して出力。したんだけどあっるぇええええー ? SMILEVIDEO にあげてみると確かに前回よりは画質あがってるんだけどローカルのものより劣化してる。

で、ふと裏で流してた動画に「エコノミー回避版」て書いてあってかなり綺麗だったのでもしかしてーと思って検索。すると以下の動画が引っかかったので正座して視聴。

とりあえず最初から SMILEVIDEO でのエンコード基準に合致しないように作ればいいわけだな。じゃあってことで On2 Vp6 codec をインスコ。ついでにウワサの mencoder_vp6 と flvenc ファイルセットを入手して中身のぞいてみた。ら、 vfw2menc でエンコードオプション指定して mencoder に流し込んでるか ffmpeg で単純に音と絵を mux してる。ていうかこの中のバイナリって MPlayerffmpeg の内容物だ…、ってことはー。

んーこのファイルセット中のバイナリが微妙に古いなー。これくらいなら自分で用意したほうがいいよなー。管理も自分でできるし。あぁでも bat ファイルの中身は正直助かったのでありがとう -> 書いた人。

で、試しに上記のスクリプトを FLV4enc_D&D_2pass_4:3.bat に渡してみたら warning がいくつか出たもののエンコードできちゃった。できちゃったんだけどー、今度は SMILEVIDEO でサムネ指定地獄にはまってどうしようもなくなった。アップロード -> エンコード -> サムネ & タイトル & 説明文指定って流れなんだけど最後のページで投稿ボタンを押してもまたもとのページに戻るという。エンドレス。なんだこりゃーと思ってサポートに連絡してる最中。

だったんだけど ( http://bbs.nicovideo.jp/test/read.cgi/bugreport/1193312459/ ) 読んだら解決した。というところで一区切り。