2014-04-06 18 views
6

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
+1

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 ...? –

+1

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

+0

Ayrıca, bağlayıcı bayraklara '-s 'eklemenize yardımcı olur. – Antonio

cevap

2

Not (My nihai libavcodec 4Mo bir büyüklüğe sahiptir).

Ancak bundan sonra --enable-small parametrelerini ./configure parametrelerine ekleyebilirsiniz. Yaklaşık bir yıl önce, bu parametre libavcodec.so'un boyutunu 14'ten ~ 3 MByte'ye düşürdü.