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

AviUtl最終更新日現行の最新バージョン
2008/08/30version0.99f

目次


概要

ニコニコ動画の仕様

  • 当初はプレミアム会員のみH.264動画の投稿が可能でしたが、2008年7月5日より一般会員でも投稿できるようになりました。
  • 正式なコンテナは「MPEG-4 Part 10 AVC」です。プロファイルはベースラインプロファイル、またはメインプロファイルが推奨です。
  • 固定フレームレートが推奨で、VFR等の可変フレームレートは正しく処理されない場合があります。
  • 最大許容ビットレートは、プレミアム会員が800kbps、一般会員が600kbpsです。
  • 音声AACは「HE-AAC(44.1kHz/48.0kHz・32kbps~64kbps推奨)」、または「AAC-LC(44.1kHz/48.0kHz・64kbps~96kbps推奨)」が対応しています。
  • MP4コンテナには映像1チャンネル、音声1チャンネルのみ対応です。その他の音声・映像の多重化は対象外です。
  • 解像度制限があるようです。800x600までは問題ないのを確認。800x640ではサーバサイドエンコードされました。
  • ファイルサイズの最大は40MBです。
  • オーディオ情報の無い動画はサーバサイドエンコードされます。無音の動画を作る際は無音の音声ファイルと合成させましょう。
  • これらの仕様を満たさない場合は通常の動画として扱われ、通常のサーバサイドエンコードの対象となります。
  • エンコードにあたっては「zoome Wiki Encode」も参考にして下さい。

FLV4 (VP6+MP3) との違い

  • エコノミーの発動条件は8月30日時点でビットレート合計が一般会員は約311kbps以上、プレミアム会員は約244kbps以上(一度仕様が変わったことがあります。今後も要注意)、再生数1000以上でエコノミーモードになります(VP6は一般会員もプレミアム会員もビットレート合計が約310kbps以上、再生数1000以上でエコノミー)。
  • 基本的にはVP6より高速に圧縮できます。ただしスペックや設定によって大きく変化します。x264.exeはマルチスレッドに対応しているため、高性能なPCほどVP6との速度差が開きます。
  • エンコードの際、上下反転するバグがないので余計な手間がかかりません。
  • 高度な動き検出やレート配分、Bフレームのおかげで動きが激しい動画でもVP6に比べて綺麗に圧縮できます。逆に動きの激しい部分にレートを取られるため、静止画部分はVP6の方が綺麗な場合があります。
  • 音声 (AAC) は特に低ビットレート(大体80kbps以下)においてMP3よりかなり綺麗に圧縮できます。160kbps以上のビットレートであれば著しい差は発生しませんが、概ねAACの方が良質です。

手順

1.準備

  • 当然だけど、ニコニコ動画に投稿したい動画は自分で用意しましょう。動画の作成から始めたい、という人は動画の作り方ページなどを参照して下さい。

1.必要ソフト・プラグインの準備

2.リサイズと黒べた

3.バッチ登録

A.シングルパスでエンコード

  • シングルパスでのエンコード方法です。
  • 上下反転はしないで下さい。H.264では不要です。
  • 元ファイルの音声がMP3などで圧縮されていると出力されないので、外部でPCM-WAVにしてから「音声読み込み」して下さい。
  1. AviUtlで、[ファイル] → [開く] でエンコードしたい動画を開きます。
  2. [ファイル] → [プラグイン出力] → [拡張x264出力(GUI)] を選択し、ファイル名を入力します。
  3. [ビデオ圧縮] ボタンを押すと【拡張x264出力(GUI)】ウィンドウが表示されます。以下の項目は最低限設定しましょう。

    ビットレートタブ内設定
    映像シングルパス - 固定ビットレート←ココ重要
    ビットレート500(※1 元ファイルにより最適値は変化)
    null出力チェックボックス→オフ
    音声エンコーダNeroAACエンコーダ
    エンコード設定HE-AAC(32kbps~64kbps)
    AAC-LC(64kbps~96kbps)推奨
    処理モードパイプ
    拡張設定タブ内設定
    拡張設定初期Delayカットチェックボックス→オフ (※2 使うべきでない)
    TimeScale4倍精度チェックボックス→オフ (基本的に使うべきでない)

  4. 設定したら [保存] ボタンを押します。コレでエンコードが開始されます。

B.マルチパスでエンコード

  • 2pass、または3pass以上することでシングルパス以上の画質が見込めます。「拡張x264出力(GUI)」の「x264.748.release4」以降を導入しないと手間が増えるので注意しましょう。以下の説明は全て「x264.748.release3」以降を導入していることを前提とします。
  • 上下反転はしないで下さい。H.264では不要です。
  • 元ファイルの音声がMP3などで圧縮されていると出力されないので、外部でPCM-WAVにしてから「音声読み込み」して下さい。
  1. AviUtlで、[ファイル] → [開く] でエンコードしたい動画を開きます。
  2. [ファイル] → [プラグイン出力] → [拡張x264出力(GUI)] を選択し、ファイル名を入力します。Npass_Encode等分かりやすい名称が良いでしょう(エンコードが上手く行ったらリネームしておこう)。ただしVP6と違って1stPassファイル自体は出力されません。最後の本番エンコードのみファイルが作成されます。
  3. [ビデオ圧縮] ボタンを押すと【拡張x264出力(GUI)】ウィンドウが表示されます。メニューの [プリセット] から「NicoNico?:SP1」プリセットを呼び出し、以下の項目を設定しましょう。

    ビットレートタブ内設定
    映像マルチパス - Nth PASS←ココ重要
    ビットレート500~720(※1 元ファイルにより最適値は変化)
    null出力チェックボックス→オン←ココ重要
    自動マルチパスチェックボックス→オン、数値は2~3推奨
    (例:3を指定すると2回nul+1出力の計3回エンコード)
    あまり多くても意味は無い上逆効果に成る事も。
    音声エンコーダNeroAACエンコーダ
    エンコード設定HE-AAC(32kbps~64kbps)
    AAC-LC(64kbps~96kbps)推奨
    処理モードパイプ
    他タブ内設定
    拡張設定初期Delayカットチェックボックス→オフ (※2 使うべきでない)
    TimeScale4倍制度チェックボックス→オフ (基本的に使うべきでない)

    • ※1
      このbitrate設定の目安は40MBで使用できるビットレート早見表を参照するとなんとなくつかめるはず。SP1で上限が800kbpsに変更されたので、アップ可能な有効実ビットレート値は検証データ待ち。実ビットレート850kbps程度でアップ成功の例有り(過去の話)。2008/03/14以降、仕様変更により、828kbps付近が限界である。
    • ※2
      オフにすることで固定フレームレートにできる。チェックを入れていると可変フレームレートになり、スマイルビデオにうpした時に弾かれる恐れがある。

  4. 設定したら [バッチ登録] ボタン、もしくは [保存] を押します。[保存] ボタンを押した場合は直ちにエンコードが開始されますので下記の「エンコードの開始」操作は不要です。

4.エンコードの開始

  • [ファイル] → [バッチ出力] を開き、[開始] ボタンを押すとエンコードが始まりMP4が出力されます。時間がかかるので、出かける前や寝る前などに実行するのが良いでしょう。「バッチ出力終了時に」から [ウィンドウズをシャットダウン] などを選択することもできます。
    • 初挑戦時は10~20秒程度のファイルで練習推奨! 長い動画は編集ソフトで切り取りましょう。

Tips

AVI出力からの作成法

  • プラグイン出力をうまく導入できない人がいるのでAVI出力からの動画作成方法を記載します。ただしAVI形式ではH.264は正式にサポートされていないので推奨はできません。
  1. 必要ソフトのダウンロード・インストール
    • 上記(プラグイン出力の場合)と同じもの
    • x264vfw encoder Unofficial build
      インストーラのJPNのものをダウンロードしインストール。上記のH.264の出力プラグイン内のvfwでもかまわないがプラグインを認識しないのであればこれをインストールしてしまう方が良いと思う。
    • pthreadGC2.dll
      ダウンロードし、"C:\Windows\System32"内にインストール。
  2. 動画のエンコード
    aviutlを使ったVP6 2pass参照
    コーデックがx264になっただけ。設定はプラグイン出力を参考に。
  3. AVI→MP4
    MP4Boxを使ってMP4にする。
  4. 音声の変換と合成
    別途SwitchなどでAACを作成してMP4Boxを使って動画と合成。

音声を後から合成する

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

複数のmp4動画の結合・合成

  • MP4Boxを使用することで、以下の動画を結合することができます。
    • 同解像度
    • 同ビットレート(動画のビットレートは多少違ってもおk?)
    • 同fps(タイムスケール変更で対処可能?)
  • YambはMP4BoxのGUIフロントエンドですが、結合などの処理に関しては最低限のオプションしか使用できないので、コマンドラインを使える人はMP4Boxを使うことをお薦めします。

MP4Boxの概要

mp4box [入力...] 出力
入力 ::= (-cat|-add) 入力1[#ストリーム][:オプション...] (-cat|-add) 入力2[#ストリーム][:オプション...] ...

mp4box -info 情報が欲しいmp4ファイル
  • 入力されたストリームを、全て結合して出力します。
    • mp4ファイルは内部にストリームと呼ばれる単位で別個のデータを保存しています。
    • ストリーム1は映像、2が音声。 大体は。 それ以外のものが入っているとニコニコに弾かれる(?)
    • 詳しくは-infoオプションを使って見てみましょう。
  • それぞれの入力の前に"-cat"とつけるか"-add"とつけるかで、挙動が異なります。
    • addなら新しくストリームを0:00から始めます
    • catなら既に存在する同種のストリームのお尻に連結します
  • #によるストリーム指定は任意です。 "#video"または"#audio"のどちらか。
  • :を使っていくつかのストリーム入力オプションを指定することができます。 オプションの度に:を書きます。
  • 出力先のファイルがすでに存在していた場合上書きでなく追加を行なうので注意してください。
  • 大抵の場合、映像と音声の尺は微妙に異なるため多くの動画を連結すると音ズレが発生します。
    • infoオプションで映像と音の尺の違いを確認しましょう
    • 入力の際に、:の後にdelay=***と書くことで任意のストリームを任意msだけ遅らせることができます。

音声だけで映像が無いファイルが出来る問題について

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

拡張 x264 出力(GUI)の設定項目とその機能について

拡張 x264 出力(GUI)の設定項目とその機能について


コメント

 
お名前:
  • 音声と映像を別に出力して、上に書いてある通りにYAMBで合成したんですが、完成したmp4を見ようとすると、「ムービーに不正なサンプルが含まれています」と出て再生できません。どうしたもんでしょうか? -- tomi? 2008-09-07 (日) 22:02:12
  • 合計ビットレート600付近でノンプレミアムだが、再生数1000を越えてもエコノミー発動せず。再生数1000/日って事かな? -- 2008-09-07 (日) 00:37:14
  • せめてどこまで導入したにも拘らず音声が全てノイズになるのか言ってくれ…拡張 x264 出力(GUI)に同封されている「readme.txt」に書かれているモジュール(あると便利かも?も含む)全部突っ込んでもノイズになるのか? -- 2008-09-06 (土) 20:33:31
  • ニコニコに投稿するなら20~30fpsが限界 -- 2008-09-05 (金) 18:37:17
  • そもそも一般会員は600kpsまでしか無理 プレミアムは800kpsだが -- 2008-09-03 (水) 00:04:13
  • 一般会員ですが600~656kpsの動画をアップロードできないことが多いです。 -- 2008-09-01 (月) 22:01:18
  • 映像は出るのですが、音声が全てノイズで耳レイプ…orzどうしたらよいのでしょうか? -- 2008-08-31 (日) 19:11:32
  • 画質テストに秒速5センチメートルPVを使っていたら消された。をぃ -- 2008-08-30 (土) 20:39:00
  • Aviutlに動画ファイル突っ込んだら映像がおかしくなったんですが・・・ -- 2008-08-30 (土) 04:47:28
  • 60フレームで撮影した動画をmp4にすると、kpsをいくつに設定しても1000kps超えのファイルが出来てしまうのですが、対処法はありませんか? -- 2008-08-27 (水) 21:10:37
  • ニコニコ高画質でエンコしたら動画の途中で音声だけ少し巻き戻ってそこから戻った分、動画と音声がずれるんだけど、なぜだろうか? -- 2008-08-27 (水) 13:48:35
  • 下のものですが解決しました。すいません -- 2008-08-26 (火) 05:10:42
  • x264のrarファイルを解凍してもx264gui.iniファイルが手に入りません。 -- [[ ]] 2008-08-26 (火) 04:33:54
  • 0秒くらいにノイズ入るのですがなんでですかね? -- 2008-08-20 (水) 22:06:29
  • ↓500って合計じゃないよな?映像500なら、音声がいくらか知らんけど1MBはいくだろ -- 2008-08-20 (水) 18:26:42

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


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS  ニコニコ関連記事のRSS 
Last-modified: 2008-09-03 (水) 13:42:42 (4d) Site admin: takechan
Powered by はてなウェブサービス SimpleAPI