MP3の次世代として注目が高まりつつある高圧縮・高音質のAAC音声。 これまでAAC音声の動画はコマンドラインツールが中心で、初めての人にはちょっと敷居が高かったかもしれません。
ところが、OggMux_nicに続いてMKVMerge 0.7.0の登場で、 OGMもMKVもAAC音声がラクに使えるようになってきました。 肝心のAAC音声自体の作成もfoobar2000との組み合わせで、コマンドラインを使わずともできるようになっています。
DVDを出発点として、DOS窓やGraphEditの操作なしでAAC音声のOGM動画、 MKV動画を作る方法を1ステップずつ図解してみましょう。
DVDの映像をD2Vに、音声をAC3などに分離し、 映像のほうをDivX、XviDなどお好きなコーデックでエンコしてください。 やり方を知らない人は「DVD→AVI・OGM・MKV入門」を見てください。
AC3というフォーマットは16ビットより高い解像度があるので、 通常の16ビットWAVにデコードすると、音質面で損をします。 中間出力するなら、24ビットWAV経由が適切です。 foobarを使えば、簡単にできます。なお変換元がAC3以外の場合も、以下と同様にfoobarにおまかせで行けます。
もしまだならaacencを準備します。インストールといっても、この場合は「パスが通ったところ」にコピーするだけ。
aacenc_v215.zipを解凍して出てくるaacenc.exe と ia32math.dll の両方を「パスが通った場所」に入れます。分からなければ、 Windows 2000/XP では C:\WINNTフォルダに、 Windows 95/98 では C:\Windowsフォルダに入れてしまってください。 「パスが通った場所」についてきちんと理解したいかたは、「MP3・Vorbis・AAC―動画音声の話」参照。
念のためにDOS窓を開いて
aacenc -h [Enter]
とタイプ、
PsyTEL(R) MPEG-4 AAC Encoder V2.15なんたら
と表示されればaacencのインストールは成功しています。
「DOS窓をいっさい使わない」という約束にこだわるとすると、メモ帳に次の1行をコピペして、
test.bat というファイル名で保存してください。
aacenc -h > aac-help.txt
この test.bat のアイコンをクリックすると、aacenc.exeが正しくインストールされていれば、 aac-help.txt というコマンド・リファレンスが生成されます。 このリファレンス自身も役立つので、テストをかねてやってみよう。 コマンド・リファレンスがちゃんと出ないときは(aac-help.txtが空っぽなど) aacenc.exeが正しく認識されてません。 aacenc.exe と ia32math.dll の両方をWindowsのシステムフォルダにコピーするか、 または、 「MP3・Vorbis・AAC―動画音声の話」を読んで自分でパスを通す必要があります。
もしまだなら、foobar2000 v0.7 を 「Special installer」でフルインストールします。 詳しくは「SSA入門」のステップ1 を見てください。
AC3をfoobar2000に読み込んだら、変換の設定をします。 変換元ファイルを選択、右クリックしてConvert | Settings...
Same as...とUse DSPにチェック、 Output formatとしてCLI encoderを選び、[Settings...]をクリックして詳細設定に進みます。
「CLI encoder」の設定で、Preset のリストからPsyTEL AACを選びます。あとは自動記入されるままいじる必要なし。
左側のリストビューから DSP Manager を選びます。
Active DSPsに Converet 5.1 to stereo を右の Available DSPs から移動させて入れ、そのほかの要らないものは右にしまいます。(変換元が5.1チャンネルでなくてもAC3の規格上のことがあるので、これをやっておく。ただし、変換元が5.1チャンネルで5.1チャンネルのままにしたい場合は別)
以上で設定完了。右下の [Close] をクリックしてダイアログを閉じ、もう一度変換元のファイル名を選択、 右クリック、Convert | Run conversionで変換開始。
プログレスバーが100%まで行くのはAC3→24ビットWAV(ディザリングなし)のデコードです。 そのあと自動的にDOS窓が開いて24ビットWAV→AACの再変換が始まります。
ここでは OggMux_Nic.zipを解凍して出てくる OggMux 0.9.5.2 - Nic Branch を使います(執筆時点でのバージョンは Beta Build 5)。解凍したらすぐ使えます。好きな場所に置いてください。 OggMux.exe が実行ファイル。
まず映像のAVIファイルを指定。 次に音声のAACファイルと音声の言語を選択し、[Add] でリストに追加します。 (ファイル名を選んだだけではまだ下のリストに入らないので注意。) 出力ファイル名を指定し、 [ Mux File! ] をクリック。デバッグのようなダイアログボックスが出ますが、 Process finished! となったらOKで閉じる。これで完成。
再生には従来のOGMの再生環境+CoreAACを使うと良いでしょう。CoreAACの最新版については、 RareWaresをみてください。
同じ映像と音声の組み合わせでMKV形式にすることもできます。 MKVtoolnixの mkvtoolnix-0.7.0.rarと mkvtoolnix-runtime.rarをダウンロード、解凍したなかみをどこでも好きな一つのフォルダに入れます(RAR書庫の解凍が分からない人は7-ZIPを使ってください)。 mmg.exe をクリックするとGUIフロントエンドが起動します。[+]を押して合体させたい全ファイル(この場合、映像のAVIと音声のAAC)をリストに追加、言語のタグなどを指定、出力ファイル名を指定。
あとはメニューの Muxing | Start Muxing を実行するだけ。
プログレスバーが伸びきってfinisihedと出たら完成。 OGMを作るのと、ほとんど同じ手間です。 (MKV版のほうが1MBほど小さくなりますが、実質的ななかみはまったく同じ。) 音声がAACの場合、「SBCを使っているならマニュアルで指定する必要がある」という意味の警告が出ますが、 ここで使ったPsyTEL AacencはSBCを使わないので無視してかまいません。
AAC音声のMKV動画の再生は、通常のMKVの再生(再生パック)+ CoreAACで行けます。 (CoreAACはOGM動画でもMKV動画でも共通してAAC再生に使えます)
aacencの推奨設定(-normal)では、おおざっぱに160Kbpsのレートです。 音質重視ではこれで良いのですが、動画の音声だともう少し圧縮率を高くして128Kbpsくらいとか、 96Kbpsくらいにしたいこともあるでしょう。AACでは、そのくらいでもけっこう良い音質です。
aacencの圧縮率を変えるには、foobarのCLI encoder設定画面の
-normal -if %s -of %d
というところを、次のように書き換えれば良いのです。(下に行くほど高圧縮、低音質)
-streaming -if %s -of %d
-internet -if %s -of %d
-radio -if %s -of %d
音質を多少犠牲にしてもサイズを小さくしたいときは、 DSP Manager で Resampler を追加し、32000 や 24000 などにダウンサンプリングします。
この例では、-internet の24000で、デフォルトの約半分の88Kbpsになりました。
AAC音声の動画は十分に実用段階に入っていますが、 多少実験的な面もまだあります。 記事についてのフィードバックは掲示板にお願いします。
このメモは開発テスト目的で公開された OggDS 0.9.9.6についてのものです。 0.9.9.6 は、デフォルトでは、ステレオが片側しか鳴らない致命的なバグがあります。
OGM動画(.ogm)を再生したい場合も、Ogg Vorbis形式の音声ファイル(.ogg)を再生したい場合も、 一般用途では安定版の OggDS 0.9.9.5 を使ってください。 詳しくは「OGM再生法: OGM動画とは」を見てください。
(どうしても 0.9.9.6 を使いたい場合、必ず CoreVorbis を併用してください。 さもないと、音声が片側しか鳴りません。)
インストーラー http://nic.dnsalias.com/OggDS0996_inst.zip
フィルターのみ http://nic.dnsalias.com/OggDS0996_bin.zip
OGM動画のかなめOggDSがオープンソース化されて、最初のバージョンアップ。 2002年10月の0.9.9.5から丸一年ぶりの再始動! 従来、OGM動画でSRT字幕を使うと、 日本語環境で再生したとき行末が文字化けしまくる不具合があった。 それを回避するため行末に半角スペースをごまんと入れたりしていたが、 再生側のバージョンとの相性で特定の文字が化けたり、安心できない状態だった。
しかし、この0.9.9.6はUTF-8のSRTをサポート、 これでOGMでの日本語文字化けとは永遠におさらばできる。 新しいリリースのため、まだ不具合も多いのだが、とりあえずはグッドニュース。 行末に半角スペースを入れずにテストしてみたが、大丈夫、文字化けしない!
お手元の環境でテストMUXしてみたいかたは、 Vorbis音声で「映像と音声だけのOGM」をふつうに作り、 GraphEditで新しいOGMにremuxし、remuxするとき、 GabestのSubtitleSourceのS_TEXT/UTF8を使ってUTF8なSRTを合流させてください。 手元のテストでは字幕のエンドタイム情報がすべて失われ、 どの字幕も次の字幕が出る直前までランオーバーします。 これでは実用上まずいですが、とにかく文字化けはしないです。
さらに、SSA字幕も一応サポートされています。こっちもエンドタイムにタイミングの問題があって、 コリジョンがあると前の字幕が消えてしまい、 SSAと言っても、タイミング的には「SRTでできること」しかできない状態。 スタイリング的にはフォントカラーなど使えます。SSAでフォント指定をしておくと、 再生時に何もしなくても正しいフォント(日本語なら日本語)が選択される、というメリットがあります。
最近MKVがパワフルだけれど、 久しぶりにtobiasのページを眺めると、 OggDS0.9.9.5の頃の「新しい世界へのチャレンジ」というスリリングな開拓精神がよみがえってきます。 OGMはいま見るとあきらかに限界を超えたことをやっていて無理があるのだけれど、 そこのギリギリさが極限への挑戦のような感じで良かったんですよねー。
以上のOGMの新機能は、MKVならすでにもっと良くできることなのですが、 「それを言っちゃおしまいだ」というか、 誰でもそう思うと知りながら、黙々と地道に機能改善する開発者には頭が下がるじゃありませんか。 というわけで、もっとOGMも応援しよう。
以下のFAQは速報的なもので、内容が間違っている可能性があります。
SRTをUTF8にして後方互換性は大丈夫?→大丈夫です。 UTF-8がサポートされたものの、従来のコードページ方式もそのまま。UTF-8字幕は従来の方式とはヘッダで区別されるので、従来のSJISも新しいフィルタで再生できます。
どんなフィルターを使いますか?→ReadmeによるとVSFilterは必須。 Matroska再生パックをインストールすればインストールされます。新OGMは、MKVのためのguliverkli系フィルターやCoreVorbis、CoreAACなど、作成・再生の両方で多くのコンポーネントをMKVと共有。 現状、OggDS単体ではOGMのすべての機能を実現できず、追加インストールとなります。
0.9.9.5からバージョンアップしたほうがいいか?→いま不具合があって困っているのでない限り、 一般のユーザの立場では無理にバージョンアップする必要ない。 内容はアルファ版に近い。 テスト目的には試す価値おおあり。 インストーラーは、OGMとOGGのアイコンを勝手に魚にするなど、少々行儀が悪いので注意。
これはOgg動画なのか?――ソースの出所がxiph(Oggプロジェクト)である以上、
もはや「OGMはOggではない」とは言えないが、xiphからリリースされたわけでない。
正式のOggではない。間接的に関連する非公式のプロジェクトという位置づけだ。
先月2003年8月のxiphのオンライン会議(ログ)で、
Jack「わたしたちは間接的に関連するプロジェクト複数は公式のものではないと決定しました」
Monty 「オーケー」
Jack「将来においては新しいプロジェクトに喜んで協力したいと思いますが、現在、公式のプロジェクトさえ人手不足で、新しいことは無理です。(旧OGM動画OggDSの)コードをまだ調べている途中なんだけど、これはハックだね。これを書いた人(Tobias)はナマケモノだ。このやり方じゃ Windows上でしかうまく動作しない」
といった具合。
現在のOGMと、現在のOgg動画(xiphの言い方ではOggfile)は仕様が異なっており、
どちらかがどちらかに合わせないと統合できない。
mau 「ユーザサイドから見るとOGMはすばらしいよね。(でもそれはハックで動いているから)標準化できたらいいんだけど」=Oggfileの現在の仕様の範囲に入っていない
mau 「Tobias のOGMの実装は自己流だし、それが現に広まってるし」
monty 「最終的にはいろんなことを全部やり直さなくてはいけなくなるか、さもなければ Oggfile を合わせるか……」
――ということで、2つの可能性がある。OggDSを全部書き直すか、OggfileをOggDSに合わせるか。
Monty自身がOggfile側を変える可能性を受け入れているものの、現在のOgg動画とOGM動画には隔たりがある。
さらに、
bond 「Nicは新OGMのなかでいろいろ変更してますよ。ここを読んでください」
jack 「何だよこれ、何だってまた OGM + AAC? (MP4+AACの動画)だったら、こっち(Xiph)には何が残っているの」
monty 「Ogg」
jack 「タメイキ」
mau 「コンテナだけか」
adiabatic 「(Vorbisより)AACはイイ!からだろ」(自嘲的に少しふざけて)
というわけで、Nicの仕事はxiphのプロジェクトでないばかりかxiphからみて心理的に受け入れにくいものがある。
Oggプロジェクトとは「パテントフリーの(ライセンス的に自由な)マルチメディア形式の創造」を目的としているので、
現実のOGMとは思想的にも違いが大きい。
「何が残るの? コンテナだけじゃん タメイキ」という会話から分かるように、xiph自身はコンテナはどうでもよく、Vorbis/Theora命だ。――逆に言えば、Oggコンテナの仕様がまずいのも仕方ない。コンテナより中身に集中しているからだ。――
上の議事録にあるように、NicがAACサポートをした時点において、 新OGM動画は「Oggから離れる方向」に動いた。 詳しくは「OGM動画の「Ogg離れ」進む」(2003年8月2日)参照。 上の会議(8月3日)の直前のメモだが、内容はだいたい当たっている。 もしxiphがoggfileの仕様を変更してOGMを許容すれば、OGMはOgg動画になるわけだが、 現状、正直いってどうなるのか誰にも分からない状態だ。 xiphはコンテナ自身にはさほど執着がないようなので、Theoraさえ受け入れられればコンテナの仕様は少し変えると思う。 事実、Matroskaの影響か、ごく最近、字幕の仕様Oggwritを変更している。OGMユーザの立場からみれば 「なぜこちらがOggに合わせなければいけないの? すでにあるものを再生できなくするようなことをして何のメリットが?」となる。 「標準」「仕様書通り」「これが世界標準です」と言われると内容と無関係に安心するような一部の人がいろいろ机上で考えているが……
2002年に2003年はMCFブレイクの年になると予測していたが、 MCFはブレイクどころかほとんどポシャってしまった。MCFから分かれたMatroskaが大ブレイクしたのでまあ半分は予想が当たっているとも言えるが、2002年秋の時点で誰がMatroskaなど想像しただろう。 この外れは結果的にはうれしい驚きになったが、同様にOgg動画がどうなるかも、まだまだ五里霧中だ。
コリジョンが起きると前の字幕が消えてしまうのは、 Oggが根本的に単調増加のリニアな時系列構造を前提にしていることと関係深いようだ。 だとすれば、Oggの構造的弱点に根ざした問題だ。