Variousible ホーム Programming Room トップ

Ogg Vorbis SDK のビルド

2004/03/07

MP3 のライセンス問題から、フリーのコーデックとして登場した Vorbis、 そしてその音楽ファイルフォーマットとして Ogg。 Ogg Vorbis SDK を使ったプログラミングについて取り上げてみます。

SDK の入手

ここでは、Ogg Vorbis そのものについては特に説明しません。 ようは ogg ファイルを再生するためのプログラミングを行う、それが目的です。 まずは SDK を入手します。SDK はすばらしいことにフリー (SDK は BSD-like なライセンスとなっている。 詳細は COPYING ファイルを参照されたい) で以下のサイトで公開されています。

Vorbis.com - Open, Free Audioダウンロードページ

SDK のビルド

ここでは、libogg と libvorbis ソースを入手したとして、 それらをビルドするところから始めます。それぞれ本ページの作成時点で、 バージョンは 1.0.1 が公開されています。libogg-1.0.1.zip と libvorbis-1.0.1.zip をダウンロードし、それぞれ展開してください。

まずは、libogg からビルドします。libvorbis は libogg を内部で使用します。 ここでは、Visual C++ .net 2003 を開発環境の前提としますので、 以下のようにプロジェクトのコンバートを要します。

\libogg-1.1\win32 にある ogg.dsw を開きプロジェクトをコンバートします。 .net のソリューションファイル (ogg.sln) とプロジェクトファイル (ogg_dynamic.vcproj と ogg_static.vcproj) が生成されます。

次に、プロジェクトの設定を開き、構成プロパティの全般にある [ブラウザ情報のビルド] をはいにしておくことをお勧めします。 ビルドは [ビルド] - [ソリューションのビルド] で可能です。

プロジェクトのコンバート (1)
プロジェクトのコンバート (2)
ブラウザ情報の設定

次に、リリース用のビルドを行います。 構成マネージャ (ソリューションエクスプローラでソリューションを右クリック、 [構成マネージャ] を選択) を開き、 [アクティブソリューション構成:] を Release に変更します。 そのまま再度ビルドをおこなってください。

リリースビルド

警告が出力されると思いますが、 正常終了で終わればこれで ogg のビルドは完了となります。 [ファイル] - [ソリューションを閉じる] により、Ogg ソリューションを閉じてください。

次に同様に vorbislib についてもビルドします。 libvorbis-1.0.1\win32 にある vorbis.dsw を開くと、6 つのプロジェクトの変換を 尋ねられるので、先ほど同様に変換を行います。

ここで、先ほどビルドした libogg が必要になります。 各プロジェクトのインクルードパスの修正と、 リンクするライブラリのディレクトリのパスを修正する必要があります。 ここで、インクルードパスはプロジェクト全体の設定として、 ライブラリはリリースビルドとデバッグビルドそれぞれにあわせて変更します。 以下に初期の設定と、修正する設定の対応を示します。

../../ogg/include
libogg ソースディレクトリの include ディレクトリ
../../vorbis/lib
libvorbis ソースディレクトリの lib ディレクトリ (= ../lib)
../../ogg/win32/Dynamic_Debug
libogg ソースディレクトリの win32/Dynamic_Debug ディレクトリ
../../ogg/win32/Dynamic_Release
libogg ソースディレクトリの win32/Dynamic_Release ディレクトリ
インクルードパスの修正
ライブラリパスの修正

変更後、libogg 同様にデバッグビルドとリリースビルドをおこないます。 多少面倒ですが、一度だけですのでがんばりましょう。

Variousible ホーム Programming Room トップ
※Java およびすべての Java に関する標章は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標または登録商標です。
※その他の登場する製品名は、各社の商標または登録商標です。
本サイトについて
Copyright © 2004 KURIHARA, Yusuke