AviUtlでH.264エンコード

今回はAviUtlを使ったH.264エンコードです。
H.264といえばちょっと前に話題になった気がしますが気のせいですかね?
AviUtlというソフト、動画編集に非常に重宝するソフトですが、エンコードにも使える優れものですね。
最近、すごい使うようになってきました。
日本語の解説も多いので、安心ですね。

で、問題のエンコードですが、AviUtlをインストールしたらすぐ使えるわけではありません。ちょっと必要なものをダウンロードして、設定しなくちゃいけません。

じゃ、早速いきましょう。


◇ダウンロードするもの

これがないと始まりません。

H.264出力プラグイン。これを使えば「プラグイン出力」に 拡張 x264 出力(GUI)Ex が追加されます。
同封された「readme.txt」「x264guiEx_readme.txt」を読んだ方がいいと思います。

  • Microsoft Visual C++ 2008 SP1 再頒布可能パッケージ (x86) Download

出力するために必要なのでインストールしておきます。

H.264にエンコードするためのプログラムです。
32bitOS使用者は32bit 8bit-depthのミラーのどれか、64bitOS使用者は32bit 8bit-depthか64bit 8bit-depthのミラーのどれかを選びます。
わかりやすいところに置いておきます。(後述)

音声のAACAAC-LC/HE-AAC/HE-AACv2エンコードに使いますが、実際に必要なのは「neroAacEnc.exe」だけ。
わかりやすいところに置いておきます。(後述)

mp4ファイルの結合や音声合成(MUX)等をするのに使う。らしいです。
わかりやすいところに置いておきます。(後述)

◇設定

ダウンロードしてきたものを消化していきます。

AviUtilをインストール。特に書くことはないはず。

終わったら、Aviutlのプラグインフォルダにさっきダウンロードしたx264guiEx.auo、x264guiEx.ini、x264guiExDefault.iniの3つを放り込んでください。

Microsoft Visual C++ 2008 SP1 再頒布可能パッケージ(vcredist_x86.exe)を実行

[次へ(N) >]

同意するにチェック → [インスト-ル(I) >]

[完了(F)]

ダウンロードした残りの○○.exeを、わかりやすい場所に置いておきます。

自分はaviutlのインストールフォルダの下に「h264」ってフォルダ作ってそこにまとめておきました。こんな感じですね。(↓)

ここで、AviUtilを起動して設定をしていきます。

  • [設定] → [圧縮の設定] → [プラグイン出力の設定]
    → [拡張 x264 出力(GUI)Ex] → [設定]

早速設定します。が、ここでひとつ先に余談。
エンコードには2種類あります。一つはシングルパスエンコード、もう一つがマルチパスエンコード。

シングルパスエンコードは、一回の走査でエンコードを終わらせます。普通ですね。

じゃあマルチエンコードは何なのかというと、複数回の走査でエンコードをするんです。予想通り。
マルチパスの場合、走査回数で名前があって、2回なら2passエンコード、3回なら3passエンコードといいます。

2passエンコードなら、実際にエンコードしているのは最後(2回目)です。

じゃあ1回目は何をしているのかというと、ビットレートの変動を記録してるようです。

1回目にどこでビットレートが少なくてすむか、多くないといけないかを見つけることで、効率よくデータを使えるということですね。

ちなみに3pass以上にしたところで、2passとそんなに変わらないそうです。むしろ劣化する場合もあるとか。

というわけで、ここから先は2passエンコードだと思って書いていきます。

○右側設定画面

  • エンコーダ:NeroAACエンコーダ
  • neroAacEnc.exeの指定:自分が置いた場所。
  • エンコード設定:上に行くほど高音質。下に行くほど高圧縮。AAC-LC推奨。
  • 2pass:オン
  • 処理モード:WAV
  • mp4box.exeの指定:自分が置いた場所。

○左側設定画面


●基本タブ

  • x264.exeの指定:自分が置いた場所。
  • (その下):マルチパス – Nth PASS
  • ビットレート:当然大きい方が高画質だけど圧縮率は低い。(後述)
  • null出力:オン
  • 自動マルチパス:オン、2(推奨)
  • ターボ:オン
  • 速度:速さ優先ならMedium、遅くてもいいならveryslow
  • チューニング:None
  • プロファイル:High

●出力,その他タブ

  • H.264 Level:SD解像度なら3程度、HD解像度なら4.0か4.1

上記以外は特にさわる必要がないと思います。

[OK]

おわり!

ファイルに出力するときは、[AVI出力]じゃなくて、
[プラグイン出力] → [拡張 x264 出力(GUI)Ex]で。

◇ビットレートについて

一応ビットレートについて。

ビットレートというのは、1秒間(単位:s)に何ビット(単位:bit)のデータ量にするか、という意味。
1秒毎につき何ビットか、bit per second の頭文字をとって「bps」という単位になります。

同じ映像でも、この値が小さいと画質が落ちます。(四角い何かがいっぱい見えるようになる。)
元動画の解像度なんかが絡んでくるので「一般的に○○bpsにすればいい」とかはむずかしいですが、まぁ高ければ当然画質はあがります。
で、この値をうまく設定すると、「ファイルサイズを○○MB以内にエンコード(圧縮)したい」ということができます。

たとえば、「20分の動画を100MBに動画を圧縮・エンコードしたい」ということがあるとします。

  • 20分は何秒なのかを考える。

20[min]×60=1200[sec]
小学生の算数の問題でした。

  • 100MBに詰め込めるデータ量(単位:Kbit)を考える。(1Byte=8bit)

100[MB]×8×1024×1024÷1000=838860.8≒838861[Kb]
というわけで、100MB = 838861Kb のデータ量ということがわかります。

  • 1秒間で使える平均のデータ量を考える。

838861[Kb]÷1200=699.0508333…≒699[Kb]
平均で約700Kb のデータを1秒間に使えることがわかりました。

  • このうち映像部分(not 音声部分)に使えるデータの量を考える。

動画のビットレート=映像のビットレート+音声のビットレート なので、
ここで音声のビットレートが影響してきます。
AAC-LC 96[kbps]ならさっきの699から96を引きます。
ちなみにAAC-LC 96[kbps]でだいたいCD音質。
699-96=603[Kb]

  • 動画のヘッダ情報分のデータ量やビットレート設定のブレを考慮する。

きりのいい数字まで切り下げておけばいいと考えてる。
というわけで、この場合設定すべきビットレートは 600Kbpsということになります。

経験則から、500Kbpsを下回る動画はモザイクみたいに見えます。(見にくい)


さて、今回はこんな感じにしましょう。

エンコードは、最初は意味わかんなかったけど、最近、少しは理解できた。

いや、まだわからなくて保留にしてるところはあるんだけど。

まぁいずれわかってかけたらいいな、なんて。

ないないw
というわけで、それでは。

  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存