我使用以下脚本在我的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)。有谁知道为什么我的libs这么大?
修改
我的解决方案:
答案 0 :(得分:2)
请注意,静态库(例如libavcodec.a
)包含将被链接器剥离的所有类型的额外数据。
但即使在此之后,您也可以将--enable-small添加到./configure
个参数中。大约一年前,这个参数将libavcodec.so
的大小从14减小到大约3 MB。