在Ubuntu系统中使用Essentia
这篇文章是错的
或者说有可能它不够智能。
如果您可以使用trusty的软件包,就不需要从源代码中构建libav。
以下是专为那些非常想构建和使用ffmpeg的人准备的选项。
我在Ubuntu环境下安装Essentia的笔记。
请注意可选功能。
閱讀公式安裝文件後,我們可以了解到一些步驟是可選的,並且我們需要自己在文件之外準備環境。
尤其是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,libavcodec也会一同安装进去。当然,通过apt安装的ffmpeg是不行的(因为在Ubuntu 14系列中根本无法使用apt-get安装ffmpeg)。因此,ffmpeg和相关的库也都需要手动编译安装。
只要模仿先人走过的道路,就会幸运地通过。
然而,为了使其能在essentia中使用,需要在上述条目中进行一些改进。
请确保在构建ffmpeg时必须启用libavresample。
虽然libswresample也支持essentia,但似乎没有经过充分测试,因此使用libavresample更加稳定。
使用”./configure”命令进行配置,同时使用参数”–enable-pic”进行启用。
最初から没有使用pic选项编译是个问题,因此在进行make时需要通过配置-fPIC选项。如果不正确执行此步骤,就算手动进行也没有意义,所以要注意。
使用各个库的配置时,请务必记得添加–enable-pic选项。
添加Lame的configure选项
特别是在上述文章中,lame的configure命令带有参数–disable-shared,因此无法生成so文件,所以只需修改lame的参数并执行以下命令即可:
./configure –enable-nasm –enable-pic
ffmpeg的额外配置选项。
虽然我已经提到过,请务必保持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は有効にする