blob: 6bf7ca5838f719e08bc3a77cb883362fb1b74fdd (
plain)
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
|
1. lame
./configure \
--disable-shared --enable-static \
--enable-nasm \
--disable-analyzer-hooks --disable-decoder --disable-frontend \
--with-pic
FFmpeg looks for lame.h as lame/lame.h but the uninstalled lame-3.98.4 does not
have the lame directory so go into lame-3.98.4/include and "ln -s . lame" on
Linux and Mac OS X or "mklink /d lame ." on Windows.
MS Windows notes:
- As an alternative to configure and a subsequent make, just use:
make -f Makefile.unix HAVE_NASM=YES NOUNIXCMD=NO UNAME=MSDOS
- Before make, open Makefile, libmp3lame/Makefile and
libmp3lame/i386/Makefile and make sure that the path to nasm.exe is
correct (e.g. have NASM=nasm and nasm.exe on the PATH);
- For Windows x64, add --build=x86_64-w64-mingw32 to the configure line.
2. x264
- Windows
Download yasm for Windows (32-bit or 64-bit) at
http://www.tortall.net/projects/yasm/wiki/Download and copy it to a directory on
the PATH.
./configure --disable-pthread
make
- FreeBSD
patch -p1 < x264-01-freebsd.patch
./configure --enable-pic
gmake
- Linux, Mac OS X
./configure --enable-pic
make
3. ffmpeg
patch -p0 < ffmpeg-01-libavcodec_libx264.c-zero_latency.patch
- Windows
32-bit:
./configure \
--target-os=mingw32 \
--enable-memalign-hack \
--enable-static --disable-shared --shlibdir=. \
--disable-debug \
--disable-everything --disable-network \
--disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver \
--enable-libmp3lame --enable-encoder=libmp3lame \
--enable-decoder=h263 --enable-encoder=h263p --enable-parser=h263 \
--enable-libx264 --enable-gpl \
--enable-decoder=h264 --enable-encoder=libx264 --enable-parser=h264 \
--enable-filter=buffer --enable-filter=hflip --enable-filter=scale --enable-filter=nullsink \
--extra-cflags="-I$MP3LAME_HOME/include -I$X264_HOME" \
--extra-ldflags="-L$MP3LAME_HOME/libmp3lame -L$MP3LAME_HOME/libmp3lame/.libs -L$X264_HOME" \
--disable-pthreads --enable-w32threads
64-bit:
Then run:
./configure \
--arch=amd64 --target-os=mingw32 \
--enable-memalign-hack \
--enable-static --disable-shared --shlibdir=. \
--disable-encoders --disable-decoders --disable-muxers --disable-demuxers \
--disable-parsers --disable-bsfs --disable-protocols --disable-devices \
--disable-network \
--disable-dxva2 \
--enable-libx264 --enable-gpl --enable-parser=h264 --enable-encoder=libx264 \
--enable-decoder=h264 --enable-muxer=h264 --enable-demuxer=h264 \
--enable-parser=h263 --enable-encoder=h263p \
--enable-decoder=h263 --enable-muxer=h263 --enable-demuxer=h263 \
--enable-libmp3lame --enable-encoder=libmp3lame \
--extra-ldflags="-L$MP3LAME_HOME/libmp3lame/.libs -L$X264_HOME" --extra-cflags="-I$MP3LAME_HOME/include -I$X264_HOME" \
--disable-debug \
--disable-ffserver --disable-ffplay --disable-ffmpeg \
--disable-pthreads --enable-w32threads \
--enable-cross-compile
mingw32-make
Note: mingw64-make failed to work (segmentation fault) that's why we fallback to
mingw32-make.
- Linux, FreeBSD
Note: remove --enable-pic for x86 architecture.
./configure \
--enable-pic \
--enable-static --disable-shared --shlibdir=. \
--disable-encoders --disable-decoders --disable-muxers --disable-demuxers \
--disable-parsers --disable-bsfs --disable-protocols --disable-devices \
--disable-network \
--enable-libx264 --enable-gpl --enable-parser=h264 --enable-encoder=libx264 \
--enable-decoder=h264 --enable-muxer=h264 --enable-demuxer=h264 \
--enable-parser=h263 --enable-encoder=h263p \
--enable-decoder=h263 --enable-muxer=h263 --enable-demuxer=h263 \
--enable-decoder=mjpeg --enable-muxer=mjpeg --enable-demuxer=mjpeg --enable-parser=mjpeg \
--enable-libmp3lame --enable-encoder=libmp3lame \
--extra-ldflags="-L$MP3LAME_HOME/libmp3lame/.libs -L$X264_HOME" --extra-cflags="-I$MP3LAME_HOME/include -I$X264_HOME" \
--disable-debug \
--disable-ffserver --disable-ffprobe --disable-ffplay --disable-ffmpeg \
--enable-pthreads
- Mac OS X
Note: removed from configure script the option to add -mdynamic-no-pic unless
you compile for the i386 architecture (Intel 32-bit). For i386, remove
"--enable-pic" from the following command.
./configure \
--enable-pic \
--enable-static --disable-shared --shlibdir=. \
--disable-encoders --disable-decoders --disable-muxers --disable-demuxers \
--disable-parsers --disable-bsfs --disable-protocols --disable-devices \
--disable-network \
--enable-libx264 --enable-gpl --enable-parser=h264 --enable-encoder=libx264 \
--enable-decoder=h264 --enable-muxer=h264 --enable-demuxer=h264 \
--enable-parser=h263 --enable-encoder=h263p \
--enable-decoder=h263 --enable-muxer=h263 --enable-demuxer=h263 \
--enable-libmp3lame --enable-encoder=libmp3lame \
--extra-ldflags="-fPIC -L$MP3LAME_HOME/libmp3lame/.libs -L$X264_HOME" --extra-cflags="-fPIC -I$MP3LAME_HOME/include -I$X264_HOME" \
--disable-debug \
--disable-ffserver --disable-ffprobe --disable-ffplay --disable-ffmpeg \
--enable-pthreads
4. libffmpeg
Define the environment variable JAVA_HOME so that the JNI headers can be found.
Change the current directory to src\native and run "ant ffmpeg" passing it
values for the ffmpeg, lame and x264 properties which specify the paths to the
homes of the development trees of the respective libraries.
|