« AviUtlと拡張x264(GUI)Ex 1.13までは10bit-depthのBT.709エンコードをするのは難しかった(1.14で対応済) | トップページ | HuffyuvS(末尾にSがつくもの)は基本的に使わないほうが良いというお話 »

2011年11月23日 (水)

ニコエンコ v0.77を使う場合の注意点

2012/7/9更新
  ●デフォルト設定が「最低速」というのは間違いでした。デフォルトは「普通」です。
    zipを展開しなおして起動すれば設定がクリアされてデフォルト値で起動すると思い
    そのようにしてデフォルト値を確認したつもりだったのですが、ニコエンコは設定を
        %appdata%nicoenc\setting.txt
    に保存するようになっているため、その設定を読み込んで起動していました。
    つまり「最低速」で実験していた後、フォルダを消してzipを展開しなおして起動したため
    デフォルトが「最低速」に見えただけでした・・・。失礼しました。
  ●2012/5/1に導入されたZeroWatchの大画面モードの解像度を追記。
  ●rigaya氏のDXVA検証記事を追加。

2012/4/11更新
  ●デフォルト設定が、問題が出る「最低速」になっているということを教えていただいたので
    その旨を追記。「普通」がデフォルトだと思い込んでいました。
    デフォルト設定のまま使うと非常にまずいです。

2012/2/18更新
  ●「ハードウェアアクセラレーションで崩壊してしまう動画の例」を削除し、
    「映像崩壊の様子をキャプチャした動画」に変更。
    どれほどひどく崩れるかがよくわかります。

2012/2/10追記
  ●ここに書いた以外にも以下のような問題があります。
      ◎neroAacEnc.exeを同梱しているのはライセンス的に問題。
      ◎エコノミー回避で設定されている上限ビットレート(合計220kbps)が低い。
        エコノミー回避の上限ビットレートはこれまでも300kbpsくらいだったが、
        2012/2/8には合計約445kbpsに変わっている。
        (ついでに生成されるエコノミー動画の解像度も640x360 or 512x384になった)
      ◎使っているx264(r1523)が古く、速度面などの性能が低い。
  ●「変換先の設定」フォルダにあるiniファイルを書き換えることで、
      ◎ハードウェアアクセラレーション時に映像が崩壊する問題
      ◎解像度が小さくなる問題
      ◎エコノミー回避のビットレートが小さすぎる問題
    を回避することができます。
    また、x264についても最新版に置き換えるという方法があります。
    詳細については、ニコニコ大百科に書いてくださった方がいますのでそちらを参照して下さい。
       ニコエンコとは - ニコニコ大百科
    ただし、
      ◎ビットレートが極端に高くなる問題(手動で調節しないとまずい)
      ◎音声ビットレートのバランス(自分で調節したほうがいい)
    については解決できませんので、「手動変換」を使うべきであることは変わりありません。
  ●ニコエンコは更新も止まっていますし、個人的には更新を続けている「つんでれんこ」や
    「AviUtlx264guiEx」などを使うことをお勧めします。


ニコニコ動画にアップロードする動画をエンコードするために使われる
代表的なエンコードツールの1つとして「ニコエンコ」が挙げられます。
最新版は2010/04/25のv0.77となっています。

これを使う際、以下の2点に注意すべきだと思うのでまとめてみました。
個人的な意見も入りますので、参考程度に見てください。

  注意点1.「ヘルプ→本体の設定」にある「変換速度」を「最低速」にして使ってはいけない。
        (デフォルトでは「普通」になっている)

  注意点2.トップ画面の「動画を変換する」ボタンによる自動変換ではなく、
        メニューの「手動変換」を使ってエンコードしたほうがよい。

以下に理由を示していきます。

ただし、ニコエンコは更新が止まっており今の状況では色々と不都合な点もあるので、
個人的には「つんでれんこ」や「夏蓮根」、「AviUtlx264guiEx」などを使うことをお勧めします。

■注意点1.「ヘルプ→本体の設定」にある「変換速度」を「最低速」にして使ってはいけない。

 何故「最低速」にして使ってはいけないかというと、
    「環境によっては映像が崩壊してまともに見れなくなる」
 という理由があるためです。
 以前の記事でも書いたのですがわかりにくいので、以下の記事を読んでみて下さい。

   動画がおかしくなる方は大百科をクリック→とは - ニコニコ大百科

   rigayaの日記兼メモ帳 あいびー。 そのごっ! DXVA

 ニコエンコはエンコーダーとしてx264.exeを使っています。
 「本体の設定」にある「変換速度」は、以下のようにx264.exeの「--preset」というオプションに対応しています。

Nicoencspeedconfig

変換速度x264のオプション
最高速 --preset superfast
高速 --preset veryfast
速い --preset faster
普通 --preset medium
遅い --preset slow
低速 --preset slower
最低速 --preset veryslow

 
 表にある通り、「最低速」は「veryslow」に対応しているのですが、
 このプリセットは「--ref 16 --bframes 8」となるプリセットのため、
 IntelのGPU(IvyBridgeよりも前のIntel HD Graphicsなど)を使っている環境で
 FlashPlayerのハードウェアアクセラレーションを有効にした状態で見ると
 映像が崩壊してしまう可能性が高くなります

ハードウェアアクセラレーションでの映像崩壊状態をキャプチャした動画。
これだけひどく映像が崩れてしまいます。まともに見れません。

 メーカー製ノートPCなどではIntel HD Graphicsが採用されているものが多いですし
 投稿者としてはより多くの視聴者に快適に見てもらうことが大事だと思います。
 そのためには、「変換速度」は「普通」または「遅い」にしておいたほうがよいでしょう。
 「低速」は「--ref 8」となるプリセットなので、同じ問題が起きる可能性もあります。
 したがって「低速」もなるべく避けたほうがよいでしょう。

 
■注意点2.トップ画面の「動画を変換する」ボタンによる自動変換ではなく、
          メニューの「手動変換」を使ってエンコードしたほうがよい。

 手動変換を使ったほうが良い理由は3つあります。

    理由1.「ニコニコ動画 プレミアム会員」で使う場合、極度に高いビットレートが指定されることがあるので
         プレミアム会員が使う場合は自動変換ではなく手動変換にしてビットレートを調整したほうがよい。

    理由2.16:9の動画は自動変換だと512x288にリサイズされてしまうので、
         手動変換で640x360などを指定するか、「画面サイズを変更しない」にチェックを入れて
         リサイズ無しで元動画のサイズのままエンコードしたほうがよい。

    理由3.自動変換では音声のビットレートがやや高めなので少し削って映像に回したほうがよいかもしれない。

 それぞれについて以下に理由を示します。

 ●理由1について(高ビットレートになることがある件)

  「ニコニコ動画」や「ニコニコ動画 エコノミー回避」の場合は、ビットレート制限やファイルサイズ制限により、
  常識的な範囲でビットレートが指定されるので問題はありません。
  しかし、「ニコニコ動画 プレミアム会員」の場合は、ビットレート制限はなくファイルサイズ制限だけなので、
  元映像によっては、極端に高いビットレートが指定されてしまうことがあります。
  極端な例を挙げると、1920x1080の30fpsで長さ1秒の無圧縮AVI(1.5Gbps)をエンコードしようとすると、
     映像770Mbps、音声256kbps、変換後のファイルサイズ99.7MB
  という設定でエンコードしようとします。

Nicoencbitrateconfig

  これはx264のオプションでいうと、「--bitrate 770955」です。
  770kbps(キロ)ではなく770Mbps(メガ)であるところに注目して下さい。かなりとんでもないビットレートです。
  これは極端な例ですし、元ファイルのビットレートも考慮して計算しているようなので、
  必ず高くなるというわけではありませんが、ファイルサイズぎりぎりになるビットレートを
  狙ったりするので数Mbpsになることも多いようです。
  確かに高画質にはなりますが、必要以上にダウンロード負荷や再生負荷が跳ね上がってしまい、
  快適に視聴することができなくなってしまいます。

  例えば、こちらの動画はニコエンコの「最低速」でエンコードしたもので、MediaInfoで調べてみると
  「--bitrate 8611」となっており、約8Mbpsを指定しています。
       

  試しにこの動画を落として、AviUtlを使って品質基準VBRで「--preset veryslow --crf 20」として
  かなり高画質になるようエンコードしてみましたが、ビットレートは約1200kbpsで済みました。
  YoutubeではフルHD(1920x1080)でも6Mbps程度ですので、サイズ512x288で8Mbpsは明らかに異常と言えるでしょう。
  640x360サイズの動画であれば、最大でも1500kbpsくらいあれば十分なことが多いと思います。
  あまり動きのない動画であれば数百kbpsでも十分なことも多いでしょう。
  そういったことを考慮して、手動変換で直接ビットレートを指定したほうが良いと思われます。

 ●理由2について(16:9の動画解像度が512x288になってしまう件)

  現在のニコニコ動画に512x288で投稿し、16:9プレイヤーで見た場合、
  640x360に拡大して表示されることになるため画質が下がって見えてしまいます。
  16:9の動画であれば、「手動変換→詳細設定」の「画面サイズの指定」で
  640x360などを指定してエンコードしたほうが良いでしょう。
  4:3の動画については512x384になりますが、こちらは特に問題ないと思います。

  また、2012/5/1からニコニコ動画でZeroWatchの大画面モードが導入されましたが、
  これにあわせた適切な解像度は、16:9なら864x486、4:3なら648x486となります。
  大画面モードにあわせて映像を作ってあるのなら、このサイズを指定すればよいでしょう。

Nicoencresconfig

 ●理由3について(音声ビットレートの件)

  ニコエンコで指定される音声ビットレートは、デフォルトでは以下のようになっています。

    プレミアム会員・・・256kbps
    一般会員・・・96kbps
    エコノミー回避・・・48kbps

  これをどう捉えるかは人それぞれですが、個人的にはもう少し音声ビットレートを減らして
  その分を映像ビットレートに回してもよいような気がします。個人的には

    プレミアム会員・・・64~128kbps
    一般会員・・・64kbps
    エコノミー回避・・・32kbps

  くらいでいいんじゃないかと思います。
  無論これは映像メインの動画の場合であり、自作楽曲を投稿するような場合は
  音声ビットレートは高めにしておいたほうがよいと思いますが。

 
そんなわけで、私個人としては、ニコエンコを使う場合は
  ・変換速度は「普通」か「遅い」にする。
  ・手動変換を使い、ビットレートや解像度を適切に設定する。
という使い方をお勧めします。

 
■その他備考

 ●ニコエンコは基本的には--presetをほぼそのまま使って2パスエンコードを行なう。
  独自に設定しているオプションは以下の項目だけだと思われる。

    --b-pyramid none --min-keyint 1 --keyint フレームレートの10倍 --colormatrix bt470bg

  --b-pyramidは別にnoneにしなくても良いような気がする。
  (PSPとかで見るようなものはnoneにする必要があるらしいけどPCで見るならデフォルトのnormalでいいんじゃないかと)

 ●「標準変換」や「ビットレートを指定しない」での変換は「品質基準VBR」でのエンコードとなる。
  「ビットレートを指定しない」で選択できる「品質」と「x264の--crfオプション」の対応は以下のとおり。

Nicoenccrfconfig

品質x264のオプション
高画質 --crf 15
良画質 --crf 18
普通 --crf 21
低画質 --crf 26

 
 ●変換速度を「普通」「遅い」にした場合でも、そこそこ綺麗にエンコードできるはずではあるが、
  もっと細かく調整できればx264の性能を生かして更に高画質・高圧縮でエンコードできるのも事実。
  以前の記事に示したとおり、「つんでれんこ」では付属のプリセットで色々調整されている。
  また、つんでれんこのプリセットを自分で書き換えたり、AviUtl+拡張x264出力(GUI)Exなどを使えば
  自分好みの細かいエンコード設定も可能となる。
  興味のある人はニコニコ動画まとめWikiなども参考にして挑戦してみると良いかもしれない。

    エンコード設定 - ニコニコ動画まとめwiki

    aviutl_h264 - ニコニコ動画まとめwiki

    拡張 x264 出力(GUI)Exの設定項目とその機能について - ニコニコ動画まとめwiki

|

« AviUtlと拡張x264(GUI)Ex 1.13までは10bit-depthのBT.709エンコードをするのは難しかった(1.14で対応済) | トップページ | HuffyuvS(末尾にSがつくもの)は基本的に使わないほうが良いというお話 »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1278146/43117555

この記事へのトラックバック一覧です: ニコエンコ v0.77を使う場合の注意点:

« AviUtlと拡張x264(GUI)Ex 1.13までは10bit-depthのBT.709エンコードをするのは難しかった(1.14で対応済) | トップページ | HuffyuvS(末尾にSがつくもの)は基本的に使わないほうが良いというお話 »