我使用以下脚本在我的 Ubuntu 64 位系统上编译了 ffmpeg 库:
mkdir ~/ffmpeg_sources
#x264
cd ~/ffmpeg_sources
wget http://download.videolan.org/pub/x264/snapshots/last_x264.tar.bz2
tar xjvf last_x264.tar.bz2
cd x264-snapshot*
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static --disable-asm
make
make install
make distclean
#FFmpeg
(这是原文,已经是中文了)
cd ~/ffmpeg_sources
wget http://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2
tar xjvf ffmpeg-snapshot.tar.bz2
cd ffmpeg
PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig"
export PKG_CONFIG_PATH
./configure --prefix="$HOME/ffmpeg_build" --extra-cflags="-I$HOME/ffmpeg_build/include" \
--extra-ldflags="-L$HOME/ffmpeg_build/lib" --bindir="$HOME/bin" --extra-libs="-ldl" -- enable-gpl \
--enable-libx264 --enable-x11grab --disable-yasm
make
make install
make distclean
hash -r
但最终的库非常大(例如,libavcodec.a > 140 Mb)。有人知道为什么我的库这么大吗?
编辑
我的解决方案:
- 在 ./configure 中添加选项 "--disable-debug"。我的 libavcodec 大小从 150Mb 减少到 12Mb!
- 删除所有不必要的编解码器:使用选项 -disable-encoders,--disable-decoders,然后使用 --enable-encoder=NAME 和 --enable-decoder=NAME 添加仅需要的编解码器。使用 ./configure --list-encoders --list-decoders 打印列表。更多信息请参见 ./configure --help。(我的最终 libavcodec 大小为 4Mo)