ニコニコ動画のMP4形式について考えてみる.
てってってーPに触発されて書いてみた.
まえがき
ニコニコ動画はSP1になってから,MP4(H.264+AAC)が利用できるようになった.
(プレミアム会員は先行テスターという形で現在利用できる)
それと同時に,ビットレート上限も従来の600kbpsから800kbpsに底上げされ,VP6形式のビットレートも実質向上させることが出来た.
で,肝心のH.264形式なんだけど,ニコニコ的にはこういう仕様に押さえ込んで欲しいらしい.
H.264のプロファイルは Baseline ProfileまたはMain Profileが推奨。
固定フレームレートが推奨。
VFR等の可変フレームレートは正しく処理されない場合があります。音声AACは HE-AAC(44.1kHz/48.0kHz 32kbps〜64kbps推奨)
または AAC-LC(44.1kHz/48.0kHz64kbps〜96kbps推奨) が対応。
FlashPlayer側から見ると,High ProfileもHE-AACv2も再生できるので,再生負荷の側面から考えた縛りということが考えられるだろう.
プロファイルについて
で,じゃぁ実際にプロファイルを下げるにはどうしたら良いのか,というと.
(プロファイルの詳細はWikipediaのH.264の項目を参照 AM 04:12追加)
High ProfileからMain Profileに下げるには
・8x8dctを使わないようにする
・partitionsにp8x8を入れない
・カスタムマトリクスを利用しない
以上の三点を行えば,一応Main Profileになるはずです.
さらに,Main ProfileからBaseline Profileに落とすには
・CABACを無効にする
・Bフレームを入れない
などが挙げられます.
対策案
正直,CABACを無効にしてパフォーマンスが向上するかと聞かれると,Yesとは言い難い気がします.
(客観的なソース:まるも製作所x264 18 --no-cabac)
というか,CABACを無効にしてまでx264を使う義理はそれほど無いんじゃないかと考えたりしてます.
あとはエンコーダ側でできる最大限のオプション(RDOとかMEとかtrellisとか・・・)を駆使して,低いビットレートでもキレイに出せるように努力するとか,そう言う方が重要かもしれません.