CrossCompile FFmpeg selber bauen,.. (Ubuntu)

  • Dachte es ist vielleicht für den ein oder anderen interessant.
    Hier mal eine kleine Anleitung wie man den normalen FFmpeg Tree selber bauen kann.
    (aktuell wird nur FFmpeg selber gebaut, also ohne eventuell externe Libaries wie x264, xvid,...)

    Building FFmpeg.....
    INITIALIZATION:
    0. Ubuntu installieren und ein Terminal öffnen (bei mir läuft das ganze in einer Virtual Box mit Ubuntu 10.10)
    (Im späteren verlauf gehe ich davon aus, dass der User 'developer' heißt, entsprechende Abweichungen müsst ihr natürlich beachten)
    1.

    Code
    gpg --keyserver keyserver.ubuntu.com --recv-key 0x25E635F9


    2.

    Code
    gpg --export --armor 0x25E635F9 | sudo apt-key add -


    3.

    Code
    echo "deb http://apt.arrozcru.org ./" | sudo tee -a /etc/apt/sources.list


    4.

    Code
    echo "deb-src http://apt.arrozcru.org ./" | sudo tee -a /etc/apt/sources.list


    5.

    Code
    sudo apt-get upgrade


    6.

    Code
    sudo apt-get install dpkg-dev debhelper autotools-dev libmpfr-dev libgmp3-dev libppl0.10-dev libcloog-ppl-dev libmpc-dev


    7.

    Code
    apt-get source --compile mingw32-w32api


    8.

    Code
    sudo dpkg -i mingw32-w32api_*.deb


    9.

    Code
    apt-get source --compile mingw32-runtime


    10.

    Code
    sudo dpkg -i mingw32-runtime*.deb


    11.

    Code
    apt-get source --compile mingw32-binutils


    12.

    Code
    sudo dpkg -i mingw32-binutils_*.deb


    13.

    Code
    apt-get source --compile mingw32-gcc-4.4


    14.

    Code
    sudo dpkg -i mingw32-gcc-4.4_*.deb


    15.

    Code
    cd /usr/i686-mingw32


    16.

    Code
    sudo wget http://fate.arrozcru.org/mingw32/patches/tempnam.diff


    17.

    Code
    sudo wget http://fate.arrozcru.org/mingw32/patches/strcasecmp.diff


    18.

    Code
    sudo wget http://fate.arrozcru.org/mingw32/patches/nomt.diff


    19.

    Code
    sudo patch -p2 < tempnam.diff


    20.

    Code
    sudo patch -p2 < strcasecmp.diff


    21.

    Code
    sudo patch -p2 < nomt.diff


    22.

    Code
    cd ~


    23.

    Code
    mkdir ffmpeg


    24.

    Code
    cd ffmpeg


    25.

    Code
    sudo apt-get install yasm git


    26.

    Code
    mkdir checkout

    CHECKOUT:
    27.

    Code
    git clone git://git.ffmpeg.org/ffmpeg.git checkout


    28.

    Code
    mkdir build


    29.

    Code
    mkdir built


    30.

    Code
    cd build

    CONFIGURE:
    31.

    Code
    ../checkout/configure --prefix=/home/developer/ffmpeg/built --enable-gpl --enable-version3 --enable-postproc --enable-memalign-hack --arch=x86 --target-os=mingw32 --cross-prefix=i686-mingw32- --enable-runtime-cpudetect --enable-avisynth

    MAKE:
    32.

    Code
    make


    33.

    Code
    make install

    -> creates the compiled ffmpeg binary under "/home/developer/ffmpeg/built"

    UPDATE:
    34.

    Code
    cd ~/ffmpeg/checkout


    35.

    Code
    git pull


    36.

    Code
    cd ~/ffmpeg/build


    37.

    Code
    make && make install


    LIBRARIES:
    (fügt die Bibliotheken hinzu, für die apt.arrozcru.org mingw32 Versionen zur Verfügung stellt; k.A. wie aktuell diese sind)
    1. sudo apt-get install mingw32-libmp3lame mingw32-bzip2 mingw32-libcloog-ppl mingw32-libsdl mingw32-libppl mingw32-libx264 mingw32-libopenjpeg mingw32-polarssl mmingw32-libtheora mingw32-libxvid mingw32-libmpfr mingw32-openssl mingw32-libgmp mingw32-liborc mingw32-libvorbis mingw32-libvpx mingw32-libogg mingw32-libspeex mingw32-zlib mingw32-libgsm mingw32-liboil mingw32-libopencore-amr
    2.

    Code
    ../checkout/configure --prefix=/home/developer/ffmpeg/built --enable-gpl --enable-version3 --enable-postproc --enable-gpl --enable-version3 --enable-libgsm --enable-libvorbis --enable-libtheora --enable-libspeex --enable-libmp3lame --enable-libopenjpeg --enable-libopencore_amrwb --enable-libopencore_amrnb --enable-libvpx --disable-decoder=libvpx --arch=x86 --enable-runtime-cpudetect --enable-libxvid --enable-libx264 --target-os=mingw32 --enable-avisynth --enable-w32threads --cross-prefix=i686-mingw32- --enable-memalign-hack

    Anmerkung:
    Den experimentellen Branch (http://git.videolan.org/?p=ffmpeg.git) bauen ist etwas komplizierter da man meist noch per Hand ein paar Files patchen muss.

    Cu Selur

Jetzt mitmachen!

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