2014年02月19日

libilbcのコンパイル&インストール

iLBCとは、ウィキペディアより、
Internet Low Bitrate Codec あるいは iLBC は、ロイヤリティフリーのナローバンド音声符号化方式で、米国の Global IP Solutions 社(旧 Global IP Sound 社)が VoIP などのために開発した。他の方式と比べパケットロスの多いIPネットワークでも音質の低下が少ない特徴がある。

ウィキペディアの、iLBCのページはこちらです。
http://ja.wikipedia.org/wiki/Internet_Low_Bit_Rate_Codec


libilbcをコンパイルするために、CMakeが必要ですので、あらかじめインストールしておいてください。
CMake
http://www.cmake.org/


libilbcは、以下の場所にあります。
https://github.com/dekkers/libilbc

「Download ZIP」ボタンをクリックして、
libilbc-master.zip
を、適当なディレクトリに保存して、解凍します。

または、MSYSからGitを使って、以下のようにダウンロードします。
$ git clone https://github.com/dekkers/libilbc.git

以下の説明は、Gitを使った場合のディレクトリ名になっていますので、zipファイルをダウンロードした場合は読み替えてください。

MSYSで、ソースコードを保存したディレクトリに移動し、
$ cd libilbc
$ mkdir build
$ cd build
$ cmake -G "MSYS Makefiles" .. -DCMAKE_INSTALL_PREFIX=/mingw
$ make
$ make install

以上で終了です。


2014/09/20 追記
2014/09/18の更新以降、上記の手順でコンパイルエラーになってしまう場合、以下の手順を試してみてください。

まず、configureを生成します。
$ cd libilbc
$ autoreconf -if

その後、以下の手順で実行します。
$ ./configure --prefix=/mingw --disable-shared
$ make
$ make install

【更新履歴】を見る
posted by あべちん at 08:35 | Comment(8) | TrackBack(0) | FFmpeg追加ライブラリ
この記事へのコメント
管理人さん、こんばんは。桃源老師です。

libilbcですが、"automake -a -c"の時に"subdir-objects"がうんたらと、しこたま警告が出ませんか?

あれは、ご存知かも知れませんが、libilbcのconfigure.acを

- AM_INIT_AUTOMAKE([tar-ustar dist-bzip2 foreign])
+ AM_INIT_AUTOMAKE([tar-ustar dist-bzip2 foreign subdir-objects])

とすることで消えました。

しかし、そうやってビルドしたlibilbcがffmpegのmakeでエラーを吐いてしまうんです。トホホ…。
Posted by 桃源老師 at 2014年10月03日 20:31
桃源老師さん、こんばんは。管理人です。

git cloneからやり直してみたのですが、エラーや警告は出ませんでした。

環境によるのか、ツールのバージョンによるのか、再現できないのでわかりませんでした。

ちなみに、
automake-1.11.1
autoconf-2.68
で実行しています。
Posted by あべちん at 2014年10月04日 01:20
管理人さん、こんばんは。

automake-1.11.1
autoconf-2.68

にバージョンを落とすと、aclocal -I m4の段階で

main::scan_file() called too early to check prototype at /Volumes/ffmpeg_compile/bin/aclocal line 617.

という警告(?)が出ました。
無視して(!)進めたところ、やっぱりffmpegのmakeの最後の段階、

LD ffmpeg_g
LD ffplay_g
LD ffprobe_g
LD ffserver_g

でlibilbcの基本的な関数についてのエラーが出ました。(このエラーはautoconf/automakeの最新バージョンで出たものと同じです)

旧バージョン(http://codeload.github.com/dekkers/libilbc/legacy.tar.gz/b5f9b10)を見つけてcmakeでビルドしたところ、問題は出ませんでした。

どうやら2014/9/18のバージョンは、少なくともMac OS Xには対応していないようです。

ご協力ありがとうございました。
Posted by 桃源老師 at 2014年10月04日 05:12
libilbcですが、今回のバージョンアップでconfigureを生成してビルドしたものがトラブる件を作者にメールしました。

さっき来た返事は9/18にバージョンアップがあったばかりにも関わらず、

俺はもうあんまり使ってもらえないlibilbcに興味がない。opusのリリースでより良いコーデックが手に入るようになった。
俺はただ、プルリクエスト(?)をマージ(?)しているだけで、メンテナーを希望する人がいたら頼みたいんだ。

というものでした。

コーデックの特性はよく分からないのですが、opusの方がilbcより良いのでしょうか?
Posted by 桃源老師 at 2014年10月05日 18:56
桃源老師さん、こんにちは。管理人です。

ffmpegのLDの時のエラーなら、libilbcの更新の後、すぐ9/19にffmpegも修正されましたが、これとはまた違う部分のエラーなのでしょうか?
http://git.videolan.org/?p=ffmpeg.git;a=commitdiff;h=59af5383c18c8cf3fe2a4b5cc1ebf2f3300bdfe5

コーデックの特性については、私もよく分かっていないのですが、こんなの見つけました。

Firefox Beta 15 でサポートされる Opus オーディオ形式
https://dev.mozilla.jp/2012/08/firefox-beta-15-supports-the-new-opus-audio-format/
Posted by あべちん at 2014年10月06日 12:40
管理人さん、こんばんは。

LDの部分でビルドエラーになる件について、エラーが出たffmpegのgitクローンの該当箇所を確認したところ、既に修正されていました。

試しにv1.1.1のlibilbcをcmakeでなくconfigureでビルドしてみたら、こちらはffmpegのビルドでエラーは出ませんでした。

Opusについての資料ありがとうございます。<(_ _)>
この資料を見ても、ilbcはOpusで代用が効くものと言えそうですね。mp3やaacよりも優れていると言われても普及度の点で難しい気がしますが…。


結論として僕の手順書でもOpusはサポートしているし、旧バージョンを含めlibilbcを加える理由はないと判断しました。

管理人さんはどうされますか?(ってこれは余計なお世話ですが…。(^ ^; )
Posted by 桃源老師 at 2014年10月06日 23:14
桃源老師さん、こんばんは。管理人です。
お返事が遅くなり、申し訳ありません。

必要かどうかで判断するとしたら、x264、x265、libvpx、xvid、lame、vorbis、opus辺りで十分じゃないかと思いますので、何を捨てるか迷うところですね。

もともと、ffmpegのビルド手順をまとめるのが主な目的で、バイナリの配布はおまけという考えですので、とりあえず入れられるものは入れておこうと思います。
Posted by あべちん at 2014年10月12日 22:32
管理人さん、こんばんは。

そうですね。ビルド手順書としては、サポートできるものは入れておきたいですね。

捨てるのは迷いますものね。

よく分かりました。ありがとうございます。
Posted by 桃源老師 at 2014年10月15日 00:55
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/87608625
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック