2010年1月26日火曜日

弄りたがる人達

komisar氏がGCC4.4.3の配布を始めたので4.4.2から差し替えた。
別にこれといって変わった様にも思えないし、4.4.2で何も困ってはいなかったのだが、ソフトウェアに関してはなぜか最新を使っていないと気が済まないという難儀な性格なので仕方がない。

最新といえば、MPC-HCがr1552でMPEG2のDXVAに対応したらしいので、こちらも更新してみた。
いつもどおりAlexin女史のところ(xvidvideo.ru)からr1557をDLしてインストール。
とりあえずmpeg2でも内部フィルターでDXVAは効くようになったみたいだが、ffdshowのlibavcodec使用時と比べても、CPU使用率は全く下がらない。3%~15%程度をうろうろしている。(後で気づいたが、実はこのとき使われていたデコーダーは、MPC-HCのものではなく、MS製のほうだった。MPC-HCのデコーダーではDXVAは働かなかったようである)
WMP12 & MS DTV-DVD VIDEO DECODERだと常に5%未満なんだが…DVD鑑賞には結局WMP12が一番いいみたい。
とりあえず再生開始時にフル画面で立ち上がるのをやめてくれればなぁ…どこかに設定出来るところがあるのかしら?

と、まあ、このように筆者自身色々弄り回すのが好きな人間なのであまりでかいことは言えないかもしれないが、世の中には兎角、ワケも分からず色々と弄り回して事態を悪化させるのが好きな人が多いようである。
例えば昨日の2chDTV板のx264スレの書き込み。
自分のエンコード環境はaviutlで編集しavsファイルを作りavsをaviutlに読み込ませて aviutlとavisynthを使い”x264出力(mp4/mkv)プラグイン”でmp4ファイルを作っています。
オプションは
--crf 20 --profile high --preset medium --level 4.2 --ref 3 --mixed-refs --bframes 3 --qpstep 8 --weightb --weightp 0 --trellis 0 --direct auto --subme 7 --no-fast-pskip --no-dct-decimate --partitions p8x8,b8x8,i8x8,i4x4 --8x8dct --scenecut 75 --me umh --merange 32 --aq-mode 0 --psy-rd 0:0 --no-mbtree --b-adapt 1 --threads auto --thread-input
これを見たDark_Shikari氏の反応はこのようなものだった
20:09 (Dark_Shikari) also, the non-saging post asking for settings help
20:09 (Dark_Shikari) with unbelievably bad commandline
20:09 (Dark_Shikari) smells like megui
確かにひどい設定だと思う。一体何を考えたらこんな設定になるのか意図がさっぱりつかめない。

こんなことするくらいなら、ただ単に
--preset slow --tune animation --profile high --level 4.2
としたほうが絶対にいいに決まっている。

なんでこんな設定にするのやら…多分、大昔に書かれたあやふやな情報を読んで、それを鵜呑みにしてるんだろうなぁ。
tobinaka氏はかつてサイトを閉じる際に、それまでに彼が書いた記事を削除した。
あれはやっぱり正解なんだと思う。

2010年1月23日土曜日

日記

UtVideoの梅澤氏がなにやら不具合の調査をしたいらしい。
http://umezawa.dyndns.info/wordpress/?p=1468
サンプルは少しでも多い方がいいだろうから、とりあえず適当に英訳してDoom9に投稿しておいた。
実は梅澤氏もDoom9にはレジストしているので、やろうと思えばご自分で出来るのだが、英語は苦手なのでパスとのことだ。
筆者も英語は得意でも何でもないんだけどね…tobinaka氏はどこいったんだ?

x264はとうとうr1400になった。
速いなぁ…まだlavf/ffms2のビルドの仕方、わかんないよ…。
とりあえずいつも通り、nal-hrdパッチを当ててビルドした。これもいい加減、正式にcomittしてくれないかな。
kierank氏がんばって-。

P.S. インタレエンコでCBP Bufferが変なことになってる…これは、しばらくは駄目なのかなorz

2010年1月17日日曜日

I have caught a cold.

昨日から体調が思わしくない。
どうやら風邪をひいた模様。
IRCで「風邪ひいた」と言ったら、kierank氏から「それは俺のがうつったに違いない」と言われた。
まさかイギリス人に風邪をうつされるとは...IRCって恐ろしい(を

x264_r1391用nal-hrdパッチをmuken氏が書いてくれたので、さっそくビルドし直し。
試しに寝る前にDVDを一本インタレ保持でセットしておいたが、どうやら問題はない様子。

自ビルドを公開している人の最新を幾つか見てみたが、lavf/ffms2を有効にしている人は少ない模様。
やっぱりそうだよなぁ、winの場合は、正直あんまり需要ないもんなぁ。
むしろ、gui.auoとかx264Encoderみたいなものにとっては、この変更はかなり痛いのかも。
たしかmuken氏も「これは大打撃」とか言ってたし...。

2010年1月14日木曜日

x264が久々の更新

r1376が昨年の12月15日だから、約1ヶ月ぶりか。

RIPはとりあえずニコニコ用には使えないだろうな。
IDRがなければシークが効かないのがflashplayerだから。

ffms2とlavfをenableにするにはどうすればいいのだろうか?
ffms2もffmpegも自ビルドしたことがないからさっぱりわからん。
そのうちDoom9かDoom10に解説が出るだろうから、それまでは様子見しとこう。
どのみちAviSynth使う分には関係ないし。

問題はnal-hrdのほうかな。
早く誰かパッチ書いてくれないかしら。

SWFをAVIに変換する方法

前回「ちょっと調べれば自分で出来る」と書いた。
SWFからのエンコードのことである。
書いたときはそう思っていたのだが、その後、頭の中のもう一人の自分がこうささやいた。
「本当にちょっとで済むのか?」

ちょっとで済むに決まっている。
済むだろう。
済むはずだ。
なんせSWFなんて作ったことのない筆者ですらなんとかなっているのだから。
念のために確認してみようと思い「swf mp4 変換」で検索してみた。



検索にBingなんか使ったのがまずかったのかと思い、googleでも検索してみる。



どうもちょっとでは済まないみたい。
これならいけるだろうという方法を詳しく紹介しているページは見つからなかった。

一度、やり方をまとめて書いておいた方がいいのかもしれない。

2010年1月12日火曜日

早起き

朝の4時前に目が覚めた。
SWFをMP4にして欲しいとの依頼がスレに来ていたので、1時間半程度で仕上げた。
今回の依頼も部分的にスプライトを使っているようで、swf.vfpではうまく変換出来なかった。

ニコニコが出来て2年以上が経ち、βやγの頃は少なかった手描き動画も今では大量に投稿されるようになった。
つべ板の手描き動画スレを覗いてみれば、トレス/非トレス/二次創作ではない完全なオリジナル(これは少ないみたいだけど)と、皆さん色々誘惑に耐えながら「日産10枚」とか「半年かかった」とか、なかなか大変そうなご様子である。

筆者は昔、某エロゲのプレイ動画を投稿していたことがあるのだが、シリーズ2本を完結させたところで投稿することをやめてしまった。
画面をキャプチャーしながらゲームをするという作業に嫌気がさしたのだ。
ああマンドクサ、やってらんねぇ…。

もともとプレイ動画なんてものは、手描きに比べればかかる労力は遥かに低い。多少編集に凝ってみたところでたかが知れている。ましてやアクションゲームではなくエロゲである。気を付けることなんてテキストを送るスピードをどの程度にするかくらいのものだ(あとは〇〇なシーンの修正とか…)。

そういう人間であるから、彼/彼女らの書き込みを眺めていると、その情熱には本気で感心してしまう。

キャプチャーしながらゲームをするのは嫌だったが、編集とエンコードは結構楽しめた。
特にエンコードは楽しい。
限られた容量、ビットレートのなかで、いかにしてより良い結果を叩きだすか…うん、いいねぇ。

とりあえずエンコだけならそんなに手間はかからないし、平均点くらいはもらえる程度の知識は持っているつもりなので、他人の作った動画のエンコを代わりにやるというお遊びを、かれこれ2年ほどやってきたわけだが、今回のような依頼をこなす際にいつも考えることがある。
「もし代理でエンコするような人がいなかったらこの人はどうしたのだろう?」
「そもそも自分のここ数カ月の労力の結晶を他者に委ねるということに抵抗はないのだろうか?」
「ちょっと調べれば自分で出来るだろうに…」

そう、「ちょっと調べれば」自分で出来るだろう。
でも現実にはそれが出来ない人がいるわけである。
おそらく彼ら/彼女らは、動画のエンコードという行為に楽しさをあまり感じることがないのだろう。好きでないことに取り組んだところで良い結果が生まれることは殆どない。これが受験とかならば嫌でも頑張るしかないわけだが、ましてや趣味の世界のこととなればなおのこと。

筆者は絵を描くという行為に何ら喜びを見いだすことがないため、幼少の頃から禄に落書きすらしなかった人間である。

多分、これと同じことなんだろうなぁ。

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回は自分がエンコしました。
もし変だったらごめんね、ベネディクトさん...

活動記録

10日(日)
朝っぱらからニコニコ用代理エンコを2本(依頼人は同一)
内容:作業用BGM
ソース:VC-1

始まりました

いつまで続くことやら…。