우분투에서 ffmpeg 설치 방법

2014. 12. 12. 13:36MultiMedia 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