멀티미디어/코덱(Codec)

FFMpeg windows build

맨오브파워 2013. 10. 28. 18:00

1. MinGW 설치

Minimalist GNU for Windows

윈도우 환경에서 GNU 컴파일 환경을 구성해 준다.(cross compile)

http://sourceforge.net/projects/mingw/files/ 에서 설치파일을 다운 받고 설치한다.

설치 옵션 중 C Compiler, C++ Compiler, MSYS Basic System, MinGW Developer Toolkit을 필수로 체크.

설치경로는 원하는 곳 아무데나.

 

2. yasm Assembler 설치

asm 컴파일러로 MinGW 시스템에 lilbrary형태로 설치한다.

http://yasm.tortall.net/Download.html 여기서 시스템에 맞는 exe파일을 다운받는다.

ex) 시스템이 64bit windows라면 Win64.exe 다운

이름을 yasm.exe로 변경하고 MinGW설치 폴더(C:\MinGW\msys\1.0\bin) 위치에 설치(복사)

 

3. nasm 설치

yasm과 마찬가지로 asm 컴파일러

http://www.nasm.us/pub/nasm/releasebuilds/2.10rc8/win32/ 에서 zip파일을 다운받고 압축을 푼다.

압축을 푼 파일에서 nasm.exe 파일과 ndisasm.exe 파일을 MinGW설치 폴더(C:\MinGW\msys\1.0\bin) 위치에 설치(복사)

 

4. pthread library 설치

ftp://sourceware.org/pub/pthreads-win32 에서 pthreads-w32-2-8-0-release.tar.gz 버전을 다운받는다.

압축을 풀고 적당한 폴더명으로 MinGW설치 폴더의 사용자 폴더(사용자 명)에 압축을 푼다.

ex)C:\MinGW\msys\1.0\home\사용자 명\pthread

MinGW shell을 실행한다. (시작-프로그램-MinGW-MinGW Shell 실행)

실행 했을때 시작 위치는 내 홈디렉토리(C:\MinGW\msys\1.0\home\사용자 명)다.

앞으로는 모두 여기를 기준으로 설명함.

pthread library 소스가 복사된 위치로 이동.

make clean GC 입력 후 엔터(pthread library를 컴파일 한다.)

다음을 차례로 입력한다. (pthread library를 설치)

cp pthreadGC2.dll /lib

cp pthreadGC2.dll /bin

cp pthreadGC2.dll /lib/pthread.dll

cp pthread.h sched.h /local/include

 

5. x264 빌드

H.264 비디오 인코더 중 하나로 ffmpeg내부에서 외부 라이브러리로 사용된다.

http://www.videolan.org/developers/x264.html 여기서 다운로드 후 압축을 풀고

4번의 pthread 설치와 동일한 방식으로으로 MinGW폴더의 적절한 사용자 폴더에 복사한다.

마찬가지로 MinGW shell에서 설치된 폴더로 이동하여 다음을 차례로 입력한다

./configure --enable-shared --disable-asm (빌드 준비)

make (빌드)

make install (설치)

 

6. SDL 설치

ffplay(플레이어)에서 화면 출력을 위해 필요한 라이브러리.

최종적으로 FFMpeg 빌드 후 ffplay가 생성되지 않는다면 SDL이 제대로 설치됐는지 확인.

http://www.libsdl.org/download-1.2.php 에서 Source Code 항목중 xxx.gz 다운

MinGW의 사용자 폴더에 적절한 이름의 폴더명으로 압축을 풀고 아래를 차례로 실행

./configure

make

make install

 

7. ffmpeg 빌드

여기까지는 준비 단계였고 본격적으로 ffmpeg을 빌드한다.

http://ffmpeg.mplayerhq.hu/download.html 에서 가운데쯤 보이는

FFmpeg Repository Snapshots 링크를 이용해 소스를 다운받는다. (굳이 check out받을 필요는 없음)

4, 5번 과정에서 했던것과 동일하게 MinGW의 사용자 폴더에 적절한 폴더명으로 생성해 복사한다.

마찬가지로 MinGW Shell을 이용해 복사된 폴더로 이동하고, 다음을 차례로 입력한다.

※ ./configure 명령에서 많은 옵션을 줄 수 있다.(코덱 추가/제거 등..) 사용가능한 옵션은 ./configure /help 로 확인

./configure --enable-shared --enable-static --enable-swscale --target-os=mingw32 --enable-gpl --enable-pthreads --enable-libx264 --extra-cflags="-I/local/include" --extra-ldflags="-L/local/lib" --enable-memalign-hack (빌드 준비, 5분 정도 소요됨)

make (빌드, 10분 정도 소요됨)

make install (설치)

 

7. 참고

http://shawnpark.tistory.com/26

http://www.cyworld.com/soinho/7810504 (거의 여기 내용)

http://www.videolan.org/developers/x264.html (x264 관련)

http://ffmpeg.mplayerhq.hu/index.html (ffmpeg 공식 사이트)

http://sourceware.org/pthreads-win32/(pthread - win32)

http://www.libsdl.org/ (SDL)