2014-04-06 11 views
6

ich zusammengestellt ffmpeg Libs auf meinem Ubuntu 64-Bits das folgende Skript verwenden:Warum sind meine ffmpeg-Bibliotheken so groß?

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 

Aber die letzten Libs sind wirklich groß (Zum Beispiel, libavcodec.a> 140 Mb). Weiß jemand, warum meine Bibliotheken so groß sind?

EDIT

Meine Lösungen:

  • die Option "--disable-debug" fügen Sie den configure. Die Größe meines libavcodec fiel von 150Mb auf 12Mb!
  • Entfernen Sie alle unnötigen Codecs: Fügen Sie die Optionen -disable-encoders, --disable-decoders hinzu und fügen Sie dann nur die gewünschten Codecs mit --enable-encoder = NAME und --enable-decoder = NAME hinzu. Drucken Sie die Liste mit ./configure --list-encoders --list-decoders. Weitere Informationen finden Sie unter ./configure --help. (Meine letzte libavcodec hat eine Größe von 4 Mo)
+1

ffmpeg ist eine sehr große Bibliothek mit vielen Funktionen (viele verschiedene Codecs, usw.), so dass es nicht verwunderlich ist, dass die Ausgabedateien groß sind. Denkst du, dass diese Größe falsch ist oder ...? –

+1

Ich denke, weil ich so viele Threads gelesen habe, wo Leute libavcodec mit einer Größe <15 Mo haben (zB http://ffmpeg-users.933282.n4.nabble.com/libavcodec-size-tool-large-td4657129.html) . Ich verstehe, dass es viele Codecs enthält ... aber in der Tat, ich brauche nur einen: H.264 (x264). Also suche ich gerade nach anderen Codecs mit Kompilierungsflags entfernen. – user3504221

+0

Es hilft auch, '-s' zu den Linker-Flags hinzuzufügen. – Antonio

Antwort

2

Beachten Sie, dass die statische Libs (wie libavcodec.a) alle Arten von zusätzlichen Daten enthält, die durch Linker abgezogen wird.

Aber auch danach können Sie --enable-small zu ./configure Parameter hinzufügen. Vor etwa einem Jahr reduzierte dieser Parameter die Größe von libavcodec.so von 14 auf ~ 3 MByte.

Verwandte Themen