为什么我的ffmpeg库如此之大?

时间:2014-04-06 18:28:41

标签: ffmpeg size libs

我使用以下脚本在我的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这么大?

修改

我的解决方案:

  • 添加选项" - disable-debug"到./configure。我的libavcodec的大小从150Mb下降到12Mb!
  • 删除所有不必要的编解码器:添加选项-disable-encoders, - disable-decoders,然后只使用--enable-encoder = NAME和--enable-decoder = NAME添加所需的编解码器。使用./configure --list-encoders --list-decoders打印列表。有关更多信息,请参阅./configure --help。 (我的最终libavcodec大小为4Mo)

1 个答案:

答案 0 :(得分:2)

请注意,静态库(例如libavcodec.a)包含将被链接器剥离的所有类型的额外数据。

但即使在此之后,您也可以将--enable-small添加到./configure个参数中。大约一年前,这个参数将libavcodec.so的大小从14减小到大约3 MB。