ニコニコ動画(9)の変更を受けてエンコード関係を考えてみた

さて、ニコ動の新Versionの機能が発表されましたね。
恥ずかしながら最近Pデビューしたワタクシとしてもこの、

ビットレート・解像度制限なし
プレミアム会員は動画投稿の際のビットレート及び解像度の制限がなくなりました!
これにより今までよりもさらに高画質な動画を投稿できるようになりました!
また解像度制限の撤廃によってフルスクリーンモードで再生する際の画質を向上
させることができます!

http://www.nicovideo.jp/static/nico9/

ビットレート制限解除は気になるニュースです。
実のところちょうど今日出来た新作があったのですが、これを明日アップすることにして早速限界までビットレートを上げてアップしてみようと思っております。*1
さて、で、気になるのは容量制限ですよね。何の記述もないのでおそらくプレミアムでは100MB以内の容量制限は残るものと仮定して、ひとまず計算してみました。

今回作ったのは3分47秒の動画。秒換算すると227秒ですね。
目標サイズは100MBビットレートの単位はKがベースなので1024をかけて、102,400KBが目標です。
102,400KB227秒で割ると1秒あたりのビットレート(Byte換算。バイトレート?w)が算出できます。
この場合はだいたい451KBpsですね。1バイトは8ビットなので8倍します。そうすると3608Kbpsが目標のMAXビットレート、ということになりますね。
ぎりぎりは怖いので今回は3500Kbpsを目標とします。

続いてエンコード。元ファイル1280x720サイズで59.94fps。無圧縮AVIですので23.4GBの動画です。
僕はつんでれんこを使用していて、プリセットは最高画質のe3を使っています。
で、基本は今までのニコ動向けの設定になっているので「default_setting.bat」をちょっと変更して次のようにしました。

set PRESET_TYPE=画質超重視(アニメ・アイマスMMDなど)
set THIS_VERSION=3



rem 適当に弄って自分好みの設定にしてくだしあ


rem 一般アカウント用エンコードで目指す総ビットレート(kbps)
rem ビットレートオーバーになるときは、この数値を下げる(初期値は600)
set I_TARGET_BITRATE=600
rem 一般アカウント用の限界総ビットレート(kbps)
set I_MAX_BITRATE=654

rem プレミアムアカウント用エンコードで目指す総ビットレート(kbps)
rem ビットレートオーバーになるときは、この数値を下げる(初期値は1000)
set P_TARGET_BITRATE=3500
rem プレミアムアカウントの限界総ビットレート(kbps)
set P_MAX_BITRATE=3608

rem エコノミーモード回避用エンコードで目指す総ビットレート(kbps)
rem ビットレートオーバーになるときは、この数値を下げる(初期値は230)
set E_TARGET_BITRATE=230
rem コノミーモード回避用の限界総ビットレート(kbps)
set E_MAX_BITRATE=243

rem リサイズするときに目指す幅と高さの設定
rem 幅のデフォルトは512pixels。変えたいときは「DEFAULT_WIDTH=768」などのようにする
set DEFAULT_WIDTH=640

rem 高さは、空欄のときは自動計算(動画ファイルのアスペクト比を維持)
rem 指定したい場合は「DEFAULT_HEIGHT=384」などのようにする
set DEFAULT_HEIGHT=

rem FPSを指定したいときは、「FPS=24」などのようにする
rem 元の動画と同じのままなら空欄のままにしておく
set DEFAULT_FPS=

rem AACエンコードのプロファイル選択
rem auto、lc、he、hev2から選択(デフォルトのautoを推奨)
set NERO_PROFILE=auto

rem フルレンジを有効にしたい場合はonにする
rem フルレンジにした場合のデメリット(プレイヤー互換等)を認識している人のみ使用してください
rem きちんと色空間を考慮しないと、Avisynthでエラーになります
rem 特に理由がなければ、デフォルトのoffを推奨
set FULL_RANGE=off

rem MP4の容量の設定
rem エンコード後の容量が100MB(プレアカ)や40MB(一般アカ)を超えてしまうとき
rem 下の値を小さくしてみるといいかも
rem DEFAULT_SIZE_PREMIUMかプレアカ用の設定、DEFAULT_SIZE_NOMALが一般アカ用の設定
rem 初期設定は「DEFAULT_SIZE_PREMIUM=99」、「DEFAULT_SIZE_NOMAL=39.5」
rem 容量オーバーするときは「DEFAULT_SIZE_PREMIUM=98.5」、「DEFAULT_SIZE_NOMAL=39」などにしてみる
set DEFAULT_SIZE_PREMIUM=99
set DEFAULT_SIZE_NORMAL=39.5

rem 自動バージョンチェック機能の設定
rem オンにする場合は「DEFAULT_VERSION_CHECK=true」にする(デフォルト&激しく推奨)
rem オフにする場合は「DEFAULT_VERSION_CHECK=false」にする(激しく「非」推奨)
set DEFAULT_VERSION_CHECK=true

rem パス数の設定(画像&音声の同時D&Dのときはこの設定は無効です)
rem 強制的に1passや2passや3passにしたいときはここを弄る
rem 「DEFAULT_PASS=1」「DEFAULT_PASS=2」「DEFAULT_PASS=3」でそれぞれ1pass、2pass、3passを強制する
rem 「DEFAULT_PASS=0」(デフォルト)だと自動判定(2pass後のビットレートから3passが必要かを判断)
set DEFAULT_PASS=0



rem 質問への返答をあらかじめ入力しておくとドラッグ&ドロップの後いちいち質問に答えなくてもよくなります
rem それぞれイコールの後ろに質問の答えを書いてください(例:「set ACTYPE=y」「set TEMP_BITRATE=160」)
rem 質問形式を維持したい場合はイコールの後ろは空欄のままにしておいてください(スペースも入れちゃだめ!)

rem プレミアムアカウントの場合は下を「set ACTYPE=y」に、一般アカウントの場合は下を「set ACTYPE=n」に変えてください
set ACTYPE=y

rem エコ回避する場合は下を「set ENCTYPE=y」に、エコ回避しない場合は下を「set ENCTYPE=n」に変えてください
set ENCTYPE=n

rem リサイズする場合は下を「set RESIZE=y」に、リサイズしない場合は下を「set RESIZE=n」に変えてください
set RESIZE=

rem 音声のビットレートを「set TEMP_BITRATE=160」のように入力してください
rem 音声なしでエンコードする場合は「set TEMP_BITRATE=0」と入力してください
set TEMP_BITRATE=

rem さらに最後の確認画面もスキップしたい場合は下を「set SKIP_MODE=true」に変えてください
set SKIP_MODE=

プレミアムエコ回避なしリサイズなしfpsは元を維持。音声のビットレート192Kbpsにしてエンコードしてみました。

できあがったのは「94.9MB」のMP4ファイル。計算よりも若干小さいですが、だいたい意図した通りのサイズになったようです。

と、まあこんな感じで計算すれば100MBをMAXと考えた場合のビットレートは計算できますよー、という素人による素人のための記事でした。詳しい人がもっとちゃんと書いてくれたり突っ込んでくれたりすると喜びます。

ちなみに↓はちゃちゃっとExcelで書いたビットレート計算機。秒数と容量の数値を変更すれば目標ビットレートがでます。
でも素人が書いてるので間違ってても許してね!w
s-e-i:ニコ動(9)ターゲットビットレート(つんでれんこe3仕様).zip

追記

Twitterで教えてもらいました。よくよく考えたらビットレート計算なんて昔から色々と工夫されてきているところなんで探せばあるんでした…つんでれんこや図書館Pセットがある状態から入った俺は隙だらけだった…。
ビットレート計算機

さらに追記(2009/10/29 6:00)

つんでれんこさんが早速対応されています。ビットレートも対話形式で可変にできるようになって、最大ビットレートも自動で教えてくれるように。感謝!

*1:一応今まで通りの仕様でも作ってありますが…アップするのはどうしようかな?