8 : 16 MP3の56Kbps制限への対応

← 8 - 15 p↑ もくじ i 8 - 17 n →

MPEG2(DVD・TV)→AVIでMP3を簡単に使う方法

2003年10月19日
記事ID d31019

DVD・TV→AVI・OGM・MKV入門」と「MP3・Vorbis・AAC―動画音声の話」を組み合わせることで、MP3音声、Vorbis音声、AAC音声の動画はだいたい何でも作成できるはずですが、 音声MP3のAVIを普通に作りたい場合に限定すると、 もっとラクな方法があります(ラクなだけに限界もあります)。

必要となる関連情報として、 ACM(外部ツールを使わない方法)でMP3圧縮を行うときビットレートが上限 56Kbps 24000Hz までしか選択できない問題の対応について、 LAME ACMのインストールを1ステップずつ図解します。全体としては AviUtl から使う話ですが、 この部分は、ほかのツールからMP3を使うときにも、そのまま同じです。 参考として、IISコーデックを使う別方法も簡単に紹介しました。

あらすじ

オーソドックスな(そして応用がきく)方法では、

  1. DVD2AVIを使ってD2Vと音声を分離
  2. D2VをAviutlで開いて映像を圧縮
  3. 音声を別に圧縮
  4. VirtualDubModで映像と音声を再び合体させる

という手順ですが、以下の簡略版では、例えばDVDから出発する場合、

  1. DVD2AVIを使ってD2Vと音声を分離
  2. Aviutlで映像と音声を同時に開いて、それぞれ圧縮しながら、合体させて出力

という2つのステップで済み、「外部エンコーダで音声を圧縮する手間」と「VirtualDubModで映像・音声を合体させる手間」が省けます。

DVD2AVIの操作

AC3音声のDVDの場合

DVD2AVIでVOBを開くところまでは「DVD・TV→AVI・OGM・MKV入門」と同じ。 メニューの「音声」で次のように設定する。

処理対象
音声が一つしかなければ「トラック1」(既定値)のまま何もする必要ない。 二つ以上ある場合、使いたいトラック。例えば1が英語で2が日本語吹き替えとしたら、 そのうちの使いたい方を選ぶ。 今回説明するのは「簡単な方法」なのでマルチオーディオのやり方は扱いません。
出力形式
「WAVで出力」に変更。
音量正規化
選択。 Normalizationという小さい別のダイアログが出るので、 Volume を99にして右上のチェックボックスをチェック。

音量正規化(ノーマライズ)についての詳しいことは、付録を見てください。 ここでやるのは「簡単な方法」なので、 「ドルビーデジタルデコード」メニューはいじらないことにします。 (そういった微妙な処理にこだわるなら、 そもそも16-bit WAVで中間出力せず、 AC3のままBesweetに渡して、直接MP3なりに変換するのが良いでしょう。)

これでプロジェクトを保存すると、D2VとWAVに分離できます。

MP2(MPA)音声の場合

テレビキャプチャーなどで音声がMpeg Audio Layer2のときは、DVD2AVIではWAV化できないので、 音声部分をとりあえず拡張子MPAのファイルに分離します。 このMPAファイルは、拡張子をMP2に変えてfoobar2000でWAV化しても良いですし、 拡張子そのままでぷっちでここなどに渡してWAV化しても良いですし、 自分のやりやすい方法でWAV化してください。

できたWAVを確認

一応念のために、できたWAVをfoobar2000で再生してみましょう。 DVDソースの場合、間違った言語音声のトラックをデコードしてしまっていないか確認しましょう。 TVソースの場合、サンプリング周波数が44100なのか48000なのか再確認しておきましょう (foobar2000のリストで選択して右クリック Show file info → samplerate を見る )。

LAME MP3 ACMのインストール

AviUtlの「ファイル|開く」で問題のD2Vを開き、 次に「ファイル|音声読み込み」で今、分離したWAVを読み込みます。 これでAviUtlには映像と音声の両方が読み込まれており、AVI出力すればいきなり音声付きの完成品AVIになります。 さらに便利なことに、この状態でAviutlでCMカットなどを行うと、カットした部分に対応する音声も同時にカットされます。

さて、「設定|圧縮の設定|オーディオ圧縮の設定」を見てください。 多分、何もインストールしなくても「形式」のリストの中には MPEG Layer-3 という項があるはずです。 ドイツのフラウンホーファー研究所が開発したMP3コーデック(通称FhGまたはIIS)が、 大半のWindowsのシステムディレクトリに既にインストールされているからです(L3codeca.acm)。

参考: FhGはフラウンホーファー・ゲゼルシャフトFraunhofer-Gesellschaft(フラウンホーファー社)の略。IISはインスティトゥート・インテグリーテ・シャルトゥンゲン Institut Integrierte Schaltungen(集積回路研究所)の略。 まあ、ドイツ語の発音はちょっと違うかもしれませんが、要は企業名とその企業内の研究所名です。 急にMP3の特許権を主張して料金を要求したことでイメージが微妙になりましたが(Ogg Vorbis の人気が上がった大きな要因)、 純粋に技術的には優秀な研究所です。

ここで圧縮の設定を選べば、映像のエンコと同時に音声部分もしかるべくMP3にエンコされ、 一気に合体しながらAVI出力されるので、とにかく処理を簡単にしたいというニーズにはぴったりでしょう。

ひとつだけ問題があって、多くのユーザでは上限がステレオで56Kbps (24,000Hz)に制限されてます。56KbpsのMP3などは音が良い悪いという以前に、まともに音がしません。 ニュース番組の音声ならともかく、アニメや映画、ましてや音楽のビデオでは、 やはりMP3なら128Kbpsくらいは必要ですから、56では必要量の半分未満……。 音声も一気にMP3圧縮、という手を使いたいなら、まずレート制限を何とかしなくてはなりません。

この問題に対する戦略は大きく分けて二とおりあって、 LAME ACMを使うか、L3codeca.acmを入れ直すか、です。 推奨はLAMEで手順は次のとおり(L3codeca入れ直しは付録参照)。

作業の前に――もしトラブルが起きたら、 コントロールパネルの「アプリケーションの追加と削除」からLAME MP3をアンインストールしてください。

  1. RarewaresのMP3のページから、 LAME ACMをダウンロード。
    http://www.rarewares.org/files/mp3/lame-3.92-ACM.zip
    または http://www.rarewares.org/files/mp3/lame3.96.zip
    解凍したら、中身のLameACM.infを右クリック→「インストール」。
  2. 「デジタル署名が見つかりませんでした」と言われても気にせずインストールを続行。
  3. 「マイコンピュータ」を右クリックして「プロパティ」を選んで、デバイスマネージャを開きます(XP/2000では「プロパティ」の「ハードウェア」タブにある)。 で、「サウンド、ビデオ、およびゲーム コントローラ」の「オーディオ CODEC」をダブルクリック。 名前は微妙に違うかもしれませんが、何かそれっぽいのを探してください。
  4. 「オーディオ CODECのプロパティ」ダイアログが出たら「プロパティ」タブへ。 LAME MP3 Codecをダブルクリックして、 さらにそのまたプロパティを出し、「このオーディオCODECを使う」を選択し、 優先順位をFhG IIS MP3より上にします。優先順位1にしてしまえば良いです。
  5. Aviutlを再起動して、サウンドの選択で形式 Lame MP3 が出たら成功です。 (MPEG Layer-3 の項目は、もしあるとしても、依然として FhG IIS であり、 Lame MP3 という項目が追加されるはずです。)

トラブルシューティングも見てください。

AviUtlの設定

映像成分については、DVD・TV→AVI・OGM・MKV入門と同様ですが、 読み込んだWAV音声についても、「設定|圧縮の設定|オーディオ圧縮の設定」で設定します。

形式 (F)
Lame MP3
属性 (A)
48000 Hz か 44100 Hz かは、ソースのWAVと同じに。 分からなければ foobar2000 で確認。 間違えると音ズレの原因になります。
ビットレートは、ステレオでは160 kbps(標準)または192 kbps(高音質)が、 モノラルでは80 kbpsが良いでしょう。 MP3でステレオの128はVBRなら標準かもしれませんが、 この場合はCBRなので、微妙。――まあ、前世紀と違って、 メディアの単価も安く、帯域も広くなったのだから、 あんまりけちけちすることもないでしょう。
VBR, ABR, CBRの区別は必ずCBRにします。 間違えると音ズレの原因になります。 (どうしてもVBRを使いたい場合は、この方法ではなく、外部ツールが必要)
StereoかMonoかは、もちろんソースと同じにします。
音量の最大化の設定

AC3音声のDVDの場合は、DVD2AVI側でノーマライズ(この場合は推奨)したなら、 この処理は不要です(するべきでありません)。

それ以外の場合、オーディオエディタで見て音量が小さいようなら、 Aviutlの「設定|音量の最大化の設定」で右上にチェックを入れ、 レベルを255にします(最大は256。余裕を見て1小さく)

メニューの「フィルタ」で「音量の最大化」にチェックが入ったことを確認します。 (「音量の調整」はチェックせず、「音量の最大化」をチェック)

AVI出力

後は音声なしのビデオの場合とまったく同様にエンコードするだけです。 最初にやるときは、試しに30秒くらいテストエンコードしてみたら良いでしょう。

豆知識

そもそもACMって何ですか?
Audio Compression Manager(音声圧縮マネージャ)または Audio Codec Manager の略。 タスクマネージャやデバイスマネージャなどと同様、 自分勝手に仕事するのではなくWindowsが一括管理している音声圧縮です。 簡単に言えば、要するに、Aviutlの「音声圧縮の設定」から選択して使えるような音声圧縮のこと。 ACM経由のものはAviutlやVirtualdubmodなどの一般のソフトウェアから、 同じようなインターフェイスで呼び出すことができ「使いやすい」ですが、 逆に言えばWindowsの「枠にはめられている」ため本来の性能を発揮できないこともあります。 単体の外部ツールが自由に仕事をするのと、Windowsが間に入ってお節介をするのとでは、 仕事の自由度が違いますからね。
VBR, ABR, CBRってなあに?
VBRは音が複雑なところでは、たくさんビットを割り当て、 音が単純なところでは、少しだけビットを割り当て、 効率的にファイルサイズを利用する圧縮方法です。 Vはバリアブル(可変)の略、BRはビットレートです。
手放しのVBRでは仕上がりサイズがやってみるまで分かりません。 それでは困る場合、平均レートがだいたい決められた値になるようにもっとコントロールを厳しくするアルゴリズムを使います。これがABRです。Aはアベレイジ(平均)の意味です。ABRはVBRですが、結果がトータルでは一定値になるように、 制限を加えます。そのため自由にレートを配分するVBRの方が音質的には自然で高品位です(サイズに糸目を付けないのだから当然ですね)。
CBRは、常に一定の割合でレートを割り当てるものです。Cはコンスタント(固定、定数)の略です。 AVI動画では原則としてMP3はCBRでないと音ズレします。 OGM動画やMKV動画ではCBRでなくてもかまいません。詳しくは「MP3・Vorbis・AAC―動画音声の話」。

トラブルシューティング

LAME ACMと相性が悪い

LAME ACMはすべての環境で動作する保証はありません。 単に動作しないばかりか、 ACMからオーディオ圧縮を設定しようとしただけでアプリケーションが異常終了することもあります(特に安定系以外のLAMEは要注意)。 こうしたトラブルが起きたなら、LAMEはあきらめて、「アプリケーションの追加と削除」からアンインストールしてください。

LAME ACMが使えない場合には、LAMEを外部エンコーダとして使うか、 またはL3codeca.acmを使ってください。

音ズレが起きる

48000か44100かの選択と、CBRを選択していることを再確認してください。

IISコーデックと干渉

同じMP3のACMが重複するため、LAMEとIISコーデックの選択で不具合が生じる可能性もあります。 通常、デバイスマネージャから優先順位を変更することで対応できますが、 どうしても駄目なときは、デバイスマネージャからふだん使わないほうを「使わない」にしてみてください。 それでも駄目なときは、使わないほうを削除してください。 すなわち、LAMEなら「アプリケーションの追加と削除」から、 IISならデバイスマネージャから削除してください。 (どちらも必要なら後からまた戻せる。)

この方法の問題点

たとえ入力が同じWAVでも、 ACM経由では、安定度、柔軟性、音質などで、 外部エンコーダとしてのLAMEにはかないません。 そりゃまあ、手間をかければかけただけの違いはあって、 音声専門のソフトで別圧縮したほうが、 良い結果が出やすいですよね。

ひとつには、ACMコーデックはLAMEのバージョンアップに関して後手後手になりやすいです。 (特許権などの問題のため、LAMEのソースの配布とバイナリの配布が別々になっているため。) 今回さしあたって3.92のACMを紹介しましたが、2003年10月時点でLAMEの安定版は3.93.1であり、 3.92に比べていくつかの改善や修正が行われています(Changelog)。 3.92は十分に良いし実用上、問題ないですが、LAME本体がバージョンアップされても、 ACMも常にバイナリでいっしょに配布されるわけではなく、 配布されていても常にうまく動作するわけではない、という点は承知しておいたほうが良いでしょう。

そもそもこの方法では入力の段階で差が出てしまいます。AC3から直接MP3にすれば、 内部の解像度24ビットで処理できるものを、 この方法ではいったん16ビットでWAV出力しています。 ただしこの違いは通常、知覚できるものではありません。 理論的には最高でないとしても、 実用的にはACM経由で少しも悪いことはありません。 ACM経由は常に最高ではないのですが、その分、一定の結果が出せます。 何でも自由に操作できる外部ツールでは、何かの間違いでとんまなコマンドを打ってしまわないとも限りませんが、ACM方式だとそもそもレートくらいしか選べるところがないので、間違いたくても間違う場所がもともと少ないです。

ただ、いちばんの問題は、このACM経由の方法しか知らないと、 応用がきかないということでしょう。 AVI動画より優秀な、OGMやMKVに進みにくいってことですね。 それに、ACM経由は手軽なようですが、ビデオ圧縮の時間にオーディオ圧縮の時間が加算されていて、 トータルで大して速くなるわけではないです。単にクリックの回数が少し節約できるだけです。

できれば外部エンコーダも使えるようになって、目的によって、 ACM経由と使いわけるようにしてください。 オーディオを外部エンコーダで処理する作業に慣れていれば、 そこをVorbisやAACに置き換えるだけで、いろいろ可能性が広がります。 MP3なら160Kbpsが無難と書きましたが、 VorbisやAACなら128Kbpsでも相当良いと思うので、機会があったら聞き比べてみて。

付録

音量の最大化(ノーマライズ)とは

別に知らなくても操作は困りませんが、操作の意味は――。

16ビットの音声データでは、 音量は0~65535の65536段階です。 100%で最大化するとは、そのWAVファイルのなかで音が最大の場所(ピーク)が65535になるように、 全体にボリュームを上げること。 元のファイルが最大でも50%までしか振れてないなら全部のデータを2倍し、 75%まで行っているなら1.25倍する。 具体的には、まずWAV全体をスキャンして今の最大値を見つけ、 次に全体を「可能な最大/今の最大」倍。

ボリュームが小さすぎれば聞きにくいことはもちろんですが、 ノーマライズされたデータでは変換で四捨五入の丸め誤差1が生じても、まあ65536段階の中の1段の話です。 音量が小さい場合、例えば最大でも20000しか行っていないとすると、丸め誤差の1が20000分の1を意味し、 ノーマライズされた場合に比べてつまらない計算誤差でSN比が悪化しやすくなります。

しかし、いつでもせいいっぱいノーマライズすればいいわけでは、ありません。

FhG IISを使いたい場合 (Fraunhofer MP3 codec v1.263)

MP3でLAMEではなく「Windows標準」?のFhG IISを使って56Kbpsの制限を何とかしたい、 という場合には、 DivX 3.11 をインストールするのが早道です。 (いわゆる Radium Codec は、DivX 3.11 に含まれているので、別個にインストールする必要ない。)

divx_311alpha.exe
582,776 Bytes
7A749EFC
同梱 l3codeca.acm 1.2.0.63

インストーラを起動するとDivX ;-) MPEG4 Video Codecという赤い画面が出るので、 後は普通に進んで、Run Me First !! をクリックすればインストール完了します。 いろいろ言われますがすべて無視して続行。

Windows Media Player 9 を常用している人は、いくらこれをやっても、 制限なしのl3codeca.acmをすぐ制限つきl3codeca.acmで上書きされてしまうでしょう。 上書きされたら、DivX 3のインストール先(デフォは C:\Program Files\DivX_311alpha だが変更も可能)に行って、 Register_DivX.exe を起動して上書きし返せばいいのですが、 面倒なので、動画を作る人は「WMP9 など使わない」か「IISコーデックなど使わない」か、どっちかに腹を決めてください。 上書きされないように、L3codeca.acm のファイルのプロパティを「読み取り専用」にしてしまうという荒技も考えられますが……。 (思わぬトラブルの原因になりかねないので、お勧めはしません。 ただ、一般的に、上書きされると困るファイルにリードオンリー属性を設定する、ということは、コンピュータの操作の基本として覚えておいて損はないでしょう。)

理性的に考えて、こんな前世紀のコーデックより、 MP3は今なお改良が続いているLAMEが良いでしょう。 少なくも160Kbps以上ではそうですし、 128Kbps以下なら(MP3エンコーダの微妙な特性差に一喜一憂するくらいなら) AACやOgg Vorbisが小さくて高音質です。ていうか、音声部分なんて微々たるもの、 128だって160だって200MB中の数MBなんだから、特にサイズがぎりぎりでなければ、 余裕を見た音質にしておこう。

リンク

シリーズ

更新履歴

2003年10月19日
初版
2003年11月6日
「紹介しているACMコーデックのバージョン3.92は、 LAME本体の最新版3.93.1より古い」ことを追記した。
2004年2月7日
L3codeca.acm をリードオンリーにする、という方法にも触れた。IIS研究所のロゴを追加、少しだけ説明も増やした。

この記事のURL

テキスト版省パケ版XML版


WMP10ではMP3 ACMの56Kbps制限がなくなる

2004年 9月17日
記事ID d40917

このメモは十分に検証されていない実験的内容を含んでいます。 掲示板の情報 #1752

WMP10をインストールするだけで制限がなくなるわけでないので注意。

概要

WMP7/8 あたりから MP3コーデック(l3codeca.acm)にステレオで 56Kbps という非常識な上限がつくようになった。 ところが WMP10 では、この制限のないMP3コーデックが同梱されている。 以前の「ハック版」仕様が「公式」になった。

最近は Apple が AAC(MP4) 128、Real が AAC 192 と音質競争の傾向があるなか MP3 56 では話にならないので、Microsoft のこの決断は不思議でもない。 (そもそも56K制限がユーザをバカにしすぎだった…。)

実際

さて、動画でこのACMを有効にする方法ですが…

  1. Windows Media Player 10 のインストーラ mp10setup.exe を 7-zip 等で直接解凍して、 l3codecp.acm を取り出す。
  2. それを l3codeca.acm にリネームして、システムフォルダ(System32)の同名ファイルに上書き。 (上書き前にバックアップコピーすること。)

VirtualDub から ACM で 320Kbps まで使えるようになることを確認した。 上記の手順では、WMP10をインストールする必要さえない(もちろんインストールしてもいい)。 DivX 3.11 alpha にも同梱されているいわゆるラジウムコーデックは、 1.2 Build 63i だが、 今回 WMP10 に同梱されているものは 3.3.2 Build 44 であり、最新版だ。 順当に考えれば、前世紀の版より性能も改善されているはずだ。 その意味でも ACM で IIS を使う動画作成者は検討してみてほしい。

ただ上述の「単に上書きコピーするだけ」の方法で問題がないかどうか、確証ない。 お気づきの点がありましたらフィードバックお願いします。

音質にこだわるのなら今は動画に Vorbis や AAC も使えるのだから、 LAME と IIS とどっちがいいかとか、 ACM 経由ではどうこう、というのは言ってみても仕方ないような気もするけれど、 「IIS ACM MP3 を使うなら」という前提では、 もはや前世紀の DivX 3 版ではなく、WMP10同梱版のほうが良いのではないか。 手元ではあまりACMは使わないし、ましてダブルブラインドの証拠があってそう言っているわけではないので念のため。

l3codecp (Pro: 以下P版と略) と l3codeca (Adcanced: 以下A版と略) を簡単に切り替えてテストできるように .bat ファイルを作ってみました。 l3c.zip

l3c-inst.bat は WMP10 をインストールせずに使う方式。 WMP10 のインストーラを直接解凍したら、解凍先フォルダに l3c-inst.bat を放り込んでクリックするだけで、 P版が有効になって、IIS が 320 まで使えるようになるはず。

l3c.bat は WMP10 をインストール済みのユーザ用。 どこに置いてもいいので単にクリックすると、P版が有効になります。

どちらの方式でも、l3c-undo.bat をクリックすると、デフォルトの環境が復活して、 A版が使用されます。公式には56Kbpsの制限が出ますが、 DivX 3.11フルセット導入下でA版とP版を切り替えるということは、 同じ無制限版でも 1.2 Build 63i と 3.3.2 Build 44 は果たしてどちらがいいのかの比較という意味です。

切り替えるたびに VD を再起動してください。 あと、デバイスマネージャが開いている状態だと、上書きコピーできないので注意。 共有エラーが出たら Explorer を再起動するか、 いったんログオフするか、OSを再起動してください。

注意

DivX 3.11 導入下で WMP10 をインストールしても、A版コーデックは更新されません。 そもそも WMP10 には A版は入ってないです。 l3codec*.acm は細かい種類が多すぎて微妙なので、 上記のテストは、XP SP1 をクリーンインストールした直後の状態でやりました。

DivX 3.11 は、正式のものではないハック版で、正常に動作する保証もありません。 IISでも正当に56Kbps超を使えるようになったので、必要ない限り DivX 3.11 をインストールしないようにおすすめします。 (インストールする必要がある場合 = DivX 3.11 で圧縮されたビデオを VfW で開きたいとき。 その場合でもMP3コーデックはインストールする必要ない。)

この記事のURL

テキスト版省パケ版XML版



webmaster@faireal.net