Libavcodec schlanker machen

  • Hallo zusammen,
    hoffe mal, meine Frage passt hierher.
    Ich versuche den Libavcodec für ein Studienprojekt auf einem *****ded System zum laufen zu bringen; leider ist das Memory des Zielgerätes nicht sehr grosszügig ausgelegt.
    Die libavcodec- und libavformat-libraries werden zu gross.
    Dabei brauche ich eigentlich nur die Decoder für MJPEG und später MPEG4, und keine Encoder.
    Ich arbeite mit der SVN-Version des Codes; in der Konfiguraton ist zwar alles disabled,trotzdem haben die libs noch über 3MB je.
    Hat jemand eine Ahnung, wie man z.B. im Quellcode die Encoder ausklammern könnte, damit die in den libs erst gar nicht Platz brauchen ?

    Gruss, Gurgus

  • Libavcodec ist ein Teil des FFMpeg Projekts (svn checkout svn://http://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg). Das Script configure ist für die Configuration zuständig. Hier mal ein Auszug aus der Datei:

    Mit den Switches --disable-encoder=NAME --disable-decoder=NAME kannst Du entscheiden welche Codecs erzeugt werden.

    Ich denk mal das könnte Dir helfen: --disable-encoders --disable-decoders --enable-decoder=mjpeg --disable-ffmpeg --disable-ffserver --disable-ffplay --enable-small

  • Danke, du hast ziemlich genau meine config zitiert ;).Trotzdem sind die Libs noch über 3 MB gross. Ich kann mir nicht vorstellen, dass es sich dabei nur um den mjpeg-Decoder handelt.
    --disable ffmpeg habe ich dagegen noch nicht probiert. Ist einen Versuch wert. Jedes kB hilft.

    Grüsse,
    Gurgus

  • --enable-small wird vermutlich die Debug Symbols schon deaktivieren, aber versuch trotzdem mal --disable-debug

    Da deine Plattform vermutlich kein MMX und Altivec kann, kannst du auch versuchen von denen zu deaktivieren, was geht:

    --disable-mmx disable MMX usage
    --disable-armv5te disable armv5te usage
    --disable-armv6 disable armv6 usage
    --disable-iwmmxt disable iwmmxt usage
    --disable-altivec disable AltiVec usage

    Auch sonst kannst du vermutlich fast alles deaktivieren. Falls du das nicht schon getan hast.

    Ansonsten kannst du mal versuchen herauszufinden, welche Objectfiles so viel Platz brauchen. Und kannst du mal deine config posten?

    Eigentlich sollte man das Ding recht klein kriegen, ohne im Quellcode rumzupfuschen.

    Es gibt eine Theorie, die besagt, dass das Universum sofort verschwinden und etwas noch Unerklärlicheres und Bizarres an seine Stelle treten wird, sobald jemand herausfindet, wofür es gut ist und warum es existiert.

    Es gibt eine andere Theorie, die besagt, dass das bereits geschehen ist.

  • Meine config :

    --cross-compile
    --disable-encoders
    --disable-decoders
    --enable-decoder=mjpeg
    --disable-shared
    --disable-parsers
    --enable-parser=mjpeg
    --enable-small
    --disable-ffplay
    --disable-ffserver
    --disable-mmx
    --disable-armv5te
    --disable-armv6
    --disable-iwmmxt
    --disable-altivec
    --disable-debug

    disable ffmpeg mochte er nicht: zu wenig parameter im make install.
    disable-debug war nicht im -small enthalten; bisher habe ich das mit dem gcc-Befehl strip bewirkt. -debug bewirkt fast die gleiche Reduktion.
    Nach dem strippen sind libavcodec.a noch 502 kb und libavformat.a 411 Kb. Scheint mir immer noch recht viel.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!