이글은 http://www.kipple.pe.kr/doc/mplayer/ 에서 가져왔음을 밝힌다. 
문제가 있으면 삭제 하겠습니다. 
  
MPLAYER/MENCODER를 Windows 에서 컴파일 하기 
소개 
이 문서는 mplayer를 MinGW/Msys / cygwin을 이용해서 Win32 환경에서 컴파일 하는 방법을 설명한다. 
이 문서는 dubble 이 작성한 문서를 다시한번 편집한 문서이다. 

문서 수정 기록 
- 2004/12 dubble 이 바닥에 쓰인 mencoder.exe를 MinGW로 컴파일 할것을 제안 
- 2005/01 dubble 이 MinGW를 통한 컴파일 방법 문서 작성 
- 2005/01/23 현재 문서 최초 작성 
- 2005/02/04 cygwin 컴파일 방법 추가 

주의사항 
- 이 문서에 기록된 프로그램/라이브러리들은 전부 문서 작성 시점에서 문제가 없는 파일들이다. 이 문서가 작성된 이후에 발표된 최신 프로그램, 라이브러리에서는 문제가 발생할 수도 있으며 컴파일 방법이 다를 수 도 있다. 만일 문제가 발생하면 문서에 적혀있는 버전의 파일을 설치하여서 작업을 하도록 하기바란다. 
- 이 문서는 2004.12.29 공개된 MPlayer-1.0pre6a.tar.bz2 버전을 기준으로 작성되었다. 
- 이 문서의 위치는 http://www.kipple.pe.kr/doc/mplayer/ 이다. 

MingW/Msys 로 컴파일 하기 
MingW/Msys 로 컴파일 하면 하나의 실행파일만이 나온다는 장점이 있다. 하지만 테스트 결과 인코딩시 에러가 많이 발생하는 문제점이 발견되었다. 가급적 Cygwin 으로 컴파일 하기를 권장한다. 

Mingw 설치 
- 다운로드 : http://www.mingw.org/download.shtml 
- 버전 : MinGW-3.2.0-rc-3.exe 
- 설치 : 프로그램을 실행하여 설치한다. 가급적 기본 폴더인 c:\MinGW 에 설치하도록 한다. 

msys 설치 
- 다운로드 : http://www.mingw.org/download.shtml 
- 버전 : MSYS-1.0.10.exe 
- 설치 : 프로그램을 실행하여 설치한다. 설치중 Mingw 가 설치된 폴더를 물어보면 c:/Mingw 를 적어주면 된다. 

msys 실행 
- 바탕화면에 있는 msys 아이콘을 더블클릭하여 msys 를 실행한다. 이제부터는 Unix 환경과 동일하므로 Unix 명령어를 사용하여서 작업을 해야 한다. 

DirectX 헤더 설치 
- 다운로드 : http://www.mplayerhq.hu/MPlayer/releases/win32-beta/contrib/ 
- 파일명 : dx7headers.tgz 
- 설치 : 
tar -xvzf dx7headers.tgz 
mv *.h c:/mingw/include 

nasm 설치 
- 다운로드 : http://sourceforge.net/project/showfiles.php?group_id=6208 
- 버전 : nasm-0.98.39.tar.gz 
- 설치 
tar zvzf nasm-0.98.39.tar.gz 
cd nasm-0.98.39 
./configure --prefix=c:/mingw 
make 
make install 

libiconv 설치 
- 다운로드 : http://ftp.gnu.org/pub/gnu/libiconv/ 
- 버전 : libiconv-1.8.tar.gz 
- 설치 
tar xvfz libiconv-1.8.tar.gz 
cd libiconv-1.8 
./configure --prefix=c:/mingw --disable-shared 
make 
make install 

freetype2 설치 
- 다운로드 : http://sourceforge.net/project/showfiles.php?group_id=3157 
- 버전 : freetype-2.1.9.tar.gz 
- 설치 
tar xvfz freetype-2.1.9.tar.gz 
cd freetype-2.1.9 
./configure --prefix=c:/mingw --disable-shared 
make 
make install 

zlib 설치 
- 다운로드 : http://www.gzip.org/zlib/ 
- 버전 : zlib-1.2.1.tar.gz 
- 설치 
tar xvzf zlib-1.2.1.tar.gz 
cd zlib-1.2.1 
./configure --prefix=c:/mingw 
make 
make install 

lame 설치 
- 다운로드 : http://sourceforge.net/project/showfiles.php?group_id=290 
- 버전 : lame-3.96.1.tar.gz 
- 설치 
tar xvzf lame-3.96.1.tar.gz 
cd lame-3.96.1 
./configure --prefix=c:/mingw --disable-shared --disable-decoder 
make 
make install 

ogg 설치 
- 다운로드 : http://downloads.xiph.org/releases/ogg/ 
- 버전 : libogg-1.1.2.tar.gz 
tar zxvf libogg-1.1.2.tar.gz 
cd libogg-1.1.2 
./configure --prefix=c:/mingw --disable-shared 
make 
make install 

vorbis 설치 
- 다운로드 : http://downloads.xiph.org/releases/vorbis/ 
- 버전 : libvorbis-1.1.0.tar.gz 
tar zxvf libvorbis-1.1.0.tar.gz 
cd libvorbis-1.1.0 
./configure --prefix=c:/mingw --disable-shared 
make 
make install 

xvid 설치 
- 다운로드 : http://www.xvid.org/downloads.html 
- 버전 : xvidcore-1.1.0-beta1.tar.gz 
- 설치 
tar xvzf xvidcore-1.1.0-beta1.tar.gz 
cd xvidcore-1.1.0-beta1/build/generic 
./configure --prefix=c:/mingw --disable-shared 
make 
make install 
mv c:/mingw/lib/xvidcore.a c:/mingw/lib/libxvidcore.a 

MPlayer 컴파일 
- 다운로드 : http://www.mplayerhq.hu/homepage/design7/dload.html 
- 버전 : MPlayer-1.0pre6a.tar.bz2 
- 컴파일 : 
bzip2 -dc MPlayer-1.0pre6a.tar.bz2 | tar xv 
cd MPlayer-1.0pre6a 
./configure 
make 
- 추가 사항 
MPlayer 설정시 아래와 같이 명시적으로 일부 옵션을 적어줄 수 도 있다. 
./configure --enable-runtime-cpudetection --with-codecsdir=codecs --enable-static --enable-win32 --disable-winsock2 --disable-tv --disable-network --disable-smb --disable-ftp --disable-gif --disable-jpeg --disable-png --enable-real --disable-mad 

Cygwin 으로 컴파일하기 
Cygwin으로 컴파일된 실행파일은 실행시 cygwin1.dll 파일이 필요하다. 

Cygwin 설치 
- 다운로드 : http://www.cygwin.com/ 
- 설치 방법 
. 홈페이지의 Install Cygwin Now 를 클릭해서 설치 프로그램을 실행시킨다. 
. 미러 사이트를 설정에서는 ftp://linux.sarang.net 을 고른다. 
. 설치 패키지 선택 화면에서 기본 설치 이외에 다음 패키지를 설치한다. 

 devel - nasm          
 devel - gcc / gcc-g++      
 devel - make 
 devel - gcc mingw / gcc mingw core / gcc mingw g++ 
 devel - libfreetype2-devl 
 devel - subversion 
 libs - freetype2      
 libs - libiconv        
 libs - glib 

(문제가 발생하는것도 싫고, 하드도 많고, 시간도 많고, 네트웍도 빠르면 옵션에서 전부를 선택해서 설치해도 좋다 ) 
. 참고 사이트 http://www.ezbox.net/cygwin/ 

DirectX 헤더 설치 
- 다운로드 : http://www.mplayerhq.hu/MPlayer/releases/win32-beta/contrib/ 
- 파일명 : dx7headers.tgz 
- 설치 : 
tar -xvzf dx7headers.tgz 
mv *.h /usr/include 

lame 설치 
- 다운로드 : http://sourceforge.net/project/showfiles.php?group_id=290 
- 버전 : lame-3.96.1.tar.gz 
- 설치 
tar xvzf lame-3.96.1.tar.gz 
cd lame-3.96.1 
./configure --prefix=/usr --disable-decoder --disable-shared 
make 
make install 

ogg 설치 
- 다운로드 : http://downloads.xiph.org/releases/ogg/ 
- 버전 : libogg-1.1.2.tar.gz 
tar zxvf libogg-1.1.2.tar.gz 
cd libogg-1.1.2 
./configure --prefix=/usr --disable-shared 
make 
make install 

vorbis 설치 
- 다운로드 : http://downloads.xiph.org/releases/vorbis/ 
- 버전 : libvorbis-1.1.0.tar.gz 
tar zxvf libvorbis-1.1.0.tar.gz 
cd libvorbis-1.1.0 
./configure --prefix=/usr --disable-shared 
make 
make install 

libdts 설치 
- 다운로드 : http://debian.unnet.nl/pub/videolan/libdts/0.0.2/ 
- 버전 : libdts-0.0.2.tar.gz 
tar zxvf libdts-0.0.2.tar.gz 
cd libdts-0.0.2 
./configure --prefix=/usr --disable-shared 
make 
make install 

x264 설치 
- 참고페이지 : http://www.videolan.org/x264.html 
- 버전 : cvs 
svn co svn://svn.videolan.org/x264/trunk x264 
cd x264/build/cygwin 
make 
cp ../../libx264.a /usr/lib/ 
cp ../../x264.h /usr/include/ 

Divx4/5 설치 
- 다운로드 : divxencore5src.zip 
- 버전 : divx encore 5 
- 참고 : http://ftp.intron.ac/pub/algorithm/MPEG4/opendivx/ http://www.mplayerhq.hu/DOCS/HTML/en/codecs.html 에서 2.2.1.1. DivX4/DivX5 항목 
- 설치 
cd encoder/build/cygwin 
make 
cp libdivxencore.a /lib/ 
cp ../../src/encore.h /usr/include/ 
- 문제가 있으므로 사용하지 않는다. 

xvid 설치 
- 다운로드 : http://www.xvid.org/downloads.html 
- 버전 : xvidcore-1.1.0-beta1.tar.gz 
- 설치 
tar xvzf xvidcore-1.1.0-beta1.tar.gz 
cd xvidcore-1.1.0-beta1/build/generic 
./configure --prefix=/usr --disable-shared 
make 
make install 
mv /lib/xvidcore.a /lib/libxvidcore.a 

MPlayer 컴파일 
- 다운로드 : http://www.mplayerhq.hu/homepage/design7/dload.html 
- 버전 : MPlayer-1.0pre6a.tar.bz2 
- 컴파일 : 
bzip2 -dc MPlayer-1.0pre6a.tar.bz2 | tar xv 
cd MPlayer-1.0pre6a 
./configure 
make 
- 추가 사항 
MPlayer 설정시 아래와 같이 명시적으로 일부 옵션을 적어줄 수 도 있다. 
./configure --enable-runtime-cpudetection --with-codecsdir=codecs --enable-static --enable-win32 --disable-winsock2 --disable-tv --disable-network --disable-smb --disable-ftp --disable-gif --disable-jpeg --disable-png --enable-real --disable-mad 

패치하기 
위의 설명대로 컴파일 할 경우 버그로 인해서 일부 정상 작동을 하지 않는다. 이경우 아래와 같이 패치를 적용해야 한다. 

자막이 깨지는 문제 ( MingW/Msys 로 컴파일시 ) 
- 설명 : isspace() 함수에서 128 보다 큰 char 를 설치할때 발생하는 문제로 인하여 utf-8 문자의 한글 코드가 깨지는 문제가 발생한다. 
subreader.c 파일에 있는 "static void trail_space(char *s)" 를 "static void trail_space(unsigned char *s)" 로 바꾸면 문제를 해결할 수 있다. 

한+영 통합자막파일 처리 문제 
- 설명 : 한+영 통합 자막파일일 경우 기존의 mencoder 에서는 정상 처리를 못하는 문제가 있다. 한+영 통합자막일 경우 동시에 나오도록 파일을 수정하였다. 내부적(config.h)으로 USE_SORTSUB 가 define 되어 있어야만 정상 작동한다. 
- 수정된 자막 처리 파일 다운로드 : subreader.c(63KB) 

오디오 코덱 문제 
mplayer는 기본적으로 ffmpeg 의 wma 처리 모듈로 wma 오디오를 처리하도록 되어 있는데, WMA v2 파일들이 이 모듈로 정상 처리가 안되어서 일부 wmv 파일의 소리가 정상적으로 나오지 않는 문제가 발생한다. 
이 문제를 해결하기 위해서는 ./etc/codecs.conf 파일에서 ffwmav2 부분을 아래와 같이 주석 처리를 해야 한다. 
이렇게 막아 놓으면 wma v2 를 시스템에 설치된 기본 코덱(wmadmo)으로 재생하게 된다. 

 ; audiocodec ffwmav2              
 ;  info "DivX audio v2 (ffmpeg)"  
 ;  status untested                
 ;  format 0x161                  
 ;  driver ffmpeg                  
 ;  dll "wmav2"                    

ffmpeg 컴파일. 
http://forum.videolan.org/viewtopic.php?t=885 

libfaac 
- 다운로드 : http://www.rarewares.org/aac.html http://www.saunalahti.fi/~cse/files/faac.zip 
- 버전 : faac.zip 
- 컴파일 : 

ffmpeg 
- 다운로드 : http://ffmpeg.sourceforge.net/download.php 
- 버전 : cvs -z9 -d:pserver:anonymous@mplayerhq.hu:/cvsroot/ffmpeg co ffmpeg 
- 컴파일 : 

참고 페이지 
- dubble 의 "MPlayer 를 Mingw32 에서 컴파일해봅시다" : http://my.netian.com/~dubble/MPlayer_MinGW_build.txt 
- mplayer 메일링 리스트중 Mingw32 컴파일 관련 부분 : http://mplayerhq.hu/pipermail/mplayer-cygwin/2005-January/001701.html