2014. 12. 12. 13:36ㆍMultiMedia Framework/FFMpeg
우분투에서 아래와 같이 apt-get으로 ffmpeg을 설치할 수 있다.
$> sudo apt-get install ffmpeg
하지만 위와 같이 설치할 경우 h264 코덱이 포함되지 않아서 h264 인코딩 혹은 디코딩 하는데 제약 사항이 생긴다.
그래서 h264 소스를 다운받은 후 ffmpeg을 다시 빌드를 해주어야 하는데 그 방법은 아래와 같다.
1. 의존 관계가 있는 library 다운로드 및 업데이트
ffmpeg을 컴파일 하기 위한 dependency가 있는 라이브러리들을 다운로드 한다.
$> sudo apt-get update
$> sudo apt-get -y install autoconf automake build-essential libass-dev libfreetype6-dev libgpac-dev libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libx11-dev libxext-dev libxfixes-dev pkg-config texi2html zlib1g-dev
2. ffmpeg_sources 폴더 생성
ffmpeg과 관련된 소스를 다운로드 받을 폴더를 생성한다.
$> mkdir ~/ffmpeg_sources
3. Yasm 설치
$> cd ~/ffmpeg_sources
$> wget http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz
$> tar xzvf yasm-1.2.0.tar.gz
$> cd yasm-1.2.0
$> ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin"
$> make
$> make install
$> make distclean
ffmpeg 빌드시 Yasm을 사용하는데 Yasm 실행 명령어를 찾지 못해서 나같은 경우엔 /usr/bin 폴더로 yasm 결과 파일을 직접
복사했다. (sudo cp ../bin/yasm /usr/bin)
4. libx264 설치
$> cd ~/ffmpeg_sources
$> wget http://download.videolan.org/pub/x264/snapshots/last_x264.tar.bz2
$> tar xjvf last_x264.tar.bz2
$> cd x264-sanpshot*
$> PATH="$PATH:$HOME/bin" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static
$> make
$> make install
$> make distclean
5. libfdk-aac 설치
$> cd ~/ffmpeg_sources
$> wget -O fdk-aac.zip https://github.com/mstorsjo/fdk-aac/zipball/master
$> unzip fdk-aac.zip
$> cd mstorsjo-fdk-aac*
$> autoreconf -fiv
$> ./configure --prefix="$HOME/ffmpeg_build" --disable-shared
$> make
$> make install
$> make distclean
6. libmp3lame 설치
$> sudo apt-get install libmp3lame-dev
7. libopus 설치
$> cd ~/ffmpeg_sources
$> wget http://downloads.xiph.org/releases/opus/opus-1.1.tar.gz
$> tar xzvf opus-1.1.tar.gz
$> cd opus-1.1
$> ./configure --prefix="$HOME/ffmpeg_build" --disable-shared
$> make
$> make install
$> make distclean
8. libvpx 설치
$> cd ~/ffmpeg_sources
$> wget http://webm.googlecode.com/files/libvpx-v1.3.0.tar.bz2
$> tar xjvf libvpx-v1.3.0.tar.bz2
$> cd libvpx-v1.3.0
$> ./configure --prefix="$HOME/ffmpeg_build" --disable-examples
$> make
$> make install
$> make clean
9. ffmpeg 설치
$> cd ~/ffmpeg_sources
$> wget http://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2
$> tar xjvf ffmpeg-snapshot.tar.bz2
$> cd ffmpeg
$> PATH="$PATH:$HOME/bin" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --extra-cflags="-I$HOME/ffmpeg_build/include" --extra-ldflags="-L$HOME/ffmpeg_build/lib" --bindir="$HOME/bin" --extra-libs="-ldl" --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree --enable-x11grab
$> make
$> make install
$> make distclean
$> hash -r
10. extra avcodec 설치
$> sudo apt-get install libavcodec-extra-53
11. 환경 변수 설정
$> echo "MANPATH_MAP $HOME/bin $HOME/ffmpeg_build/share/man" >> ~/.manpath
$> . ~/.profile
ffmpeg 삭제 시
$> rm -rf ~/ffmpeg_build ~/ffmpeg_sources ~/bin/{ffmpeg,ffprobe,ffserver,vsyasm,x264,yasm,ytasm}
$> sudo apt-get autoremove autoconf automake build-essential libass-dev libfreetype6-dev libgpac-dev libmp3lame-dev libopus-dev libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libvpx-dev libx11-dev libxext-dev libxfixes-dev texi2html zlib1g-dev
$> sed -i '/ffmpeg_build/c\' ~/.manpath
$> hash -r