LoginSignup
3
2

More than 5 years have passed since last update.

ubuntuでessentiaを使う

Last updated at Posted at 2015-02-23

この記事は間違ってる
というかスマートじゃない可能性が高いです。

https://github.com/MTG/essentia/issues/231#issuecomment-78290129

No need to build libav from source if you can use packages from trusty

というわけで普通にaptからinstallしても大丈夫らしい。

以下どうしてもffmpegをビルドして使いたい人向け。

ubuntu環境にessentiaをインストールした時のメモ。

optionalな機能に注意 

公式のインストールドキュメントを読むと一部オプショナルで、環境の準備はドキュメント外で自分でやる必要があるのが分かる。
とくにlibavcodecはサンプルを動かしたり、音声ファイルの出力するためには必須になってくるので、オプショナルといえども入れといたほうが良いことが多い。

libavcodecのインストール

さてこのlibavcodecだが、apt-getなんかでインストールしようとすると、PICオプション無しでコンパイルされているのかessentia自身のコンパイル時に怒られてしまう。

/usr/bin/ld: /usr/local/lib/libavcodec.a(vc1dsp_mmx.o): 再配置 R_X86_64_PC32 (シンボル `ff_pw_9' に対する) は共有オブジェクト作成時には使用出来ません。 -fPIC を付けて再コンパイルしてください。

というわけで気合でソースからコンパイルすることに。

ffmpegのインストール

libavcodecはffmpegのライブラリなのでffmpegをインストールすれば一緒に入る。もちろんapt経由でインストールしたffmpegではだめ(そもそもubuntu14系ではapt-getでffmpegがインストール出来ない。)なのでffmpegと周辺ライブラリも全部自力でコンパイルする。

幸い先人が通った道なので真似すれば良い。
ただ、essentiaで利用できるようにするには、上記のエントリに一工夫必要になる。

追記 2015/02/26
ffmpegのビルド時に必ず libavresample を有効にして下さい。
libswresampleでもessentiaはサポートしてくれているのですが、あまりテストされていないようで、libavresample使うほうが安定です

./configure 〜 --enable-pic

そもそもpicオプション無しでコンパイルされているのが問題なので、makeするときに-fPICが着くようにconfigureする必要がある。コレをちゃんとやらないと自力でやっても何の意味もないので注意。

各ライブラリのconfigureにかならず--enable-picをつけることを忘れずに。

lameの追加configureオプション

特に前述の記事のlameのconfigureは--disable-sharedが付いていてそもそもsoファイルを作ってくれないのでlameだけは以下のように変えて実行する必要がある。

./configure --enable-nasm --enable-pic

ffmpegの追加configureオプション

上述しましたが必ずlibavresampleを有効にしておきましょう

./configure --enable-shared --enable-gpl --enable-version3 --enable-nonfree --enable-postproc --enable-libfaac --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-x11grab --enable-libmp3lame --enable-libvpx --enable-pic --enable-avresample

まとめ

  • ubuntuでessentiaを入れるためにはffmpegの自力コンパイルが必要
  • 共有ライブラリとして使うのでconfigureで--enable-picを指定する
  • 参考文献のlameのconfigureの--disable-sharedは外す
  • ffmpegのlibavresampleは有効にする
3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2