AviUtlを使ったMP4 (H.264) エンコード
目次
概要 †
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.準備 †
- 動画の用意
当然ですが、ニコニコ動画に投稿したい動画は自分で用意しましょう。動画の作成から始めたい、という人は動画の作り方ページなどを参照して下さい。
- AviUtlの勉強
AviUtlと、それに関するフィルタ・プラグインを使用するので、まずは初心者の為のAviUtl導入方法(2004/01/21更新)を読んでおきましょう。
- ソフトウェア・プラグインの用意
以下のソフトウェア・フィルタ・プラグイン等を必要に応じて展開・配置、インストールしておきます。他のプラグインは、AviUtl オリジナルプラグイン公開サイト@wikiや、ICZの剣を参照すると勉強になります。
- GPU対応フィルタの用意
処理にGPU*4の使用が可能な環境の場合、以下のようなフィルタを使うことで、CPUとの分散処理、時間短縮を実現します。GPU環境ではない場合は読み飛ばして下さい。
- 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-LC | HE-AAC | HE-AACv2 | エンコード 所要時間の目安 |
| 映像 | 音声 | 映像 | 音声 | 映像 | 音声 |
| 5分 | 330 | 320 | 590 | 64 | (不適) | 30分 |
| 10分 | 320 | 192 | 480 | 64 | (不適) | 1時間 |
| 15分 | 230 | 128 | 300 | 64 | (不適) | 1時間30分 |
| 20分 | 170 | 96 | 200 | 64 | (不適) | 2時間 |
| 25分 | 120 | 96 | 150 | 64 | (不適) | 2時間30分 |
| 30分 | 115 | 64 | 125 | 56 | (不適) | 3時間 |
| 40分 | (不適) | 85 | 48 | 100 | 32 | 4時間 |
| 50分 | (不適) | 65 | 40 | 85 | 24 | 5時間 |
| 60分 | (不適) | 55 | 32 | 80 | 20 | 6時間 |
- ビットレート計算手順の例
ビットレートの数字*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の音声のみの別ファイルに変換して用意して下さい。
- AviUtlで、[ファイル] → [開く] でエンコードしたい動画を開きます。
- 上記のような事例に当てはまって、エンコードしたい動画の音声を外部でWAVファイルにして用意した場合
[ファイル] → [音声読み込み] を選択し、用意したWAVファイルを開きます。これにより、エンコードしたい動画のMP3などの音声は使われず、「エンコードしたい動画の映像」と「用意したWAVの音声」がエンコード対象になります。
- [ファイル] → [プラグイン出力] → [拡張x264出力(GUI)] を選択し、出力ファイル名を適当に入力します。ただし、出力先フォルダ内にあるWAVファイルと同名だけは避けて下さい。エラーになります*6。なおファイルの種類は必ずMP4(*.mp4)に設定して下さい。
- [ビデオ圧縮] ボタンを押すと【拡張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でもない限り非実用的) |
| サブピクセル精度 | 9 | 6 |
※数値を上げるほど、高圧縮で高画質が期待できるが要長時間 例えば5から6にすると1割程度圧縮率向上 |
| ベクトル探索範囲 | 16 |
| 彩度動き予測 | オン(ほとんど動きがない動画ならオフ) |
| 動き予測方式 | Auto |
| 詳細設定 | SAR | 0:0 |
| スレッド数 | 0。使用スレッド数。0で自動設定 |
| ノイズ除去 | 0 |
| RD最適化 | All MB Encode | NONE |
| マトリックス | flat |
| ログ表示 | NONE |
| チェックボックス | インターレース保持以外すべてオン |
| デブロックフィルタ | 強度・閾値 | オン(+2から-2程度。通常は0) |
| その他 |
Adaptive Quantization | モード | VAQ |
| 強度 | アニメでは0.00~0.60 実写、CG等は0.50~1.00程度 |
| Psy-RD | RDO | アニメでは0.00~0.40 実写、CG等は0.00~1.00 |
| Trellis | 0.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.エンコードの開始 †
エンコードが始まると時間がかかるので、出かける前や寝る前などに実行するのが良いでしょう。
- 上表のように設定したら [バッチ登録] ボタンを押します。なお、ここで [バッチ登録] ボタンの代わりに [保存] ボタンを押すと、すぐにエンコードが始まりMP4が出力されます。次の手順の「バッチ出力終了時に」の機能が不要であればこちらで。
- [ファイル] → [バッチ出力] を開きます。任意で「バッチ出力終了時に」から [ウィンドウズをシャットダウン][AviUtlを終了] などを選択することもできます。
- [開始] ボタンを押すとエンコードが始まりMP4が出力されます。もし、エンコードをしてる最中にエンコードを一時停止させたい場合は、メニューの [その他] → [バージョン情報] を表示させるとよい。
6.完成 †
- 完成しました。アップロード前にFLVプレイヤーFlavie(ニコニコ動画での再生と同じFlashPlayerを利用して再生できる)等のソフトで再生を確認しましょう。
- 問題なければSMILE VIDEOにアップロードしましょう。
その他の方法 †
AVI出力から作成する方法 †
プラグイン出力をうまく導入できない人がいるのでAVI出力からの動画作成方法を記載します。ただしAVI形式ではH.264は正式にサポートされていないので推奨はできません。
- 必要ソフトのダウンロード・インストール
- 動画のエンコード
aviutlを使ったVP6 2pass参照
コーデックがx264になっただけ。設定はプラグイン出力を参考に。
- AVIからMP4へ
MP4Boxを使ってMP4にする。
- 音声の変換と合成
別途SwitchなどでAACを作成してMP4Boxを使って動画と合成。
音声を後から合成する方法 †
- まずWAVE出力を行う。
- Switch等を使い、WAVE→AACへ変換する。
- MP4BoxとYambを同じ場所に置き、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だけ遅らせることができます。
- 入力されたストリームを、全て結合して出力します。
- mp4ファイルは内部にストリームと呼ばれる単位で別個のデータを保存しています。
- ストリーム1は映像、2が音声。大体は。それ以外のものが入っているとニコニコに弾かれる。
- 詳しくは-infoオプションを使って見てみましょう。
- それぞれの入力の前に"-cat"とつけるか"-add"とつけるかで、挙動が異なります。
- addなら新しくストリームを0:00から始めます
- catなら既に存在する同種のストリームのお尻に連結します
- #によるストリーム指定は任意です。 "#video"または"#audio"のどちらか。
- :を使っていくつかのストリーム入力オプションを指定することができます。 オプションの度に:を書きます。
- 出力先のファイルがすでに存在していた場合上書きでなく追加を行うので注意して下さい。
トラブル対策 †
音声だけで映像が無いファイルができる †
- 他の回避方法
- 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) と表示されます。
コメント †