Mac automatisches Compile- Script für ffmpeg (nonfree)

(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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.