출처
msys 실행
D:\MinGW\msys\1.0\msys.bat
msys 실행

nasm 설치
http://www.nasm.us/pub/nasm/releasebuilds/ 사이트에서 파일 nasm.exe와 ndisasm.exe를 C:\MinGW\msys\1.0\bin 으로 복사
yasm 설치
http://yasm.tortall.net/Download.html 사이트에서 파일 yasm-1.3.0-win32.exe을 다운로드 받아서 yasm.exe로 변경하여 경로에 C:\MinGW\msys\1.0\bin 복사
pr.exe 설치 (설치 불필요)
FFMpeg 컴파일할 때, pr이 없어서 컴파일 에러가 떨어진다.
https://sourceforge.net/projects/mingw/files/MSYS/Base/msys-core/_obsolete/coreutils-5.97-MSYS-1.0.11-2/coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2/download 압축 해제하고, /bin 폴더에 있는 pr.exe를 C:\MinGW\bin에 복사한다.
zlib 설치
$ git clone https://github.com/madler/zlib.git
$ cd zlib
$ make -f win32/Makefile.gcc
$ export "INCLUDE_PATH=/mingw/include"
$ export "LIBRARY_PATH=/mingw/lib"
$ export "BINARY_PATH=/mingw/bin"
$ make install -f win32/Makefile.gcc
if [ "0" = "1" ]; then \
mkdir -p '/mingw/bin'; \
cp -fp zlib1.dll '/mingw/bin'; \
cp -fp libz.dll.a '/mingw/lib'; \
fi
cp -fp zlib.h '/mingw/include'
cp -fp zconf.h '/mingw/include'
cp -fp libz.a '/mingw/lib'
sed \
-e 's|@prefix@|/usr/local|g' \
-e 's|@exec_prefix@|/usr/local|g' \
-e 's|@libdir@|/mingw/lib|g' \
-e 's|@sharedlibdir@|/mingw/lib|g' \
-e 's|@includedir@|/mingw/include|g' \
-e 's|@VERSION@|'`sed -n -e '/VERSION "/s/.*"\(.*\)".*/\1/p' zlib.h`'|g' \
zlib.pc.in > '/mingw/lib'/pkgconfig/zlib.pc
libiconv (libiconv-1.15) 설치
$ wget https://ftp.gnu.org/gnu/libiconv/libiconv-1.15.tar.gz
$ tar xvf libiconv-1.15.tar.gz
$ cd libiconv-1.15
$ ./configure --prefix=/mingw
$ make; make install
gettext (gettext-0.18.1.1) 설치
$ https://ftp.gnu.org/gnu/gettext/gettext-0.18.1.1.tar.gz
$ tar xvf gettext-0.18.1.1.tar.gz
$ cd gettext-0.18.1.1
$ ./configure --prefix=/mingw --disable-shared -with-libiconv-prefix=/mingw --enable-threads=win32 --enable-relocatable
$ make; make install
glib 설치
$ wget --no-check-certificate https://ftp.gnome.org/pub/gnome/sources/glib/2.28/glib-2.28.8.tar.xz
$ tar xvf glib-2.28.8.tar.xz
$ cd glib-2.28.8
$ ./configure --prefix=/mingw
$ make
$ make install
pkg-config 설치
$ tar xvf pkg-config-0.25.tar.gz
$ cd pkg-config-0.25
$ ./configure --prefix=/mingw
$ make
$ make install
x264 설치
$ git clone http://git.videolan.org/git/x264.git
$ cd x264
$ export PATH=$PATH:/mingw/mingw32/i686-w64-mingw32/bin
$ ./configure --prefix=/mingw --enable-shared --enable-static
platform: X86
byte order: little-endian
system: WINDOWS
cli: no
libx264: internal
shared: yes
static: yes
asm: yes
interlaced: yes
avs: no
lavf: no
ffms: no
mp4: no
gpl: yes
thread: win32
opencl: yes
filters: crop select_every
lto: no
debug: no
gprof: no
strip: no
PIC: no
bit depth: all
chroma format: all
You can run 'make' or 'make fprofiled' now.
$ make
$ make install
install -d /mingw/bin
install x264.exe /mingw/bin
install -d /mingw/include /mingw/lib/pkgconfig
install -m 644 ./x264.h x264_config.h /mingw/include
install -m 644 x264.pc /mingw/lib/pkgconfig
install -d /mingw/lib
install -d /mingw/bin
install -m 755 libx264-157.dll /mingw/bin
install -m 644 libx264.dll.a /mingw/lib
install -d /mingw/lib
install -m 644 libx264.a /mingw/lib
ranlib /mingw/lib/libx264.a
faac 설치
$ curl -#LO https://github.com/knik0/faac/archive/1_29_9_2.tar.gz
$ tar xzvf 1_29_9_2.tar.gz
$ cd faac-1_29_9_2
$ autoreconf -i
$ ./configure --prefix=/mingw --enable-shared --enable-static
$ make
$ make install
libpng설치
$ git clone https://github.com/glennrp/libpng.git
$ cd libpng/
$ cmake -DCMAKE_C_COMPILER=gcc -DCMAKE_ASM_COMPILER=gcc -DCMAKE_INSTALL_PREFIX=/mingw -G "MSYS Makefiles" .
$ cp scripts/pnglibconf.h.prebuilt pnglibconf.h
$ make -f scripts/makefile.gcc
$ cp png.h pngconf.h pnglibconf.h /mingw/include
$ cp libpng-config /mingw/bin
libfreetype 설치
$ git clone https://github.com/ricardoquesada/libfreetype.git
$ cd libfreetype
$ export "CFLAGS=-I/usr/local/include"
$ export "LDFLAGS=-L/usr/local/lib"
$ sh autogen.sh
$ ./configure --enable-shared --enable-static
$ make
$ make install
libfreetype2 설치
$ git clone git://git.sv.nongnu.org/freetype/freetype2.git
$ cd freetype2
$ sh autogen.sh
$ export "CFLAGS=-I/usr/local/include"
$ export "LDFLAGS=-L/usr/local/lib"
$ ./configure --prefix=/mingw
$ make
$ make install
fribidi 설치
$ curl -#LO https://ftp.osuosl.org/pub/blfs/conglomeration/fribidi/fribidi-0.19.7.tar.bz2
$ tar xvf fribidi-0.19.7.tar.bz2
$ cd fribidi-0.19.7
$ ./configure --prefix=/mingw --enable-shared --enable-static
$ make -C charset
$ make -C charset install
$ make -C lib
$ make -C lib install
$ cp fribidi.pc /mingw/lib/pkgconfig
libass 설치
$ git clone https://github.com/libass/libass.git
$ cd libass
$ autoreconf -iv
$ export "CFLAGS=-I/usr/local/include -I/mingw/mingw32/i686-w64-mingw32/include"
$ export "LDFLAGS=-L/usr/local/lib"
$ ./configure --prefix=/mingw
$ make
$ make install
ffmpeg 설치
ffmpeg 컴파일 성공은 했지만, 너무 많은 라이브러리의 컴파일과 삭제를 많이 해서 위에 정리 내용이 일부 부정확할 수가 있습니다.
$ git config --global core.autocrlf false
$ git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
$ cd ffmpeg
$ PKG_CONFIG_PATH="/usr/local/lib/pkgconfig/"
$ ./configure --prefix=/usr/local --enable-gpl --enable-libx264 --enable-libfreetype --enable-libfribidi --enable-libass --enable-nonfree
$ make
$ ./ffmpeg -version
ffmpeg version N-93332-g0321370601 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 7.3.0 (Rev2, Built by MSYS2 project)
configuration: --prefix=/usr/local --enable-gpl --enable-libx264 --enable-libfreetype --enable-libfribidi --enable-libass --enable-nonfree
libavutil 56. 26.100 / 56. 26.100
libavcodec 58. 47.103 / 58. 47.103
libavformat 58. 26.101 / 58. 26.101
libavdevice 58. 6.101 / 58. 6.101
libavfilter 7. 48.100 / 7. 48.100
libswscale 5. 4.100 / 5. 4.100
libswresample 3. 4.100 / 3. 4.100
libpostproc 55. 4.100 / 55. 4.100
댓글을 달아 주세요