(Anmerkung vom 15.09.2015: das untere Script ist veraltet und es ist gut möglich dass es nicht richtig läuft. Eine neuere Version findet man unter: compile-ffmpeg-osx )
Ein Script mit dem man ffmpeg auf einem Mac compilieren kann. Es werden auch die libs faac und freetype verwendet, eine Weitergabe der Binaries ist dadurch ausgeschlossen. Das Script erstellt eine Ramdisk, wodurch das ganze Vorgang doch beschleunigt wird, die ffmpeg Binary wird anschließend in den Developer Ordner kopiert. Die Ramdisk kann manuell geschlossen werden, oder sie verschwindet nach dem nächsten Neustart. Befor das Script läuft muss Xcode und yasm installiert werden.
Vielen Dank an Sebastian Tischer! Von seiner Seite stammt der überwiegende Teil des Codes für das Script:
http://ffmpegmac.net/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 | #!/bin/bash export CC=clang export CC=gcc-4.2 #wahrscheinlich nur bei OSX 10.5.8 einsetzbar DISK_ID=$(hdid -nomount ram://2097152) newfs_hfs -v Ramdisk ${DISK_ID} diskutil mount ${DISK_ID} MES="/Volumes/Ramdisk/Sources" TARGET="/Volumes/Ramdisk/sw" CMPL="/Volumes/Ramdisk/compile" mkdir ${MES} cd ${MES} curl -L -O http://downloads.sourceforge.net/project/faac/faac-src/faac-1.28/faac-1.28.tar.gz curl -L -O http://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2 curl -L -O http://download.videolan.org/pub/videolan/x264/snapshots/last_x264.tar.bz2 curl -L -O http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz curl -L -O http://downloads.sourceforge.net/project/freetype/freetype2/2.4.10/freetype-2.4.10.tar.gz curl -L -O https://launchpad.net/ubuntu/lucid/+source/libgsm/1.0.13-3/+files/libgsm_1.0.13.orig.tar.gz curl -L -O http://downloads.xiph.org/releases/ogg/libogg-1.3.0.tar.gz curl -L -O http://downloads.xiph.org/releases/theora/libtheora-1.1.1.tar.bz2 curl -L -O http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.3.tar.gz curl -L -O http://webm.googlecode.com/files/libvpx-v1.1.0.tar.bz2 curl -L -O http://downloads.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-0.1.3.tar.gz curl -L -O http://code.entropywave.com/download/orc/orc-0.4.16.tar.gz curl -L -O http://downloads.us.xiph.org/releases/speex/speex-1.2rc1.tar.gz curl -L -O http://downloads.xvid.org/downloads/xvidcore-1.3.2.tar.gz mkdir ${TARGET} mkdir ${CMPL} export PATH=${TARGET}/bin:$PATH cd ${CMPL} tar xzpf ${MES}/opencore-amr-0.1.3.tar.gz cd opencore-amr-0.1.3 ./configure --prefix=${TARGET} --disable-shared --enable-static && make -j 4 && make install cd ${CMPL} tar xzpf ${MES}/orc-0.4.16.tar.gz cd orc-0.4.16 ./configure --prefix=${TARGET} --disable-shared --enable-static && make -j 4 && make install cd ${CMPL} tar xjpf ${MES}/libvpx-v1.1.0.tar.bz2 cd libvpx-v1.1.0 ./configure --prefix=${TARGET} --disable-shared && make -j 4 && make install cd ${CMPL} tar xzpf ${MES}/lame-3.99.5.tar.gz cd lame-3.99.5 ./configure --prefix=${TARGET} --disable-shared --enable-static && make -j 4 && make install cd ${CMPL} tar xzpf ${MES}/xvidcore-1.3.2.tar.gz cd xvidcore cd build/generic ./configure --prefix=${TARGET} --disable-shared --enable-static && make -j 4 && make install rm ${TARGET}/lib/libxvidcore.4.dylib cd ${CMPL} tar xjpf ${MES}/x264-snapshot-* cd x264-snapshot-* ./configure --prefix=${TARGET} --disable-shared --enable-static && make -j 4 && make install && make install-lib-static cd ${CMPL} tar xzpf ${MES}/libogg-1.3.0.tar.gz cd libogg-1.3.0 ./configure --prefix=${TARGET} --disable-shared --enable-static && make -j 4 && make install cd ${CMPL} tar xzpf ${MES}/libvorbis-1.3.3.tar.gz cd libvorbis-1.3.3 ./configure --prefix=${TARGET} --with-ogg-libraries=${TARGET}/lib --with-ogg-includes=/Volumes/Ramdisk/sw/include/ --enable-static --disable-shared && make -j 4 && make install cd ${CMPL} tar xjpf ${MES}/libtheora-1.1.1.tar.bz2 cd libtheora-1.1.1 ./configure --prefix=${TARGET} --with-ogg-libraries=${TARGET}/lib --with-ogg-includes=${TARGET}/include/ --with-vorbis-libraries=${TARGET}/lib --with-vorbis-includes=${TARGET}/include/ --enable-static --disable-shared && make -j 4 && make install cd ${CMPL} tar xzpf ${MES}/speex-1.2rc1.tar.gz cd speex-1.2rc1 ./configure --prefix=${TARGET} --disable-shared --enable-static && make -j 4 && make install cd ${CMPL} tar xzpf ${MES}/libgsm_1.0.13.orig.tar.gz cd gsm-1.0-pl13 mkdir -p ${TARGET}//man/man3 mkdir -p ${TARGET}//man/man1 sed "s/^INSTALL_ROOT.*$/INSTALL_ROOT=\/Volumes\/Ramdisk\/sw\//g" -i Makefile sed "s/_ROOT)\/inc/_ROOT)\/include/g" -i Makefile make -j 4 make install cd ${CMPL} tar xzpf ${MES}/faac-1.28.tar.gz cd faac-1.28 ./configure --prefix=${TARGET} --disable-shared --enable-static && make -j 4 && make install cd ${CMPL} tar xzpf ${MES}/freetype-2.4.10.tar.gz cd freetype-2.4.10 ./configure --prefix=${TARGET} --disable-shared --enable-static && make -j 4 && make install cd ${CMPL} tar xjpf ${MES}/ffmpeg-* cd ffmpeg* export LDFLAGS="-L${TARGET}/lib" export CFLAGS="-I${TARGET}/include" ./configure --prefix=${TARGET} --enable-gpl --extra-libs='-lxml2 -lexpat -lfreetype' --enable-nonfree --enable-pthreads --enable-version3 --enable-libspeex --enable-libvpx --disable-decoder=libvpx --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-avfilter --enable-libopencore_amrwb --enable-libopencore_amrnb --enable-libfreetype --enable-libfaac --enable-filters --arch=x86_64 --enable-runtime-cpudetect && make -j 4 && make install cp ${TARGET}/bin/ffmpeg /Developer/ffmpeg cp ${TARGET}/bin/ffplay /Developer/ffplay cp ${TARGET}/bin/ffprobe /Developer/ffprobe cp ${TARGET}/bin/ffserver /Developer/ffserver echo files are in /Developer |