Ben derlenmiş ffmpeg aşağıdaki komut dosyası kullanarak benim Ubuntu 64-bit üzerinde kütüphaneleri:Neden ffmpeg lib'larım çok büyük?
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
Ama nihai kütüphanelerini gerçekten büyüktür (Örneğin, libavcodec.a> 140 Mb). Kütüphanelerimin neden bu kadar büyük olduğunu bilen var mı?
DÜZENLEME
Çözümlerim:
- ./configure seçeneği "disable-debug" ekleyin. Libavcodec'imin boyutu 150Mb'den 12Mb'ye düştü!
- Gereksiz kodekleri kaldırın: -disable-encoder, -disable-decoder seçeneklerini ekleyin ve --enable-encoder = NAME ve --enable-decoder = NAME ile istediğiniz codecleri ekleyin. Listeyi ./configure --list-encoder --list-decoder kullanarak yazdırın. Daha fazla bilgi için ./configure --help adresine bakın. statik kütüphanelerini (örneğin
libavcodec.a
gibi) bağlayıcı tarafından sıyrılıp edilecek ekstra veri her türlü içerdiğini
ffmpeg, çok sayıda işlevselliğe sahip (çok sayıda kodek vb.) Çok büyük bir kütüphanedir, bu nedenle çıktı dosyalarının büyük olması şaşırtıcı değildir. Sence bu boyut yanlış mı yoksa ...? –
Bence, insanların 15 librelik boyutu olan libavcodec'e sahip olduğu çok fazla iplik okuyorum (örneğin, http://ffmpeg-users.933282.n4.nabble.com/libavcodec-size-too-large-td4657129.html) . Birçok kodek içerdiğini anlıyorum ... ama aslında tek ihtiyacım var: H.264 (x264). Bu yüzden şu anda derleme bayraklarını kullanarak diğer kodekleri kaldırmak için arıyorum. – user3504221
Ayrıca, bağlayıcı bayraklara '-s 'eklemenize yardımcı olur. – Antonio