2015. 10. 20. 13:59ㆍMultiMedia Framework/FFMpeg
CENTOS에서 아래와 같은 방법으로 ffmpeg을 빌드하고 사용할 수 있다.
1. 의존 관계가 있는 library 다운로드 및 업데이트
ffmpeg을 컴파일 하기 위한 dependency가 있는 라이브러리들을 설치한다. 당연히 관리자 권한으로 설치를 진행해야 한다.
$> yum install autoconf automake cmake freetype-devel gcc gcc-c++ git libtool make mercurial nasm pkgconfig zlib-devel
2. ffmpeg_sources 폴더 생성
ffmpeg과 관련된 소스를 다운로드 받을 폴더를 생성한다.
$> mkdir ~/ffmpeg_sources
3. Yasm 설치
$> cd ~/ffmpeg_sources
$> git clone --depth 1 git://github.com/yasm/yasm.git
$> cd yasm
$> autoreconf -fiv
$> ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin"
$> make
$> make install
$> make distclean
4. libx264 설치
H.264 비디오 인코더를 설치한다.
$> cd ~/ffmpeg_sources
$> git clone --depth 1 git://git.videolan.org/x264
$> cd x264
$> ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static
$> make
$> make install
$> make distclean
4. libx265 설치
H.265/HEVC 비디오 인코더를 설치한다.
$> cd ~/ffmpeg_sources
$> hg clone https://bitbucket.org/multicoreware/x265
$> cd ~/ffmpeg_sources/x265/build/linux
$> cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED:bool=off ../../source
$> make
$> make install
5. libfdk-aac 설치
AAC 오디오 인코더를 설치한다.
$> cd ~/ffmpeg_sources
$> git clone --depth 1 git://git.code.sf.net/p/opencore-amr/fdk-aac
$> cd fdk-aac
$> autoreconf -fiv
$> ./configure --prefix="$HOME/ffmpeg_build" --disable-shared
$> make
$> make install
$> make distclean
6. libmp3lame 설치
MP3 오디오 인코더를 설치한다.
$> cd ~/ffmpeg_sources
$> curl -L -O http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz
$> tar xzvf lame-3.99.5.tar.gz
$> cd lame-3.99.5
$> ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --disable-shared --enable-nasm
$> make
$> make install
$> make distclean
7. libogg 설치
Ogg bitstream 라이브러리를 설치한다.
$> cd ~/ffmpeg_sources
$> curl -O http://downloads.xiph.org/releases/ogg/libogg-1.3.2.tar.gz
$> tar xzvf libogg-1.3.2.tar.gz
$> cd libogg-1.3.2
$> ./configure --prefix="$HOME/ffmpeg_build" --disable-shared
$> make
$> make install
$> make distclean
8. libvorbis 설치
Vorbis 오디오 인코더를 설치한다. 설치시 libogg가 필요하다.
$> cd ~/ffmpeg_sources
$> curl -O http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.4.tar.gz
$> tar xzvf libvorbis-1.3.4.tar.gz
$> cd libvorbis-1.3.4
$> LDFLAGS="-L$HOME/ffmeg_build/lib" CPPFLAGS="-I$HOME/ffmpeg_build/include" ./configure --prefix="$HOME/ffmpeg_build" --with-ogg="$HOME/ffmpeg_build" --disable-shared
$> make
$> make install
$> make distclean
8. libvpx 설치
VP8/VP9 비디오 인코더를 설치한다.
$> cd ~/ffmpeg_sources
$> git clone --depth 1 https://chromium.googlesource.com/webm/libvpx.git
$> cd libvpx
$> ./configure --prefix="$HOME/ffmpeg_build" --disable-examples
$> make
$> make install
$> make clean
9. ffmpeg 설치
$> cd ~/ffmpeg_sources
$> git clone --depth 1 git://source.ffmpeg.org/ffmpeg
$> cd ffmpeg
$> 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" --pkg-config-flags="--static" --enable-gpl --enable-nonfree --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265
$> make
$> make install
$> make distclean
$> hash -r
ffmpeg Update 시
업데이트를 위해서는 처음에는 오래된 파일들을 삭제하고, dependency 라이브러리들을 업데이트 한다.
$> rm -rf ~/ffmpeg_build ~/bin/{ffmpeg, ffprobe, ffserver, lame, vsyasm, x264, x265, yasm, ytasm}
# update Yasm
$> cd ~/ffmpeg_sources/yasm
$> make distclean
$> git pull
# pull이 완료되면 Yasm 설치 시 언급한 ./configure, make, make install 진행.
# update x264
$> cd ~/ffmpeg_sources/x264
$> make distclean
$> git pull
# pull이 완료되면 x264 설치 시 언급한 ./configure, make, make install 진행.
# update x265
$> cd ~/ffmpeg_sources/x265
$> rm -rf ~/ffmpeg_sources/x265/build/linux/*
$> hg update
$> cd ~/ffmpeg_sources/x265/build/linux
# 이 후, x265 설치 시 언급한 cmake, make, make install 진행.
# update libfdk_aac
$> cd ~/ffmpeg_sources/fdk_aac
$> make distclean
$> git pull
# pull이 완료되면 libfdk_aac 설치 시 언급한 ./configure, make, make install 진행.
#update libvpx
$> cd ~/ffmpeg_sources/libvpx
$> make clean
$> git pull
# pull이 완료되면 libvpx 설치 시 언급한 ./configure, make, make install을 진행.
# update FFmpeg
$> cd ~/ffmpeg_sources/ffmpeg
$> make distclean
$> git pull
# pull이 완료되면 ffmpeg 설치 시 언급한 ./configure, make, make install을 진행.
ffmpeg 삭제 시
$> rm -rf ~/ffmpeg_build ~/ffmpeg_sources ~/bin/{ffmpeg, ffprobe, ffserver, lame, vsyasm, x264, yasm, ytasm}
$> hash -r