VirtualDubでのH.264動画作成チュートリアル

Last-modified: 2009-04-18 (土) 13:17:41

VirtualDubでのH.264動画作成チュートリアル

このページではすでにH.264コーデックやNeroAACエンコーダなどがすでに導入されている前提で進みます。
まだ導入されてない場合はググってなんとか入れてください。

注意事項

  • VirtualDubではaacが扱えませんので他のアプリケーションを使用して音声をエンコードすることになります。

用意するもの

  • VirtualDub(1.7.5~1.8.8ならこのとおりでいけるかと。)
  • AVIファイル(FrapsやDxtoryなどで撮影したもの)
  • aacエンコーダ(iTunesやfooberなど)
  • Yamb

作成方法

  • ファイルを開く
    「ファイル→ビデオファイルを開く」で指定しても直接ドラッグアンドドロップでも構いません。
    1.jpg

  • AVIセグメントの追加Frapsのみ必要
    Frapsでは4GBごとにファイルが区切られてしまいますので追加読み込みしないといけません。
    4.jpg

  • 入力ソースと出力ソースを見やすくする
    必要な作業ではありませんが、ビデオの画面を右クリックすることで表示するサイズを変更できます。
    元動画と出来る動画の比較をしたいのならば変更しておいたほうが見やすいと思います。
    2.jpg

  • 入力ソースと出力ソースのサイズを変更するとこのような画面になります。
    デフォルトでは左側が入力、右側が出力です。
    3.jpg

  • 動画のIN点とOUT点を決める
    編集の必要がないのなら必要はありませんが、一部分を抜き出したい、などという場合には使うことになります。
  1. はじめにIN点まで頭出しをして、キーボードの「Home」キーを押します。
  2. 次にOUT点まで頭だしをして、キーボードの「End」キーを押します。
    この2つの作業で作成する動画の範囲を決定します。
    また、この作業をしない場合は1フレーム目から最後のフレームまですべてが作成されます。
    I-O.jpg
  • 音声の書き出し
    VirtualDubではaacファイルを扱えないため、先に音声をwavで書き出してしまいます。
    「ファイル→WAVEファイルの保存」をクリックして、適当な名前をつけて保存をクリックします。
    このとき、動画と同じ名前のほうがわかりやすくてよいかと思います。
    savewav2.jpg
  • 音声を切る
    上の書き出し作業が終わったらVirtualDubでは音声は必要なくなるため、音声を使わない設定をします。
    「音声→音声なし」をクリックするだけです。
    nosound.jpg
  • フィルターをかける
    ここまで作業が終われば次は動画の詳細に移ります。
    まずは動画のサイズを決めるためにリサイズフィルターをかけます。
    下の画像ではソース動画が600*480となっています。
    アスペクト比が4:3である640*480にするために、左右で40ピクセル分黒ベタを足す作業が必要になります。
    このときはフレームのオプションにあるレターボックス/切り出しのサイズにチェックをいれ、640*480とします。
    これで最終的に出来上がる動画のサイズが640*480のサイズに変更されます。
    また、DxtoryやFrapsでスケーリングが100%で解像度が大きい場合も、このサイズのオプションで変更します。
    解像度を小さくする場合はフィルターのLanczos3を選んでおくときれいになるそうです。
    以下の表はベタつきでの個人的なお勧めの解像度です。
    アスペクト比解像度ニコニコ動画用解像度
    4:3640*480512*384
    5:4640*480512*384
    16:9720*480512*288
  • 小ネタ。多分こっちのほうがわかりやすい。
    1440*900のワイド画面だけどよくわかんないから4:3の動画にするよーって場合
    フレームのオプションで640*480に指定してから
    サイズのオプションのアスペクト比を入力と同じにチェックを入れ、新規設定を絶対指定にして、
    1440になっている部分を640にすると自動的に640*400に変更され、上下に黒ベタをつけてくれます。
    resize.jpg
  • フレームレートの設定
    フレームレートは動画の滑らかさを決めます。
    fpsが高いと当然ぬるぬるした動画になります。
    ですがその分再生側のPCにスペックを求めるようになり、1fps辺りに使えるサイズも小さくなります。
    高画質を狙うのであれば60fpsではなく30fpsがよいのではないでしょうか。
    • 下の画像の例で説明します。
      ソースレートのところに表示されているfpsは現在のフレームレートで、現在は60fpsとなっています。
      ソースレート調整はいじってはいけません。これをいじると音声とシンクしなくなってしまいます。
      いじるのはフレームレート変換です。「数値(fps)で指定する」にチェックを入れ、30と入力すると動画が30fpsで出力されます。
      frameratechange.jpg
  • 圧縮の設定
    「映像→圧縮」をクリックすると下のような画面が出ます。
    画像は加工されていますので現在選べるすべてのコーデックが表示されていますが、普通はスクロールが必要になります。
    圧縮に必要なコーデックをクリックし、設定ボタンを押します。
    ここではH.264動画作成をする前提ですので、「x264-H264/AVC encorder」を選んでください。
    compression.jpg
  • x264の設定
    下の画像では4枚のタブを1枚の画像にまとめました。
    細かい設定などはググってください。
    ひとまず今回は2passでのエンコードの方法を紹介します。
    • 1パス目の設定
      一度もH.264エンコードしたことがない人であればSingle Pass - Quantizerになっていると思いますので、Multipass - Firstpassを選択します。
      選択したらTagret Bitrateに目的のビットレートを入力します。
      ビットレートの目安を表にしました。
      アップ先ビットレート最大容量
      GAVIE.net1500kbps550MB
      ニコニコ動画(一般)600kbps40MB
      ニコニコ動画(プレミアム)800kbps100MB
      Zoome1500kbps200MB
      →ビットレート計算機

と、ここで音声のことを思い出してください。
先ほど、VirtualDubではaacが扱えないために、音声を別に書き出したと思います。
音声のビットレートの分を引いた動画用のビットレートを入力してください。
この画像の例ではGAVIE.netにアップする予定で、音声を32kbpsにする予定ですので、
1500-32=1468(kbps)となっています。
x264.gif

  • バッチエンコード登録
    2パスエンコードでは1パス目のファイルも2パス目のファイルもそれ単体でエンコードしてしまうとちゃんとした動画になりません。
    そのためにバッチ登録して一気にエンコードする必要があります。
    ここではその手順を紹介します。
    • 1パス目の保存
      例では「1pass」という名前で保存しています。
      バッチエンコードをする必要がありますので、左下のチェックがついていることを確認してから保存を押してください
      1pass.jpg
  • 2パス目の設定
    Multipass - Nthpassを選択します。
    ビットレートは1パス目で設定してあるのでいじる必要はありません。
    そのままOKを押してください。
  • 2パス目の保存
    例では「2pass」という名前で保存しています。
    バッチエンコードをする必要がありますので、左下のチェックがついていることを確認してから保存を押してください
    2pass.jpg
  • VirtualDub1.9.0を使ってる人向け
    上記のやり方は1.8.8までのもので、1.9.0では微妙にやり方が変わってます。
    1パス目、2パス目ごとにバッチ処理にキューを入れる→名前をつけて保存をしてください。
    それ以降は同様の手順でできます。
    vd190.jpg
  • エンコード開始
    2パス目もバッチ登録したら、「ファイル→ジョブコントロール」をクリック、もしくはF4キーをおしてジョブコントロールウィンドウを出します。
    エンコード登録されている順番が1パス目→2パス目になっていることを確認したら「Start」ボタンをクリックします。
    このときに順番が2パス目→1パス目になっている場合は、OKボタンの下にある「上へ」「下へ」ボタンで順番を入れ替えます
    jobcontrol.jpg
  • エンコードの終了
    エンコードが終わるとStatusの欄が「Done」になり、下の画像のようになります。
    end.jpg
  • 出来上がったファイルの確認
    出来上がったファイルの確認をします。
    保存先のフォルダを開くと、下のようにいくつかのファイルが出来ているかと思います。
    できたファイルで必要なものは2pass.aviとwavファイルですので、そのほかのファイルは削除してしまっても構いません。
    一応画像にあるファイルの説明だけすると、
    • 1pass.avi
      2パス目ための設定ファイルです
    • 2pass.avi
      H.264エンコードされた動画ファイルです
    • x264-1.stats
      1パス目のファイル作成時の設定ファイルです
    • x264-2.stats
      2パス目のファイル作成時の設定ファイルです
    • VirtualDub1.avi
      元動画です
    • VirtualDub1.wav
      元動画から範囲指定して切り出した音声ファイルです
      result.jpg
  • 以上でVirtualDubでの動画作成は終了です。
    次は今作成された動画と音声を結合して、動画を完成させます。

音声のエンコード

foobar2000を使用した音声エンコードを解説します。
iTunesでもなんでもいいので、とりあえずaacファイルが作れれば自分の使いやすい物で構いません。
以下の内容はすでにAACコーデックをインストールして設定してあるという前提で進めていきます。
わからない場合はググったりして自分でなんとかしてください。

1.変換するファイルを右クリックする

aac1.jpg

2.右クリックしたらConvert → ...を選択。

一度設定してしまえば次回からはLastUsedをクリックするだけで自動的に作成できます。
aac2.jpg

3.初回はaacの設定がVBR 175kbpsあたりのしかないので、動画用の設定を作成します。

More Settingsをクリック。
aac3.jpg

4.設定をする。

・Encorder - 使用するエンコーダを選びます。今回はAACファイルを作成するのでMP4(Nero)を。
・Mode - Target Bitrate(CBR, for streaming use)を選んで固定ビットレートにします。
ここでVBRやABRにしてしまうと、ビットレートの無駄は省けますが音ズレの原因になります。
・Quality - 任意のビットレートを選択します。AACは圧縮率の割りに音質がいいので、32kbps~48kbpsでもそこそこの音質です。
aac4.jpg

5.エンコードの開始

画像は3と同じものですが、この画面でOKをクリックすることでaacにエンコードすることが出来ます。
aac3.jpg
エンコード中は下のウィンドウが表示され、プログレスバーが右端まで行くとエンコード終了です。
Show output tracks when done のチェックをはずしておくと、エンコードが終了次第この画面が閉じられます。
aac5.jpg

Yambを使った動画と音声の結合

  1. VirtualDubでできた動画ファイルとaacファイルを結合します。
    Yambを起動すると以下の画面になりますので画面で青く変わっている部分をダブルクリックします。
    1_0.jpg
  2. Addボタンを押すとファイルを選ぶ画面になりますので、Ctrl+クリックで動画ファイルと音声ファイルを選んでから開くをクリックします。
    3_1.jpg
  3. 音声と動画のファイル名を確認します。結合するファイルが正しければNextをクリックします。
    5.jpg
  4. 結合が終わりました。
    終了するにはFinishボタンを押します。
    7.jpg
  5. Yamb終了の確認です。
    続けて他のファイルも結合する場合はNo、終了する場合はYesをクリックしてください。
    これでmp4ファイルが完成しました。
    8.jpg

VirtualDubで音声を切らずに動画作ってしまった場合の対処法

音声ありでエンコードしてしまったファイルをYambで読み込むと下の画像のようになります。
※画像は例なので、生ファイルを読み込ませています。エンコードした場合はRGBの部分がH.264になります。
また、読み込ませる順番によっては変わってきますので、適宜読み替えてください。
1段目 VirtualDub.avi RGB 17m22s 338Mbps-600*480
2段目 VirtualDub.avi MPEG1 Audio Layer3 160kbps 2Ch 44KHz
3段目 VirtualDub.m4a AACLC-SBR 4mn12ms 32kbps 2ch 44KHz
ここで2段目を選択して、右のDeleteボタンをクリックすると削除するかどうかの画面になりますので、
Yesをクリックすることで元の音声を使わずにH.264ストリームとAACストリームを結合することができます。
9.jpg

おまけ

Yamb2.0.0.8の中途半端に日本語化した言語パックを作ってみました。
使い方はzipを解凍してインストールしたフォルダに上書きしてからYambを起動します。
その後、Settingsをクリックしたら出てくるAdvanced~をダブルクリックして
左側のYambをクリック、Languageを「Castellano」にするだけです。
この場合、Castellanoの言語ファイルでは使えなくなってしまいますが、
必要があればlangフォルダの中にあるCastellano.iniを削除し、Castellano.ini.bakをCastellano.iniにリネームすることで元に戻すことができます。
ただし、使用は自己責任でお願いします。
不利益を被ってもうp主は補償できません。
lang.zip