我需要在 Ubuntu 13.04 上使用 libfdk-aac 编译 ffmpeg。我按照以下说明编译 libfdk-aac
wget http://downloads.sourceforge.net/opencore-amr/fdk-aac-0.1.0.tar.gz
tar xzvf fdk-aac-0.1.0.tar.gz
cd fdk-aac-0.1.0
./configure
make
sudo checkinstall --pkgname=fdk-aac --pkgversion="0.1.0" --backup=no --deldoc=yes \
--fstrans=no --default
ldconfig
我按照下面的说明编译 ffmpeg
git clone --depth 1 git://source.ffmpeg.org/ffmpeg
cd ffmpeg
./configure --enable-gpl --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb \
--enable-libopencore-amrwb --enable-librtmp --enable-libtheora --enable-libvorbis \
--enable-libvpx --enable-libx264 --enable-nonfree --enable-version3 --enable-libaacplus \
--enable-x11grab --enable-libfdk-aac
make
sudo checkinstall --pkgname=ffmpeg --pkgversion="5:$(date +%Y%m%d%H%M)-git" --backup=no \
--deldoc=yes --fstrans=no --default
hash x264 ffmpeg ffplay ffprobe
问题
在编译 FFmpeg 时,在 ./configure 行中,出现错误失败:
ERROR: libfdk_aac not found
config.log 的最后几行是:
gcc -Wl,--as-needed -o /tmp/ffconf.w9wba0C3 /tmp/ffconf.Fw03YJzI.o -lfdk-aac -lfaac -laacplus -lm -pthread -lz
/usr/local/lib/libfdk-aac.so: 对“ceil”未定义的引用
/usr/local/lib/libfdk-aac.so: 对“atan2”未定义的引用
/usr/local/lib/libfdk-aac.so: 对“acos”未定义的引用
/usr/local/lib/libfdk-aac.so: 对“sin”未定义的引用
/usr/local/lib/libfdk-aac.so: 对“atan”未定义的引用
/usr/local/lib/libfdk-aac.so: 对“exp”未定义的引用
/usr/local/lib/libfdk-aac.so: 对“tan”未定义的引用
/usr/local/lib/libfdk-aac.so: 对“cos”未定义引用
/usr/local/lib/libfdk-aac.so: 对“log”未定义引用
/usr/local/lib/libfdk-aac.so: 对“pow”未定义引用
/usr/local/lib/libfdk-aac.so: 对“sqrt”未定义引用
/usr/local/lib/libfdk-aac.so: 对“floor”未定义引用
collect2:错误:ld 返回 1 退出状态
错误:未找到 libfdk_aac
所有其他库都已安装。它无需--enable-libfdk-aac
标志即可正常工作。我刚刚听说 fdk-aac 是最好的 AAC 编码器,所以如果可能的话,我想用 FFmpeg 安装它。PS
:整个过程我遵循的确切步骤如下https://gist.github.com/abhi92/5711831。我安装了该列表中的每个库。
答案1
该指南是此处指南的副本,并且未反映最近所做的某些更改。这些更改源自我们关于将静态库和包含项安装到 /usr/local 以及这样做可能导致的潜在问题的讨论。
我个人使用 /opt/ffmpeg_current 而不是 $HOME/ffmpeg_build,但这只是个人选择,理论和更好的安装实践是相同的。
所以我建议你删除 gisthub 上的所有无用内容并点击此链接,一切都会好起来
https://ffmpeg.org/trac/ffmpeg/wiki/UbuntuCompilationGuide
注意 - 我猜我对手册页的建议没有完成。我会将其添加到 ffmpeg ./configure(也可以添加一个 datadir)。
--mandir=/usr/local/share/man --datadir=/usr/local/share/ffmpeg