動画をWMVでエンコードしてXBOX360で見ようというネタ。今の所判ってる事。
– 音声にWMAロスレスを使うと再生出来ない(再生時エラー発生)
– インターレス保持ファイルはまともに再生出来ない(最初のフレームが一瞬表示されるのみ)
– WMA Pro 5.1chはAC-3 5.1chに変換されて光出力から出る
で、WMP11を入れるとコーデックのFourCCが「WVC1」、いわゆるVC-1コーデックになる。詳しくはWikipedia参照。ここにも書いてある通り「FourCC:WMVA」は使わない方が良さげ。
> Wikipedia:Windows Media Video
>
で、WVC1にしても何もしなきゃ今までとエンコード速度は変わらないみたいだが、レジストリに追加設定があって画質を色々細かく弄れるようになってる、この設定を行うGUIフロントエンドも存在する。
> WVC-1 Advanced Settings Editor GUI
>
設定内容の説明は下記サイトが詳しい
> DTVかくし味:WMV9の高度な設定
>
一番のネタが「Compression Optimization Type」、こいつを有効にするとソースにもよるが画質がかなり向上する。自分はライブのエンコードをすることが多いのだが、ライブって大抵バックにスモーク炊いてライトを当てる。こういう部分はブロックノイズが非常に発生しやすいのだが(XviDとか顕著)、こいつを有効にしたWMV9だと綺麗なまんまで暗部の潰れもかなり軽減される。
ただしエンコード速度は無茶苦茶遅くなる。場合によるけど一番軽い設定の4倍以上かかる事も。事前に数十秒のファイルで確認しておいた方が良さげ。
しかしこの設定でエンコードした奴だと、XBOX360でたまに音が止まらずに絵が数秒止まる事がある事が判明。ソースはBS-hiで録画した奴で、「観客席(数百人映ってる)が照明でハイライト飛び状態→照明が弱くなって観客の顔まではっきりと判る」というシーンでかなり再現性高し、そんなシーンは滅多にないんだけどね。
色々調べたら「Compression Optimization Type」で設定される項目のうち、次のどちらかが有効になってると確実にダメな事を確認した、あとキーフレームがTMPGencだとデフォでキーフレームがWMEの3secに比べて8secと長めになってるけど、8secだと一瞬止まるパターンがあった。他にも色々ありそうだなぁ。
– Number of B-Frames
– Force Loop Filter
ただし「Compression Optimization Type」はこれらを含む幾つかのオプションを固定値に設定するだけなので、上の値以外を手動で設定してやればOK。流石にフル設定にはちょっと落ちるっぽいが、設定しないよりは十分綺麗、これでエンコーダの「パフォーマンス」設定を最大限高性能側に振ると速度も我慢できる範囲にはなる。
ちなみに例の「パフォーマンス」設定(コマンドラインだと-v_performance)は「高性能」側に目一杯振っても処理時間の割に画質は落ちないので色々試した方が良い。何もレジストリを設定しない場合は60%位、「Compression Optimization Type」的な設定の場合は20~40%が画質と処理時間のバランスが取れてると思う。
あとTMPGEncにある「画質・動き重視」のパラメータ(コマンドラインでは-v_quality)はWMEにないけど、デフォで75の様子(WMcmd.vbsを見た限りではそう読める)
ただしこの「パフォーマンス」設定と「画質・動き重視」設定も組み合わせによってはやっぱり絵が止まる場合があるのが困りモノ。どちらかを最低設定にすると止まりやすくなる。今回私用したソースでは「画質・動き重視」が75の状態で、「パフォーマンス」が「25%」以下だと止まる。また微妙な。
ここまでしてXBOX360で見る必要があるのか疑問になってきた…。PS3はPS3でH.264ネイティブ対応してて便利そうなのだが、現在の所「インターレス保持ファイル再生不可」「4GB以上のファイルを認識しない」「一旦内蔵HDDに保存する必要あり(XBOX360みたいにPCからストリーミング再生不可)」「マルチチャンネルの音声ソースは2chに強制ダウンミックス」という仕様っぽい。また微妙な。BD-Rにオーサリングして焼けばOKなのかな、それはそれで一枚辺りに大量に詰め込めばコストも安くなっていいかと思うけど。
にしても頻繁にHDサイズのエンコードをやる訳でもないけど、やっぱもうちょい速くなって欲しい。映画とか満足行く画質設定だと丸一日かかるし。