mencoderで動画をエンコードすると音量が小さくなる問題とAutoMen v6の使い方について

 動画を作るとき、色々あって音量が小さくされてしまう。その問題について少し調べてみた。
 動画といっても基本的に演奏動画で、ピアノを弾いているところをビデオで撮って録音とミックスするだけなので、特に凝ったものを作る気はない。ショパンの歌曲全集を録音したらちょっと気合いの入ったものを作ってもいいかと思っているけどまだまだ先になりそうだし。
 今回、WindowsMovieMakerで音量を色々といじれることを知って、音量が大きくなる設定で作ってみた。
 手順としては、録音・録画→SoundEngineでカット&音量+5dB*1→WindowsMovieMakerで音と画像を合わせる→mp4で出力→mencoderでFLV変換、という手順。世の中mp4が主流になっている気がするのだけど、敢えてFLVにするのはmencoderでの変換は細かい設定ができることと容量が小さくなるというメリットがある。伊達に時間を掛けて変換しているわけではない。
 ちなみにWindowsMovieMakerはVersion 2012(Build 16.4.3505.0912)となっている。今回の調査には先日録音した「世界樹の迷宮II 新たなる冒険の舞台へ。」を使う。音の解析は基本的にSoundEngineの解析ツールで最大音量を調べる。また、mp4はmp4tomp3を使って、FLVはflvstillを使ってmp3に変換してから音量を調べる。

 取り敢えず以下に各編集段階の音量を列記していく。

音源ソフト音量(dB)
オリジナル--11.07
+5dBSoundEngine-6.07
mp4WindowsMovieMaker-6.63
FLVmencoder-12.64

 WindowsMediaPlayerの設定は"プロジェクト→オーディオバランス"を100%音楽側へ、"オプション→音楽ボリューム"を音量MAXとした。デフォルトだとこの2つはどちらも真ん中なので、ビデオの音量と音楽の音量が半々で入ることになり、音量は半分となる。ビデオの音量はさすがに邪魔なので常に消音しているけど、これまでは音楽ボリュームをデフォルトにしてきたので音量は小さめだった。そこで、以前の状態を再現するためにオーディオバランス:100%音楽側、音楽ボリューム:50%で音量を分析したところ、-6.61となった。変わっとらんやん! 試しに再生しながら音楽ボリュームのつまみを動かしてみると、50~100%の間では殆ど変わらず、小さい方に動かすと急激に変化する。何か人間の耳が対数スケールで音量を認識していることを完全に失念しているような仕様になっている。マイクロソフトの中の人アホなの?
 さて、そんなこんなで音量が小さい問題はWindowsMediaPlayerにはないことがわかった。

 FLVにする工程でどういうわけか音量を半分にしているmencoderについて見てみよう。
 MOBILEHACKERZに次の記述を発見した。


端末によっては、動画再生時の音量が小さめで全体的に音量を上げてエンコードしたい場合があります。そのような時に、あらかじめ設定を変更しておくことで変換時に音量を調整することができます。
ffmpegの-volオプションを追加して調節してください。-vol 256が標準の音量になりますので、音を大きくしたい場合は-vol 768などとしてオプションを書き加えます。
-vol 128で約-6dB、-vol 512で約+6dBの変化が得られます。
バージョン0.31以前は、-vol 100が標準の音量でした。0.32以降、標準値が変更されています。

 このあたりに原因があることは間違いなさそう。小一時間ほどこの問題にあたってみたのだけど、結局良く分からなかった。DOSプロンプトからなんか弄るのか、ソフトのバージョンが違うのか、OSが違うのか。コンピュータは難しいなあ、と言って諦めた。
 その代わりと言っちゃなんだけど、リサーチの過程でAutoMenというソフトの存在を知った。使い方を説明しているサイトがあって、これなら出来そうだな、という気になった。
 早速ダウンロードして起動してみる。

 上でリンクした使い方を説明してるサイト、ぼくんちのTV別館とは違うものが出てきた。ぼくんちのTV別館で紹介しているのはAutoMen5.1、僕がダウンロードしたのはAutoMen v6.1571.319となっている。なるほど、色々と変わるわけだ。
 そんなわけで、ぼくんちのTV別館はあんまり参考にならなくなったけど、ここまで来たらテキトーにやれば出来るんじゃあないかな、とか思ってやってみた。
 ・・・・動画変化できない。
 取り敢えず、テキトーに設定を選んでEncodeを押してみたところ、DOS窓(何か書いてある)が現れれて一瞬で消えてしまった。エラーが起きたんならそれでもいいんだけど、報告をしてほしいものだ。何も言わずに消えてしまう。ダメダメである。
 色々いじってみた結果、Summary→Target Format→Encode withを"X264, MP4"にしたら変換できるようになった。何でかわからないけど、ソースと同じ設定である必要があるのかな。
 ・・・・音が出ない。
 早速、変換終了した動画を再生してみるけど、音が出ない。ここまでやることなすこと一々躓いていると、いい加減気力も底をつくわけで、やってらんねーぜ、といって投げ出したくなる。
 とか何とか愚痴をたれつつも色々いじったら結局できたわけでした。Audio→Audio Codecを"AAC Audio"にしたら出来た。
 ここまで読むと、"X264, MP4"と"AAC Audio"だけ合わせればよいと思われるかもしれないけど、他の箇所も色々いじっているのでこれだけの所為だとは断言できない。原因の一つで間違いがないというだけしか言えない。
 一応、デフォルトからいじった部分を全部紹介しておく。ぼくんちのTV別館みたいに丁寧に全部説明したりはしない。

Summary

 ①②Encode with:X264, MP4。これは上で書いた通り。
 ③Pass to do: 2 pass。1 passよりも2 passの方がより丁寧なエンコードをする。mencoderのときからそうしている。
 ④Preset:右端。このツマミは左に行くほどエンコードを短時間にして画像を荒く、右に行くほどエンコードに時間をかけて画像を綺麗にするというもの。下に目盛りの名称らしきものが出る。"X264 placebo"とか。元動画との違いが気のせいなのか、1個左の目盛りとの差が気のせいなのか。英語なのでドライアドは出てこない。
 ⑤Video Options: 5 MB。これは調度よい値を入力する。ここを入力すると上の緑の欄"Video Bitrate"がそれに合わせて上下する。ちなみに小数点以下は受け付けない。オーディオビットレートを128kbpsとして、なおかつビデオビットレートとオーディオビットレートの合計値が300以下*2になるようにするつもりであるため、ビデオビットレートは172以下にする必要がある。テキトーに数値を入力して172以下になったらOK。

Video

 ⑥Allow Resize:チェックを外す。動画のサイズを弄りたいときはここに手を加えるのだけど、僕の場合はWindowsMediaPlayerで512×384でMP4ファイルを作ってしまうので、サイズを変えてほしくない。
 ⑦Frame Pattern:Change FPS to 29.97。29.97FPSていうのはテレビ放送のフレームレートっていうのはどうでもいいのだけど、AutoMenを起動して、動画ファイルを読み込ませたときに、「フレームレートを23.976に変えるか」と聞かれた。フレームレートを変えると動画の動きが滑らかでなくなるので好きではない。どういうわけか選択肢に「No Change」というのがなかったので、元のままの29.97となるものを選んだ。

Audio

 ⑧Audio Codec:AAC Audio。上で説明した通り。AAC Audioというのがどんなフォーマットなのかは知らない。
 ⑨Sampling:44100。ここはデフォルトの"Auto"で問題はないと思ったんだけど、試行錯誤する過程でソースと同じ設定にした部分が残ってこうなったのだと思う。
 ⑩Normalize Audio Track:チェックを外す。ノーマライズというのは最大音量を0dBに合わせるということ。折角最初に+5dBして音量を統一するという操作しているのにノーマライズしてしまっては意味が無い。

Filters, Program path, Queue
 この3つについてはデフォルト設定のまま手を加えていない。

 以上より、当初の目的は達し、音量の大きいままでエンコード出来たと思う。ちなみに、最終的にFLVにはならず、MP4形式となった。
 出力されたファイルの音量を調べたところ、-6.80dBとなっていた。-6.63→-6.80なので少し小さくなっているが、これまでの-6.63→-12.64よりは遥かに良くなったと思う。
 折角なので比較用に2者を置いておく。
 FLV(-12.64dB, 5.67MB)
 MP4(-6.80dB, 5.08MB)


*1 革命のエチュードを録音したときに、この曲の一番音量の大きい部分を0dBになるように全ての録音で揃えることにした。それが+5dBであり、その後のほとんどの録音で+5dBにして編集している。まれに0dBを上回ることがあるが、その場合はその時の気分によって、音量を小さくするか、コンプレッサーをかけるか、リミットをかけるかして0dB以下にする。
*2 以前、ニコ動では300kbps以下で投稿しないと勝手に再エンコードされてしまったので、投稿前に300kbps以下のファイルを作る必要があった。多分、今はもっと大きい値になっていると思う。