2015. 7. 26. 14:00

이 가이드는 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