이 가이드는 CentOS 최신 릴리즈의 최소 설치에 기초하고 여러 외부 인코딩 라이브러리를 위한 지원을 가지는 로컬, 비시스템 설치를 제공한다. 이 설명들은 또한 최근 Red Hat Enterprise Linum(RHEL)와 Fedora에 적용되어야 한다. 이것은 비 침투적(invasive)인 가이드이고 모든 단계는 간단하고 이 페이지의 끝에 보여진다
* 의존성 얻기
# 는 명령어가 supuruser나 root로 실행되어야만 하는 것을 가리킨다
의존성을 얻어라. 이것은 컴파일 하는데 요구되어지지만 만약 선호하면 그것을 행할 때 그것들을 삭제할 수 있다
(make는 예외; 이것은 디폴트에 의해 설치되어야 하고 그것에 많은 것들이 의존한다)
# yum install autoconf automake cmake freetype-devel gcc gcc-c++ git libtool make mercurial nasm pkgconfig zlib-devel
home 디렉토리에서 모든 소스를 넣기 위해 새로운 디렉토리를 만들어라
# mkdir ~/ffmpeg_sources
* 컴파일과 설치
- 주의 : 만약 어떤 인코더가 필요하지 않으면 관련있는 부분들을 건너뛸 수 있고, FFmpeg에서 적당한 ./configure 옵션을 제거하라. 예를 들어 만약 libvorbis가 필요하지 않으면, 그 부분을 건너 띄고 --enable-libvorbis를 FFMpeg 설치 부분으로부터 제거하라
* Yasm
- Yasm은 x264와 FFmpeg에 사용되는 어셈블러이다
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
* libx264
- H.264 비디오 인코더이다. 더 많은 정보와 사용법 예제를 위해 H.264 인코딩 가이드를 봐라
--enable-gpl --enable-libx264로 구성된 ffmpeg이 필요하다
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
* libx265
H.265/HEVC 비디오 인코더. 더 많은 정보와 사용법 예제를 위해 H.265 인코딩 가이드를 봐라
--enable-gpl --enable-libx265로 구성된 ffmpeg이 필요하다
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
* libfdk_aac
AAC audio encoder
--enable-libfdk_aac로 구성된 ffmpeg이 필요하다(그리고 만약 또한 --enable-gpl을 포함시켰으면 --enable-nonfree)
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
* libmp3lame
MP3 오디오 인코더
--enable-libmp3lame으로 구성된 ffmpeg이 필요하다
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
* libopus
Opus 오디오 디코더와 인코더
--enable-libopus로 구성된 ffmpeg이 필요하다
cd ~/ffmpeg_sources
git clone git://git.opus-codec.org/opus.git
cd opus
autoreconf -fiv
./configure --prefix="$HOME/ffmpeg_build" --disable-shared
make
make install
make distclean
* libogg
Ogg 비트스트림 라이브러리.
libtheora와 libvorbis에 의해 필요된다
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
* libvorbis
Vorbis 오디오 인코더. libogg를 필요로 한다
--enable-libvorbis로 구성된 ffmpeg을 필요로 한다
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/ffmpeg_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
* libvpx
VP8/VP9 video encoder
--enable-libvpx로 구성된 ffmpeg을 필요하다
cd ~/ffmepg_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
* 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-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265
make
make install
make distclean
hash -r
컴파일은 지금 완료되고 ffmpeg(또한 ffprob, ffserver, lame, x264)는 지금 사용할 준비가 되어야 한다. 이 가이드의 나머지는 FFmpeg을 업데이트하거나 제거하는 방법을 보여준다
팁 : 만약 아래에서 보여지는 것과 같이 업데이트 하고자 하면 ffmpeg_sources 디렉토리와 모든 컨텐츠를 유지하라. 그렇지 않으면 이 디렉토리를 삭제할 수 있다.
* 업데이트
FFmpeg의 개발은 활발하고, 가끔의 업데이트는 새로운 특징과 버그 수정을 줄 수 있다. 첫째로, 오래된 파일을 제거하고 의존성을 업데이트 하라
rm -rf ~/ffmpeg_build ~/bin/{ffmepg, ffprobe, ffserver, lame, vsyasm, x264, x265, yasm, ytasm}
# yum install -y autoconf automake cmake gcc gcc-c++ git libtool make mercurial nasm pkgconfig zlib-devel
* Yasm 업데이트
cd ~/ffmpeg_sources/yasm
make distclean
git pull
그리고 나서 yasm 설치 부분에서 보여졌던 ./configure, make, make install를 실행하라
* x264 업데이트
cd ~/ffmpeg_sources/x264
make distclean
git pull
그리고 나서 x264 설치 부분에서 보여졌던 ./configure, make, make install을 실행하라
* x265 업데이트
cd ~/ffmpeg_sources/x265
rm -rf ~/ffmpeg_sources/x265/build/linux/*
hg update
cd ~/ffmpeg_sources/x265/build/linux
그리고 나서 x265 설치 부분에서 보여졌던 ./configure, make, make install을 실행하라
* libfdk_aac 업데이트
cd ~/ffmpeg_sources/fdk_aac
make distclean
git pull
그리고 나서 libfdk_aac 설치 부분에서 보여졌던 ./configure, make, make install을 실행하라
* libvpx 업데이트
cd ~/ffmpeg_sources/libvpx
make clean
git pull
그리고 나서 libvpx 설치 부분에서 보여졌던 ./configure, make, make install을 실행하라
* FFmpeg 업데이트
cd ~/ffmpeg_sources/ffmpeg
make distclean
git pull
그리고 나서 FFmpeg 설치 부분에서 보여졌던 ./configure, make, make install을 실행하라
* 이 가이드에 의해 만들어진 변경 복구
rm -rf ~/ffmpeg_build ~/ffmpeg_sources ~/bin/{ffmpeg, ffprobe, ffserver, lame, vsyasm, x264, yasm, ytasm}
# yum erase autoconf automake cmake gcc gcc-c++ git libtool mercurial nasm pkgconfig zlib-devel
hash -r