AviUtlを使ったMP4 (H.264) エンコード

必須アイテム名現行の最新バージョン最終更新日
AviUtl0.99i52010/02/22
拡張 x264 出力(GUI)x264.1471.release032010/03/07
MP4PluginMP4Plugin_201003062010/03/07
DirectShow File Reader プラグイン for AviUtl0.26a2009/11/23
Nero AAC Codec1.5.4.0(※DL名はNeroAACCodec-1.5.1.zip)2010/02/18

目次

概要

1.ニコニコ動画の仕様

  • 動画をアップロード(投稿)する際、一定条件を満たさないとサーバーサイドエンコード(ニコニコ動画(smilevideo)側で動画が再エンコード)され、大抵は画質が落ちてしまいます。しかし、一定条件を満たしたFLVか、当ページで解説している一定条件を満たしたMP4の形式にエンコードしてから動画をアップロードすると、その画質のままサーバーサイドエンコードを回避してニコニコ動画で視聴することができます。
  • 2008年3月5日から対応したMP4(H.264)、当初はプレミアム会員のみH.264動画の投稿が可能でしたが、2008年7月5日より一般会員でも投稿できるようになっています。
  • 正式な名称は「H.264/MPEG-4 Part 10 Advanced Video Coding」(通称H.264/AVC)です。プロファイルはベースラインプロファイル、またはメインプロファイルが(一応)推奨です。なお使用できるコンテナ(ファイルフォーマット)はニコニコ動画の場合はMP4のみとなっています。
  • 最大ファイルサイズは、プレミアム会員が100MB (104,857,600 byte)、一般会員が40MB (41,943,040 byte) です。ディスク上のサイズではなく、本サイズの数値ということに注意! 最大許容ビットレートは、映像と音声の合計で、プレミアム会員は無制限、一般会員は656kbpsです。
    • ββ(2008年12月12日~)からの仕様変更により、プレミアム会員は最大ファイルサイズが40MB→100MB、最大平均ビットレートが828kbps→1049kbpsへと増加しました。
    • (9)(2009年10月29日~)からの仕様変更により、プレミアム会員は最大平均ビットレートの制限がなくなりました。ファイルサイズの制限は100MBのまま、変更はありません。
  • エコノミーモードの発動条件は、ビットレート合計がプレミアム・一般共にMP4では約245kbps以上で、なおかつ再生数500以上の場合です。
    • 2009年1月17日時点、○245.26kbps、×246.11kbps。FLVは依然312kbpsの模様。
    • 2009年2月26日、発動条件が再生数1000から500へ、時間帯は平日18時~26時、土日祝日は12時~26時に変更。
  • MP4コンテナには映像1チャンネル、音声1チャンネル【ステレオ/モノラル】のみ対応です。その他の映像・音声(副音声、サラウンドなど)の多重化は対象外です。
  • 映像の解像度は4:3では512x384、16:9では512x288が表示の基本。一般会員の場合、800x600以内は問題ないのを確認。それを上回ると解像度制限に引っかかるようで、例えば800x640ではサーバーサイドエンコードされてしまいます。なお、プレミアム会員には最大解像度の制限はありません。
  • 音声AACは以下の3種を使用します。
    • AAC-LC(44.1kHz/48.0kHz・320kbps~88kbps推奨)
    • HE-AAC(44.1kHz/48.0kHz・80kbps~48kbps推奨)
    • HE-AACv2(44.1kHz/48.0kHz・40kbps~16kbps推奨)
  • オーディオ情報のない動画はサーバーサイドエンコードされます。無音の動画を作る際は無音の音声ファイルと合成させましょう。
  • これらの仕様を満たさない場合は通常の動画として扱われ、通常のサーバーサイドエンコードの対象となります。
  • サーバーサイドエンコードされない仕様で投稿した際にも「エンコード中です…」としばらく表示されますが、これはエコノミー用の低解像度動画 (FLV,on2VP6,QVGA?) が新規にサーバーサイドエンコードで生成されるためです。エコノミーモードが発動しなければちゃんと投稿動画の画質で再生されます。エコノミー回避条件も満たして投稿すれば「エンコード中です…」表示は全く表示されないか短時間で終了するはずです。

2.AACの種類

AAC-LC、HE-AAC、HE-AACv2はABRに該当し、品質をコントロールし目的のビットレートに収めます。

  • AAC-LC : 一般的にAACと呼ばれている物です。通常はこれを選びましょう。
    • 高音質(低圧縮)。
    • ジャズやクラシックなど、音に奥行きや深みがあり全体が落ち着いているBGM向き。
    • およそ80kbps以下の低ビットレートには不向き。
  • HE-AAC(AAC-LCの高圧縮タイプ) : 80~48kbps程度の低ビットレートで音の破綻を防ぐのに効果があります。
    一方でそれ以上のビットレートを割り振っても、音質は上がりにくいという性質があります。
    • サントラやアルバムなど、1つの動画で長い時間BGMが流れる動画向き。
    • ポップ、ロック、トランス、演歌など、所々でテンポが変わるBGM向き。
    • 長時間の動画でビットレートをあまり割り振れない場合。
    • 短い再生時間の動画で、画質重視したい場合。
  • HE-AACv2(AAC-LCの超高圧縮タイプ) : 40~16kbps程度の超低ビットレート時に用います。
    • 実況プレイ動画や中継動画など、長時間の収録が必要な場合。
    • 120分を超えるサントラやメドレーおよび作業用BGMなど、非常に長い動画を作成する場合。
    • 極限まで画質に容量を割り振りたい場合。
    • 古いラジオや単純な効果音など、元々低音質なものを軽く仕上げたい場合。

低ビットレートでの特性(HE-AAC=aacPlus v1, HE-AACv2=aacPlus v2)

3.FLV4 (VP6+MP3) との違い

  • 基本的にはVP6より高速に圧縮できます。x264.exeはマルチスレッドに対応しているため、高性能なPCほどVP6との速度差が開きます。
  • エンコードの際に上下反転するバグがないので、余計な手間がかかりません(上下反転を回避する手段も実はある)。
  • 数々の新技術のおかげでVP6と比べてH.264は綺麗に圧縮できます。
  • 音声 (AAC) は特に低ビットレート(大体80kbps以下)においてMP3よりかなり綺麗に圧縮できます。192kbps以上であれば著しい差は発生しませんが、概ねAACが良質です。
  • シングルコアのCPU(Pentium4、PentiumM、AthlonXP等)の古いマシンでは、VP6よりデコード負荷が高いと言われています。特にCABACを有効にしたり、Bフレームを多用すると負荷が高くなります。

手順

1.準備

  1. 動画の用意
    当然ですが、ニコニコ動画に投稿したい動画は自分で用意しましょう。動画の作成から始めたい、という人は動画の作り方ページなどを参照して下さい。
  2. AviUtlの勉強
    AviUtlと、それに関するフィルタ・プラグインを使用するので、まずは初心者の為のAviUtl導入方法(2004/01/21更新)を読んでおきましょう。
  3. ソフトウェア・プラグインの用意
    以下のソフトウェア・フィルタ・プラグイン等を必要に応じて展開・配置、インストールしておきます。他のプラグインは、AviUtl オリジナルプラグイン公開サイト@wikiや、ICZの剣を参照すると勉強になります。
    • AviUtl
      ダウンロードしzipを展開。パスの都合上、C:やD:等、ドライブ直下にフォルダを置くことを推奨。
      • 拡張 x264 出力(GUI)
        H.264出力プラグイン。同封されている「readme.txt」を必ずよく読んでおくこと。ダウンロード先は
        2.プログラム → 改造したソフト → x264 詰め合わせ → x264.○○○.rarの最新版
        更新頻度が高いソフトだが、基本的には最新版で良い。解凍したら出てくる「auo」フォルダ内の「x264gui.auo」と「x264gui.ini」を、AviUtl.exeがある階層に入れる。
      • MP4Plugin
        AviUtlに読み込んだMP4の編集を行うためのプラグイン。入力とエクスポートの2種セット。ダウンロード先は
        2.プログラム → 改造したソフト → MP4Plugin → MP4Plugin_○○○.rarの最新版
      • Lanczos 3-lobed 拡大縮小 0.5.5a (09/04/03)
        定番拡大・縮小フィルタ。SSE2、マルチスレッド対応。
      • ResizeFilter (09/10/17)
        多種多様なアルゴリズムを搭載した拡大・縮小フィルタ。SSE2、マルチスレッド対応、アセンブラで組んであるため、Lanczos 3-lobed 拡大縮小 0.5.5a (09/04/03)より高速。中でもSpline36はLanczos3より滑らかでアニメ向きな上、容量も小さくできてニコニコ動画向き。
      • UVダウンサンプリングフィルタVer.0.6.0
        色差情報の補間をまったくしてくれないFlashPlayerの低性能をごまかすのに最適なプラグイン。YUV420:Lanczos2あたりをすべてのフィルタの一番最後にかければ、文字やアニメキャラ等の線のギザギザが軽減される可能性大。
      • MPEG-2 VIDEO VFAPI Plug-In 0.6.57 (09/04/22)
        MPEG2系ファイル(DVDなど)をAviUtlで読み込めるようにする。MPEG2系ファイルの読み込みに関しては↓よりも無難。ただし一部の音声形式は読み込めないので、読み込めない場合は音声を別ソフトで読み出すように
      • DirectShow File Reader プラグイン for AviUtl 0.26a
        Windows Media Playerが読み込めるファイル等を扱えるようにする入力プラグイン*1ffdshowをインストールして連携させるとより多くのファイル形式も読み込み可能。
    • Microsoft .NET Framework 2.0 Service Pack 2
      拡張 x264 出力(GUI)の必須コンポーネントその1*2
    • Microsoft .NET Framework 2.0 Service Pack 2 (x86) 日本語 Language Pack
      拡張 x264 出力(GUI)の必須コンポーネントその2*3。Macには未対応。
    • Microsoft Visual C++ 2008 SP1 再頒布可能パッケージ (x86)
      拡張 x264 出力(GUI)の必須コンポーネントその3。
    • Nero Digital Audio 1.5.4.0
      (DL名はNeroAACCodec-1.5.1.zipとなっているが、ZIPを展開するとneroAacEnc.exeのみ1.5.4.0に更新されている。) 拡張 x264 出力(GUI)の必須モジュール。音声のAACAAC-LC/HE-AAC/HE-AACv2エンコードに使う。実際に必要なのは「neroAacEnc.exe」のみ。入れる場所は自由だが、入れた場所は後に指定する必要があるので覚えておくこと。AviUtl.exeがある階層に入れると覚えやすいかもしれない。1.3.3.0から2passABRの挙動が変化(改善)している。
  4. GPU対応フィルタの用意
    処理にGPU*4の使用が可能な環境の場合、以下のようなフィルタを使うことで、CPUとの分散処理、時間短縮を実現します。GPU環境ではない場合は読み飛ばして下さい。
    • NL-Means filter 0.14 (2008/12/13)
      綺麗で特にアニメに向くNR(ノイズリダクション)フィルタ。効果は絶大だけどGPUに多大な負荷をかける為、熱暴走や電源容量不足に注意。
    • NL-Means Light for GPU (2010/01/24)
      nodchip氏作のNL-Meansフィルタの改造版。上記ソフトより3倍程度の高速化が期待できる模様。
  5. AviUtlの設定
    AviUtlページ参照の上、設定を行いましょう。

1.5.インターレースの解除

ニコニコ動画等で採用されているAdobe Flash Playerでの再生では、予めインターレースは解除しておく必要があります。インターレースについては、ASCII.jp:縞シマノイズを完全消去!【インターレース解除編】|エンコードテクニック虎の巻を参照して下さい。AviUtlでとりあえずインターレースを解除する場合は、「設定→インターレースの解除→(自動 または 二重化 の好きなほう)」が無難かと思われます。

2.クリッピング、黒ベタ付加、リサイズ

アスペクト比や拡大縮小、黒べた等についてを参照して下さい。

3.音声ビットレートと映像ビットレートの決定

音声ビットレートと映像ビットレートを決する目安は、100MBと40MBで使用できるビットレート早見表や、下記の「ビットレート設定 一覧表」や「ビットレート計算手順の例」を参照すれば、なんとなくつかめるはず。

  • 映像ビットレート
    場合によりますが、ただの1枚絵なら5kbps以下、動きの少ない紙芝居や画像のスライドショー等なら30kbps以下まで落とせます(ただしノイズが出るようであれば落としすぎ)。余った分を音声に割り振れます。
  • 音声ビットレート
    モノラル化は結構効果があります。音を左右に振る必要のない音源などは特に、128kbpsのステレオと64kbpsのモノラルが(ジョイントステレオを考えなければ)近い音質になるので、事前にWAVをモノラル化すれば音声ビットレートを約半分に抑えることができます。また、サンプリング周波数の低周波化でもビットレートを抑えられます。WAVファイルの段階で、例えば48kHzを24kHzに、44.1kHzを22.05kHzに変換すれば、ビットレートを半分に減らせます。サンプリング周波数を低くするほど高周波成分が欠けるので、音楽もメインな動画では避けるべきですが、喋りは高周波成分が少ないので実況や語りがメインの動画ならあまり気にならないはず。ただし変換は音声編集の最後にやりましょう。サンプリング周波数の異なるデータを繋げると再生速度が変わったり色々おかしくなりがちです。
  • ビットレート設定 一覧表
    あくまでも一例ですので、必ずしもこの通りにやる必要はありませんが、参考程度にしておくと良いでしょう。当たり前のことですが、画質重視か音質重視かによって数値が異なりますし、フレーム数にもよります。
    所要時間は目安です。お使いのPCスペックや設定により所要時間が大きく異なります。
    この表のビットレート割り当ては、一般会員で40MB上限近くまで使っての例です。プレミアム会員で100MB使う場合は、おおよそ2.5倍の余裕があります。
    再生時間AAC-LCHE-AACHE-AACv2エンコード
    所要時間の目安
    映像音声映像音声映像音声
    5分33032059064(不適)30分
    10分32019248064(不適)1時間
    15分23012830064(不適)1時間30分
    20分1709620064(不適)2時間
    25分1209615064(不適)2時間30分
    30分1156412556(不適)3時間
    40分(不適)8548100324時間
    50分(不適)654085245時間
    60分(不適)553280206時間
  • ビットレート計算手順の例
    ビットレートの数字*5はあくまで一例です。画質重視か音質重視かによっても数値が異なります。
    手順一般会員プレミアム会員
    (1)作る動画の再生時間を調べ、秒に直します。(例として10分の場合) 10[分]→600[秒]
    (2)ニコ動のファイルサイズ上限をkb(キロビット)に直します。40[MB]×8×1024×1024÷1000
    =335544[kb]
    100[MB]×8×1024×1024÷1000
    =838861[kb]
    (3)ファイルサイズを再生秒で割り、
    おおよその最大ビットレートを求めます。
    335544÷600=約559[kbps]838861÷600=約1398[kbps]
    (4)ニコ動の最大ビットレート制限を越えないようにします。
    (一般656[kbps]、プレミアムは無制限)
    559[kbps]1398[kbps]
    (4.5)エコノミー回避優先の場合、そのビットレート制限
    (MP4は245[kbps])も越えないようにします。
    (エコノミー回避優先)
    559 → 245[kbps]
    559[kbps](エコノミー回避優先)
    1398 → 245[kbps]
    1398[kbps]
    (5)設定の自由度が低い音声ビットレート
    先に決めます(目安:AAC-LC 96[kbps]でCD音質)。
    64[kbps]96[kbps]64[kbps]128[kbps]
    (6)最大ビットレートから設定した音声ビットレートを引き、
    仮最大映像ビットレートを求めます。
    181[kbps]463[kbps]181[kbps]1270[kbps]
    (7)ヘッダー情報分確保と、ビットレート設定のブレ対策で、
    少し減らして映像ビットレートを決めます。
    181→
    175[kbps]
    463→
    455[kbps]
    181→
    175[kbps]
    1270→
    1264[kbps]
    FLV(On2VP6+MP3)と比べると、MP4(H.264+AAC)は2passならばビットレートのブレはほとんどありません。

4.バッチ登録

  • マルチパスとシングルパスがあります。
    • マルチパス(推奨
      • 前パスでビットレートの変動を記録し、指定のビットレートに落とし込むためにマルチパス(=2パス以上)が必要となります。
      • ビットレート指定でエンコードする場合、2パスにすれば、シングルパス以上の高画質が見込めます。
      • 基本的に2パスで充分です。3パス以上にしても、時間が長くなる割に2パスとの画質差はほとんどありません(むしろ劣化する場合すらあります)。
      • なお、FLV (VP6) でのマルチパスと違って、MP4 (H.264) では最後の本番エンコードのみファイルが作成されます。それまでの中間ファイル自体は出力されません。
    • シングルパス
      • シングルパスは、動画全体のビットレートの変動を詳細には調べず、エンコードを1回だけ行います。
      • 画質や音質にこだわらず、エンコード時間をかけたくない場合はシングルパスで。
  • 初挑戦時は短時間の動画ファイルでの練習推奨! エンコード時間が長く(環境によって再生時間の数倍から10倍以上)かかるためです。長い動画の場合は編集ソフトで切り取るなどして、短いテスト動画を作ってテストしましょう。
  • 初めは10~20秒の動画で、どんな手順でエンコードを行うかの確認だけ。画質の評価には短時間すぎて向きません。もし画質についても評価したければ1~2分以上の動画(3000フレーム以上の動画)が無難。
  • 上下反転はしないで下さい。FLV (VP6) では必要でしたが、MP4 (H.264) では不要です。
  • エンコードしたい動画の音声がMP3やWMAなどで圧縮されていると出力されない場合があるので、事前に外部(別のツールなど)でPCM-WAVの音声のみの別ファイルに変換して用意して下さい。
  • エンコードしたい動画の音声がステレオで、これをモノラルで出力(AACエンコード)させたい場合も、事前に外部(別のツールなど)でモノラルのPCM-WAVの音声のみの別ファイルに変換して用意して下さい。
  1. AviUtlで、[ファイル] → [開く] でエンコードしたい動画を開きます。
    1. 上記のような事例に当てはまって、エンコードしたい動画の音声を外部でWAVファイルにして用意した場合
      [ファイル] → [音声読み込み] を選択し、用意したWAVファイルを開きます。これにより、エンコードしたい動画のMP3などの音声は使われず、「エンコードしたい動画の映像」と「用意したWAVの音声」がエンコード対象になります。
  2. [ファイル] → [プラグイン出力] → [拡張x264出力(GUI)] を選択し、出力ファイル名を適当に入力します。ただし、出力先フォルダ内にあるWAVファイルと同名だけは避けて下さい。エラーになります*6。なおファイルの種類は必ずMP4(*.mp4)に設定して下さい。
  3. [ビデオ圧縮] ボタンを押すと【拡張x264出力(GUI)】ウィンドウが表示されます。''ウインドウ左下の「デフォルト」を押してから以下の項目を設定しましょう。なお、よくわからなければ無理に変更しないことをお薦めします。逆に、項目について知りたい場合は拡張 x264 出力(GUI)の設定項目とその機能についても参考にして下さい。また、ニコニコ動画にアップされている各種H.264解説動画の設定ぶりを参考にするのもアリです。

    マルチパス用の設定推奨シングルパス用の設定
    音声エンコーダNeroAACエンコーダ
    neroAacEnc.exeの指定右のボタンを押して「neroAacEnc.exe」を入れた場所を指定
    エンコード設定事前に決定した音声ビットレート(に近いもの)から好みで選択
    AAC-LC (320kbps~88kbps) 高音質、標準
    HE-AAC (80kbps~48kbps) 長時間向け
    HE-AACv2 (40kbps~16kbps) 低音質、超長時間向け
    2passオン
    処理モードWAV
    ビットレート
    映像(ココ重要→)マルチパス - Nth PASSシングルパス - 固定ビットレート
    ビットレート事前に決定した映像ビットレートを指定
    nul出力オン←ココ重要オフ
    自動マルチパスオン、数値は2推奨*7
    あまり多くても意味は無いうえ逆効果になることも。
    ターボオン
    デフォルトプリセット速度Medium
    チューニングNone
    プロファイルHigh
    レート設定
    量子化の限度QPの下限ニコニコ動画では10程度が適当
    シーンカットIDRフレーム間隔の下限24や30など、フレームレート辺りが目安
    IDRフレーム間隔の上限シーク間隔。VP6のMax Frames Btw Keys相当
    10秒ごとにシーク可能にするならfps×10を入力。
    マクロブロック
    マクロブロック
    タイプの設定
    チェックボックス4x4, 4x8 and 8x4 Pフレーム動き補償以外すべてオン
    Bフレーム設定Bフレームの最大連続数2~5
    適応的Bフレーム挿入完全
    傾向0
    参照距離3~8
    ピラミッド参照化none又はnormal
    混合オン
    重み付け予測Bフレームオン
    PフレームDisable(現VerのFlashPlayer上ではBlind offset,Smart analysis共にソースによっては映像が破綻する可能性があるのでDisable推奨)
    詳細
    動き予測動き予測アルゴリズム静止画に近い動画なら「Diamond Search」
    どっちつかずなら「Hexagonal Search」
    よく動く動画なら「Uneven Multi-Hexagon」(umh)
    CPUパワーを有り余らせてるなら「Exhaustive Search」(esa)
    CPUパワーと時間を有り余らせてるなら「Hadamard Exhaustive Search」(tesa)
    (下のものほど要長時間で高画質
    下の2つ(esa,tesa)は余程の高性能CPUでもない限り非実用的)
    サブピクセル精度96
    ※数値を上げるほど、高圧縮で高画質が期待できるが要長時間
    例えば5から6にすると1割程度圧縮率向上
    ベクトル探索範囲16
    彩度動き予測オン(ほとんど動きがない動画ならオフ)
    動き予測方式Auto
    詳細設定SAR0:0
    スレッド数0。使用スレッド数。0で自動設定
    ノイズ除去0
    RD最適化All MB EncodeNONE
    マトリックスflat
    ログ表示NONE
    チェックボックスインターレース保持以外すべてオン
    デブロックフィルタ強度・閾値オン(+2から-2程度。通常は0)
    その他
    Adaptive
    Quantization
    モードVAQ
    強度アニメでは0.00~0.60 実写、CG等は0.50~1.00程度
    Psy-RDRDOアニメでは0.00~0.40 実写、CG等は0.00~1.00
    Trellis0.00
    結果出力PSNR、SSIM共にオフ
    スライス数0
    Level自動
    コマンド
    次の通りに手入力(全て半角英数使用)して、[画面に反映] ボタンを押す
    動画の縦解像度が720未満(例:512x384とか)の場合--colormatrix "smpte170m"
       〃   720以上(例:1280x720とか)の場合--colormatrix "bt709"
    拡張設定
    拡張設定初期Delayカットr1400で廃止(それ以前のものならオフ)
    TimeScale4倍精度r1400で廃止(それ以前のものならオフ)
    ビデオ先読みスレッドオン

  • 拡張設定を使用することによって、エコノミー時の画質が著しく低下する場合がある。詳しくは後述のMP4のエコノミー画質が著しく低下する例を参考に。ただし、エコノミー回避できる条件(ビットレート等)を満たした動画を作成するならばオンでもよい。
    なお、r1400でこれらのオプションは廃止されたため、初期ディレイカットはできなくなった。

  • (画質劣化を妥協して)エンコード時間を抑えるコツ
    • Bフレーム設定のBフレームの最大連続数を下げる
    • Bフレーム設定の適応的Bフレーム挿入を「簡易」にする(その場合Bフレームの最大連続数が16のとき最速になる)
    • Bフレーム設定の参照距離の数値を下げる
    • 動き予測アルゴリズムの精度を落とす
    • サブピクセル精度の数値を下げる
    • RD最適化をLast MB Encodeにする
  • (画質劣化を妥協して)再生負荷を抑えるコツ
    • Bフレーム設定のBフレームの最大連続数を1~3程度に抑える
    • Bフレーム設定の重み付け予測をオフにする
    • 詳細設定のCABACをオフにする
    • デブロックフィルタをオフにする
    • プレミアム会員だからといってビットレートを無駄に高くしない
    • プレミアム会員だからといって、やたらでかい動画(1920x1080とか)にしない

5.エンコードの開始

エンコードが始まると時間がかかるので、出かける前や寝る前などに実行するのが良いでしょう。

  1. 上表のように設定したら [バッチ登録] ボタンを押します。なお、ここで [バッチ登録] ボタンの代わりに [保存] ボタンを押すと、すぐにエンコードが始まりMP4が出力されます。次の手順の「バッチ出力終了時に」の機能が不要であればこちらで。
  2. [ファイル] → [バッチ出力] を開きます。任意で「バッチ出力終了時に」から [ウィンドウズをシャットダウン][AviUtlを終了] などを選択することもできます。
  3. [開始] ボタンを押すとエンコードが始まりMP4が出力されます。もし、エンコードをしてる最中にエンコードを一時停止させたい場合は、メニューの [その他] → [バージョン情報] を表示させるとよい。

6.完成

  1. 完成しました。アップロード前にFLVプレイヤーFlavie(ニコニコ動画での再生と同じFlashPlayerを利用して再生できる)等のソフトで再生を確認しましょう。
  2. 問題なければSMILE VIDEOにアップロードしましょう。

その他の方法

AVI出力から作成する方法

プラグイン出力をうまく導入できない人がいるのでAVI出力からの動画作成方法を記載します。ただしAVI形式ではH.264は正式にサポートされていないので推奨はできません。

  1. 必要ソフトのダウンロード・インストール
  2. 動画のエンコード
    aviutlを使ったVP6 2pass参照
    コーデックがx264になっただけ。設定はプラグイン出力を参考に。
  3. AVIからMP4へ
    MP4Boxを使ってMP4にする。
  4. 音声の変換と合成
    別途SwitchなどでAACを作成してMP4Boxを使って動画と合成。

音声を後から合成する方法

  1. まずWAVE出力を行う。
  2. Switch等を使い、WAVE→AACへ変換する。
  3. MP4BoxYambを同じ場所に置き、Yambを使いMP4(またはAVI)とAACを合成する。合成されたMP4を分離することもできます。

複数のMP4動画の結合・合成をする方法

  • x264のエンコードオプション(BフレームやCABACなど)が同じmp4でないと、無劣化での結合・合成は出来ません。エンコードオプションが違う場合は、素直に再エンコードしましょう。なお、目標ビットレートまたはcfrやqp、レート設定などのストリームによってパラメータが変化するオプションは、異なっていても構わないかもしれません。
  • MP4Pluginを使うことで、AviUtlでmp4の結合ができます。結合したい動画を追加読み込みで順に開き、[ファイル] → [エクスポート] → [MP4 Export]を選択し、適当に名前をつけて保存します。[ファイル] → [環境設定] → [システムの設定]で、「追加読み込みしたファイルのfpsを変換しない」にチェックをつけることで、fpsの違う動画やvfrの動画も結合することが出来ます。MP4 File Readerの方がDirectShow? File Readerよりも入力プラグインの優先度が高いことに注意しましょう。
  • UniteMovieを使用することで、以下の動画を結合することができます。ただし、結合に成功しても、必ずしも再生できるとは限りません。
    • 同解像度
    • 同ビットレート(動画のビットレートは多少違っても大丈夫の場合と、再生時にエラーが出る場合がある)
    • 同fps(タイムスケール変更で対処可能?)
  • YambはMP4BoxのGUIフロントエンドですが、結合などの処理に関しては最低限のオプションしか使用できないので、コマンドラインを使える人はMP4Box(後述)を使うことをお薦めします。
    • 大抵の場合、映像と音声の尺は微妙に異なるため多くの動画を連結すると音ズレが発生します。
    • infoオプションで映像と音の尺の違いを確認しましょう。
    • 入力の際に、:の後にdelay=***と書くことで任意のストリームを任意msだけ遅らせることができます。
  • MP4Boxの概要
    mp4box [入力...] 出力
    入力 ::= (-cat|-add) 入力1[#ストリーム][:オプション...] (-cat|-add) 入力2[#ストリーム][:オプション...] ...
    
    mp4box -info 情報が欲しいmp4ファイル
  • 入力されたストリームを、全て結合して出力します。
    • mp4ファイルは内部にストリームと呼ばれる単位で別個のデータを保存しています。
    • ストリーム1は映像、2が音声。大体は。それ以外のものが入っているとニコニコに弾かれる。
    • 詳しくは-infoオプションを使って見てみましょう。
  • それぞれの入力の前に"-cat"とつけるか"-add"とつけるかで、挙動が異なります。
    • addなら新しくストリームを0:00から始めます
    • catなら既に存在する同種のストリームのお尻に連結します
  • #によるストリーム指定は任意です。 "#video"または"#audio"のどちらか。
  • :を使っていくつかのストリーム入力オプションを指定することができます。 オプションの度に:を書きます。
  • 出力先のファイルがすでに存在していた場合上書きでなく追加を行うので注意して下さい。

トラブル対策

音声だけで映像が無いファイルができる

  • x264gui.auoの最新版を導入すればたぶん回避できます。
  • 他の回避方法
    • 1stPASSで「nul出力」をオン、2ndPASSで「nul出力」をオフにする。
    • それでも駄目なら1stPASS終了後にAviutlを再起動してから2ndPASSをする(1stPASSだけバッチ登録→バッチ出力→2ndPASSをバッチ登録→Aviutl再起動→バッチ出力)。
    • QuickTimePlayerで再生してませんか? 出力した.mp4ファイルを再びAviutlで開いてみるか、MediaPlayerClassic?やGomplayer等で再生してみると上手くいってるかもしれません。

エンコード最後に「ファイルの出力に失敗しました」とエラーが出て、映像のみのMP4とWAVの2ファイルができる

入力の動画のPCM (WAV) 音声のサンプリング周波数が、48kHz、44.1kHz、32kHzのいずれか、及びそれらの整数分の一(24kHz、22.05kHz、11.025kHzなど)から少しでもずれている(44.102kHz、22.048kHzなど)場合、neroAacEncが音声ファイルを正常に処理できないため、このエラーが発生するようです。対処法としては、サンプリング周波数を変換したり、元の録音ソフトや機材等で正確なサンプリング周波数を出力するように調整して下さい。

DirectShow? File Readerプラグインで読み込んでエンコードした動画の音声がエコーになる

MP4のエコノミー画質が著しく低下する例

  • MP4で800kbps、または600kbp)、29.97fpsの動画をアップロードした際に、エコノミー時の動画が59kbps、119.880fpsとなる場合がある。これは上記のビットレートとフレームレートでアップロードした場合の、一般的なエコノミー動画よりも、ビットレートが約4分の1でフレームレートが約4倍になっているために、画質が悪く音ズレなども引き起こす、非常にやっかいな不具合である。アップロードされた動画はsmilevideoによってエコノミー時の動画が自動的に生成されるために、smilevideo側に問題があると思われているが、詳細は不明。元のMP4のサイズが512*384、29.97fpsの動画にこのバグが起こりやすいが、まれに24fpsの動画でも同様の症状が確認されている。原因は不明。「可変フレームレート」周りともいわれたが現在は不具合は無くなった模様?
  • x264の初期Delayカット、TimeScale4倍精度等の拡張設定を使用することによって、この不具合が起こる可能性がある。エンコード環境にも依存しそうな問題なので、どうしても使いたい場合は1度アップロードテストをしてエコノミー時の画質を確認しておいた方が良い*8
  • 余談になるが「MP4はエコノミーの動画がひどい」と言われているのは、おそらくこの不具合の影響だと思われる。本来のエコノミー動画は、flvもmp4もあまり変わらないように設定されている。

Tips

低スペックPCユーザーのために動画再生時の負荷を小さくしたい

  • BaselineProfile?(Bフレーム無効・CABAC無効)にするとVP6並の負荷になる。ただし圧縮効率(画質)も下がるので、どちらか一方は有効にするとバランスが良いかも。どちらを無効にした方が良いかは映像の内容によって異なるので、自分でテストしてみる。
    • fpsは高いとその分デコード負担が増える(60fpsなら30fpsの倍かかると思ってもいい)。
    • 解像度が大きい程デコード負荷が増える(512x288より512x384の方が負荷が大きい)。
  • よって512x288動画を黒べたで512x384にすると無駄な負荷増になるので注意。
  • プレイヤーの「コメントを自動受信する」にチェックが入ってた場合、オフにすると再生負荷減。

MP4をツールで解析する

エンコードは終了したけどうまく再生できないといった場合、質問する前にまずは解析ツールで調べてみて下さい。特に質問したい場合、解析ツールでの調べた結果も貼り付けると、答える側が答えやすくなります。

MediaInfo GUI
H.264のエンコードオプションも、表示を「ツリー」以外にすれば全て確認できる。
AVInaptic(本家英語解説)
イタリア語/英語ツール。しかもLinux系ソフトをcygwinによるWindowsエミュレーションで動かしている (?) ので、全角文字の非表示など操作性に難あり。しかしとても詳細な解析データを得られる。H.264のエンコードオプションも全て確認できる。
真空波動研Lite(または真空波動研)
和製コーデックチェッカー。よく使われてはいますが、H.264の解析ツールとしてはあまり役に立ちません。音声AACをNero Digital Audio 1.5.3.0のAAC-LCで作成すると、(音声自体は正常なLCのようですが)Neroの作成するヘッダーはおかしく、それを真空波動研は厳密に解析するためLCではなくHE (LC) と表示されます。

コメント

 
お名前:
  • 拡張x264で、音声をAACじゃなくてWAVEにしたい場合どうすればいい? -- 2010-03-08 (月) 14:13:25
    • colormatrix "smpte170m"を手打ちで入力してたんだが、半角スペースが混在していることにしばらく気づかず2pass設定が無効になってしまっただけでした。お騒がせしてすいません。   無事2passエンコードできました。 -- 2010-02-24 (水) 16:37:48
  • 誤爆った 1回目のエンコードで当然1passと表示されるのを勘違いして言ってるんじゃないだろうな -- 2010-02-23 (火) 20:30:44
  • 1回目のエンコードde当然1passと表示されるのを -- 2010-02-23 (火) 20:28:39
  • ↓自己解決しました。 -- 2010-02-23 (火) 20:27:36
  • 情報ウィンドウで(1pass)としか出ず、一応エンコードはされているのですが2passされていないようで、みなさん2passってでてますか? -- BEE? 2010-02-23 (火) 16:13:24
  • seraphy氏のサイトに繋がらないんだが、鯖が落ちてるだけだろうか・・・。 -- 2010-02-22 (月) 23:01:16
  • ↓同意。AviUtlに音量を最大化するフィルタが付いてる。あと、単純に音量がデカイのに慣れすぎてるのでは・・・。 -- 2010-02-21 (日) 13:30:31
  • ↓知るか。ここは質問コーナーじゃないし標準でそれらしいフィルタもついてるだろ -- 2010-02-21 (日) 03:08:36
  • 音声が小さいような気がするのですがどうしたらいいですか -- a? 2010-02-21 (日) 02:31:20
  • ↓×4 Media Info(英語版)でOverall bit rateと書いてある所がエコノミーの条件を超えてなければ、大抵イケる。 -- 2010-02-19 (金) 09:10:14
  • 「ビデオデーター一時保存用メモリの確保に失敗しました」 と、出た時の解決法ってココに載せた方がいいかな? -- 2010-02-17 (水) 02:50:07
  • 音ズレはHaaliの不具合らしい。GOMプレイヤーとかニコ動では普通に再生される。 -- 2010-02-16 (火) 08:47:59
  • ウチも最新版のGUIで音ズレした。Utlのせいじゃない。 -- 2010-02-15 (月) 23:11:45
  • ヘッダー情報分確保と書いてあるところについて質問させて下さい。Media infoで見ると、映像180kbps音声62.8kbpsで容量17.8MBの動画があります。単純に180+62.8だと242.8kbpsでエコノミー回避の範囲に収まりますが、容量×8×1024×1024÷1000÷秒数で計算すると246.4kbpsと大きく差がでます。もしかしてこれがヘッダー情報分によるものなのでしょうか。そしてこの場合は245kbpsを上回っているとニコニコ動画では判断されてしまうのでしょうか。 -- 2010-02-15 (月) 15:17:31
  • Media infoで見ると、映像178kbps音声62.8kbpsで容量 -- 2010-02-15 (月) 15:03:01

最新の15件を表示しています。 コメントページを参照


ニコwikiサイト内検索
カスタム検索

*1 AviUtl version0.99gから、Frapsで録画したAVIファイルもAVI/AVI2 File Readerで正常に読み込めるようになったので、DirectShow? File Readerの優先度を上げていた人は優先度を下げましょう。
*2 Windows Vista以降はプレインストール済みのはずです。こちらを参照の上、インストール状況を確認してみて下さい。
*3 Windows Vista以降はプレインストール済みのはずです。こちらを参照の上、インストール状況を確認してみて下さい。
*4 GPUとは、PCのグラフィックボードに搭載されている、グラフィック処理に特化したCPUと思えば差し支えないはず。最近はGPUの高性能化により、CPU負荷が高くてもGPU負荷が低くてGPUの性能を持て余す状況や処理が増えているため、GPUに処理を分散させて有効活用しようというのがGPUフィルタ・プラグイン。ソフトウェア側の対応が必要。
*5 ビットレート計算に用いられる「k(1000倍)」と、Windows内のファイルサイズ表示等に使われる「K(1024倍)」は違います。混同しないように(一応「b(=bit)」と「B(=byte、1B=8bit)」も)。フリーウェア等のソフトの中にも間違えているものがあるようです。その場合は作者に教えてあげて下さい。
*6 出力先フォルダに「test.wav」があるときに出力ファイル名を「test(.mp4)」にするとエンコードの最後でエラーになります。
*7 2を指定すると2パス。3を指定すると3パス。3パスだと2回nul+1出力の計3回エンコード。
*8 動画のURL末尾に「?eco=1」を加えると強制エコノミーモード再生になります。
トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS  ニコニコ関連記事のRSS 
Last-modified: 2010-03-07 (日) 09:02:03 (4d) Site admin: takechan
Powered by はてなウェブサービス SimpleAPI