9 : 03 Windows で Ogg Theora

← 9 - 02 p↑ もくじ i 9 - 04 n →

Windows/Mac で Ogg Theora の作成・再生

2004年 4月 6日
記事ID d40406

Oggシリーズといえば音声コーデック Ogg Vorbis が有名ですが、 ビデオコーデック Ogg Theora も Alpha 3 段階になり、 とうとう Windows 上でも作成・再生が可能になりました。

さっそく、音声が Ogg Vorbis、映像が Ogg Theora、コンテナが OggFile の Ogg動画 (OggFile) を作ってみました。 結果、品質もかなり有望に思えます。

Ogg Theora Alpha 3 を Windows 上でテストするための方法と、 結果の品質についてのコメントをメモしておきます。

注1: Ogg動画は、従来のOGM動画とは非互換になる見通しです。

注2: Oggシリーズがクロスプラットフォームであることを強調する意味で、 記事タイトルを「Windows/Mac で」としておきました。 実際、Mac OS X については MPlayer が使えることから、同様の方法で Theora が作れるはずです。 ただし、自分は Mac ユーザでないので検証はしていません。 現在、作れても再生はできないかもしれません。

作成

作成の説明です。再生の説明だけ必要なかたは飛ばしてください。

映像を用意

まず映像のみで音声なしのソースを AVI で用意します。 コーデックの性能を見るのが目的なので二重に劣化圧縮しないよう huffyuv などを使おう。

YUV4MPEG形式に変換

Ogg動画のエンコーダ encoder_example は、現在、 入力として YUV4MPEG 形式(拡張子 .y4m または .yuv など)を要求します。 手元では、映像ファイルをこの形式に変換するのに、 mplayer を使いました。Mac では movtoy4m というツールもあるそうです。

Linux や Mac OS の世界では有名な Mplayer ですが、 Windows 版はまだテスト段階で、かなり不安定です。 Windows ユーザは、自分の環境で動作する mplayer を見つけるのに、ちょっと手間取るかもしれません。 手元では、
ftp://ftp3.mplayerhq.hu/MPlayer/releases/win32-beta/
にあった 2004年4月3日版の mplayer-mingw32-dev-CVS-040403.zip を使いました。もしこれで駄目なようなら、 他のビルドを探してみてください。mplayer.exe 一つで動作します(Windows版は現在、基本的にはコマンドラインプレーヤーです)。

mplayer -vo yuv4mpeg input.avi

これで同一のフォルダに、stream.yuv というファイルが得られます。Theora のサンプルをいろいろ作るときは、 mplayer から同じ操作で上書きしてしまわないように、stream.yuv を test1.yuv などとリネームしておこう(拡張子は .y4m でも良い)。 変換元 input.avi は mplayer で再生できるファイルなら何でもかまいませんが、 音声がついていると、音声は再生デバイスに送られて、映像の変換と音声の再生の両方が行われます。 これを避けたい場合、
-ao pcm
スイッチをつけて、音声もファイルにダンプするようにしてください。 ただし、通常の(MP3などの)音声の動画をWAVにダンプしたのを再び Ogg Vorbis に圧縮すると、二重の劣化になって、音声の品質を正しく評価できません。 最初から音声は別にWAVで用意したほうが明快。

音声を通常のWAV形式で準備

既に圧縮されているものをWAVに戻して使うと二重の劣化になって Vorbis の性能を正しく評価できないので、 なるべく良いソースを直接WAVに変換しよう。

Ogg動画にエンコードする

手元では、 Theora 1.0a3 Win32 Binary にあった theora1.0a3_win32.zip を使いました(掲示板での情報 #1396)。 解凍すると出てくる encoder_example.exe と libogg-0.dll を同じフォルダに入れたら、すぐ使えます。

encoder_example -o output.ogg -v 3 -a 5 input.wav input.yuv

あとはやれば分かりますが、 最初に -o スイッチで出力ファイル名を指定するのを忘れないようにしてください。 さもないと標準出力(DOS窓)にバイナリデータが送られてえらい騒ぎになります。 万一そうなったときは、急いでタスクマネージャから encoder_example を殺してください。 オプションなどはヘルプを見るとして、基本的には -v で画質、-a で音質を指定します。0~10です。 これらの指定は省略可能で、省略するとデフォルト値が使われます。

Ogg Vorbis と同じ感覚で 2~3 で「圧縮率高め&まあまあ」、5で「それなりの高品質」、みたいです。

再生

Real の Helix Player が Ogg Theora をサポートしていますが、 Windows 版の RealPlayer 10 もプラグインで Ogg Vorbis/Theora を再生できるようになりました。RealPlayer 10 を注意深くインストールしたあと、 Helix Community::Win32 Plugins から xiphplins_win32_0_1.zip (ファイル名は将来のバージョンアップで変わることがあります)をダウンロード。 解凍して出てくる3つのDLLを、Plugins フォルダに入れるだけです(掲示板での情報 #1434)。 注意事項として、Realには二種類の Plugins フォルダがあります。 デフォルトのインストールでは
C:\Program Files\Real\RealOne Player\plugins
C:\Program Files\Common Files\Real\Plugins
ですが、DLLは後者のほうに入れます。(分からなければ両方に入れておいてもいい。)

あとは、RealPlayerを起動して、ファイルメニューから Ogg動画 を開くだけです。

Theora の 印象

動きの少ない静かなシーンでは、相当にきれいです。 動きの激しいシーンでは、輪郭線にそってモスキート状のアーティファクトが入ります。 これから開発が進んでゆくアルファ版としては、けっこういいのではないか、と思いました。

動きの激しいシーン

-v 8 などとすると、それなりにきれいですが、動きの激しいシーンでは、とんでもないビットレートを使います。 あるOPでテストしたところ -v 8 = 6054Kbps / -v 6 = 4050Kbps / -v 4 2583Kbps / -v 3 2061 Kbps でした。 OPは一般に動きが激しく、XviDなどでも 2000~3000 Kbps 配分することが珍しくないですが (24分が233MBでも80秒のOPが30MB以上なのはよくある)、とりあえず、標準で -v 2~5程度で使うことを考えているようです。 -v 6 だとさすがにサイズが大きくなりすぎます。高レートを与えたときと、低レートでやりくりしたときとで、 コーデックはまったく違う性質を示すことも多いですが、 このサンプルでは、なぜかファイルサイズが大きくなってもそれに比例するほどの画質の向上が感じられませんでした。 今後のチューニングにもよるでしょうが、Ogg Vorbis 同様、高圧縮・低レート志向なのでしょうか。

-v 8 のほうがいくぶんシャープな印象がありますが、6Mbps使っただけのコスト対効果が認められません。 言い換えれば -v 3 の2Mbpsで十分きれいとも言えます。この画質で満足できるかどうかは、好みの問題なので、客観的にどうこうは断言できませんが、 静かなシーンの場合と両方見れば、「へー意外に良さそうじゃん。まだ完全でないのはアルファ版だから仕方ないとして、将来が楽しみかも」 といったところではないでしょうか。XviD などMPEG-4系のライバルになるかは微妙ですが、 MPEG-4系との差がわずかなら、エンコード速度が速いことなど、独自の価値のある選択肢になってくるかもしれません。

静かなシーン

今まで作れても再生法がなかったのでつまらなかったのですが、 再生できるようになったので、少し本気で作ってみました。 Thoera が Windows 上で再生できた、ということ自体ニュースですが、 -v 8 にしたところビデオ700Kbps弱程度で、 なかなかの高画質です。ランダムノイズなども。 デフォルトの音声(-a 2 ?)だと(75Kbps程度)ちょっといまいち。 そこで上のサンプルクリップは -a 5 で作成しました(130Kbps)。 エンコ速度は爆速。今どきのCPUなら1倍速を越えるでしょう。 再生時負荷はかなり重い~。キーフレーム(シーンチェンジ)で特に負荷がかかり引っかかる傾向あり。 音ずれ・コマ落ちしたら分かるように上部に薄くカラオケを入れてあります。(カラオケがスムーズに流れていたら正常に再生できている証拠) シークもききます。少しバグもあるがアルファ版なので。

Ogg と OGM

今回説明した Ogg動画(OggFile)は、Ogg Vorbis と同じ xiph.org による公式のプロジェクトです。 従来のOGM動画 (Ogg Media)も、現在は同じ xiph.org でソースの一部が管理されていますが、 いろいろな事情により、両者は非互換になってしまいました。 この問題については、別記事「OggFile関連メモ 2004年1~2月」をごらんください。

使う側の観点から簡単にまとめると、Ogg動画はフリーのビデオコーデック Ogg Theora が使える代わり、 少なくとも現時点では、映像成分として DivX や XviD などが使えません。Ogg Vorbis と Theora の組み合わせのみ可能です。 OGM動画は、Ogg Vorbis はもとより MP3 / AC3 / AAC 、映像成分として DivX / XviD など多くの組み合わせを格納できますが、 現時点ではOGMでは Ogg Theora は使えません(何だか変なようですが、まだ初期テスト段階ということもあって、いろいろ不明瞭な状況になってます)。

2004年4月9日 追記: Ogg動画がDirectShowで

http://www.illiminable.com/ogg/

Media Player Classic, Graph Edit, Bs Player などで Ogg動画(Theora と Vorbis を格納した Ogg)を再生できました(WMP9では動作せず)。 シークできないなど多少不具合もありますが、RealPlayer10 + プラグインよりずっと軽いです。 とはいえ、XviDなどを使った一般的なOGMより重いです。 掲示板の情報 #1443 です。情報、どうもありがとうございました。 興味あるかたはぜひお試しください。

2004年4月28日

Theora再生DSFilter Directshow Filters for Ogg Vorbis, Speex, Theora and FLAC が更新されてます。 以前のバージョンでうまくいかなかったかたも再挑戦してみては? 手元では時間の長さが正しく表示されないものの、 シークできるようになり(シークバーは出るようになったがシークしようとすると落ちる)、Real Player より比較にならないくらい軽いです。 Bs Player 0.86系でも再生できました。 ffdshow の Theora は disable にしています。

2004年5月5日 追記: VLCによるOgg動画の作成・再生

2004年5月5日 VLC for Windows 0.7.2 Test2 Ogg動画の作成・再生を一応サポート

OGMとOgg動画の両方が開けるようになりました。 0.7.2 Test1 でもOgg動画は開けましたが、音だけ鳴って絵が動かない状態でした。 0.7.2 Test2 では一応ちゃんと再生できるようになりました。

VLCを使ってOgg動画を作成することも一応可能ですが、いろいろと制限事項もあります。 なお、この方法は、0.7.2 Test1 でも既に可能でした。 この方法は掲示板の情報 #1495 です。情報、ありがとうございます。

  1. File | Open File... | Browse... で変換元を開く。
  2. 同じダイアログの Stream output にチェックを入れて、Settings... をクリック。
  3. File にチェックを入れて Browse で変換先を選ぶ(パスに空白や日本語文字が入らないほうが安全)
  4. 同じダイアログの下のほうの Encapsulation... を ogg にする。
  5. 同じダイアログの下のほうの Transcoding... を使いたいものにする。この場合は、Video が theo 、Audio が vorb ということになる。
  6. OKで全部閉じると変換が始まる。

問題点

良い点

という感じです。以上、速報メモでした。

追加情報

2004年5月6日 theora+flac.oggとかもできる! VLC 0.7.2 でいろんな組み合わせでOgg動画にでき、ちょっと不具合もありますが、 再生もできました。

2004年5月6日 theora+mp3.mkv まだうまく再生できないがグラフはつながった、、、

2004年5月6日 ちょっと工夫すると(ハックですが)AVIとMKVにはTheoraがVCMで入ります(FourCC THEO)。 だから何だってわけでもないのですが…。 ちゃんと再生までできます。VP3みたいな感じで。 理論的にはOGMにもTheoraが入っていいはずなのですが、 なぜか相性が悪いです。近親憎悪とか?

関連記事

この記事のURL

テキスト版省パケ版XML版



webmaster@faireal.net