VIDEOCUBE
FFmpeg 설치 해보자 - CentOS 6.3 본문
FFmpeg 이란
ㄴ 위키 백과에 따르면 디지털 음성 스트림과 영상 스트림에 대해서 다양한 종류의 형태로 기록하고 변환하는 컴퓨터 프로그램이라 한다.
CLI 형태로 제공이 되며, 오픈소스 라이브러리로 구성이 된다.
공식 사이트는 다음과 같다.
ㄴ http://ffmpeg.org
FFmpeg 을 설치해보자.
ㄴ http://ffmpeg.org/download.html
각 OS 에 맞게 이미 빌드된 버전을 다운로드 받을 수 있으며,
Git 로 현재 개발중인 버전 또는 여러 다양한 버전을 가진 소스를 귀하의 시스템에서 빌드 할 수 있도록 지원하고 있다
후자를 선택해보겠다.
작업 폴더를 만들기 위해 다음과 같이 폴더를 생성하자
mkdir ~/ffmpeg_sources
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
다운로드 하고 있는동안 다음 FFMPEG 에 대한 라이브러리에 대해서 설명하고자 한다.
지원하는 라이브러리는 다음과 같다
libavutil
ㄴ 멀티미디어 프로그래밍을 지원하는 유틸리티 라이브러리입니다.
ㄴ 안전한 휴대용 문자열 함수, 난수 생성기, 데이터 구조, 추가 수학 함수, 암호화 및 멀티미디어 관련 기능 (예 : 픽셀 및 샘플 형식의 열거 형)이 포함되어 있습니다.
libswscale
ㄴ 최적화 된 이미지 크기 조정 및 색상 공간 및 픽셀 형식 변환 작업을 수행합니다.
ㄴ Rescaling : 비디오 크기를 변경하는 프로세스입니다. 몇 가지 재조정 옵션과 알고리즘을 사용할 수 있습니다. 이것은 대개 손실 프로세스입니다.
ㄴ 픽셀 포맷 변환 : 이미지 YUV420P에서 RGB24로 변환 된 이미지 형식과 색상 공간을 변환하는 프로세스입니다.
libswresample
ㄴ 최적화 된 오디오 리샘플링, 리 매트릭스 및 샘플 포맷 변환 작업을 수행합니다.
ㄴ 리샘플링 (Resampling) : 예를 들어 44100Hz에서 8000Hz의 높은 샘플 속도와 같이 오디오 속도를 변경하는 과정입니다. .
ㄴ 포맷 변환 : 샘플의 유형을 변환하는 프로세스입니다 (예 : 16 비트 부호있는 샘플에서 부호없는 8 비트 또는 부동 샘플로 변환).
ㄴ Rematrixing : 채널 레이아웃을 스테레오에서 모노로 변경하는 과정입니다.
libavcodec
ㄴ 일반적인 인코딩 / 디코딩 프레임 워크를 제공하며 오디오, 비디오 및 자막 스트림 용 다중 디코더 및 인코더 및 여러 비트 스트림 필터를 포함합니다.
libavformat
ㄴ 오디오, 비디오 및 자막 스트림을 멀티플렉싱 및 디 멀티플렉싱 (다중화 및 디 멀티플렉싱)하는 일반 프레임 워크를 제공합니다.
ㄴ 멀티미디어 컨테이너 포맷을위한 멀티플렉서 및 디멀티플렉터를 포함합니다.
ㄴ 미디어 자원에 액세스하기위한 여러 입출력 프로토콜을 지원합니다.
libavdevice
ㄴ 일반적인 멀티미디어 입 / 출력 장치에서 잡아 내고 렌더링 할 수있는 일반 프레임 워크를 제공하며 Video4Linux2, VfW, DShow 및 ALSA를 비롯한 여러 입출력 장치를 지원합니다.
libavfilter
ㄴ 여러 필터, 소스 및 싱크를 포함하는 일반적인 오디오 / 비디오 필터링 프레임 워크를 제공합니다.
다운로드를 다 받았다면 ffmpeg 폴더를 들어가보자
git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/origin/oldabi
remotes/origin/release/0.10
remotes/origin/release/0.11
remotes/origin/release/0.5
remotes/origin/release/0.6
remotes/origin/release/0.7
remotes/origin/release/0.8
remotes/origin/release/0.9
remotes/origin/release/1.0
remotes/origin/release/1.1
remotes/origin/release/1.2
remotes/origin/release/2.0
remotes/origin/release/2.1
remotes/origin/release/2.2
remotes/origin/release/2.3
remotes/origin/release/2.4
remotes/origin/release/2.5
remotes/origin/release/2.6
remotes/origin/release/2.7
remotes/origin/release/2.8
remotes/origin/release/3.0
remotes/origin/release/3.1
remotes/origin/release/3.2
remotes/origin/release/3.3
remotes/origin/release/3.4
현재 Master 버전으로 선택되어 있으며 다양한 버전을 선택할 수 있다.
설치를 진행 해보자
참고 ) https://trac.ffmpeg.org/wiki/CompilationGuide/Centos
Dependencies 설치
yum install autoconf automake bzip2 cmake freetype-devel gcc gcc-c++ git libtool make mercurial pkgconfig zlib-devel
NASM 설치 ( Assembler )
cd ~/ffmpeg_sources curl -O -L http://www.nasm.us/pub/nasm/releasebuilds/2.13.02/nasm-2.13.02.tar.bz2 tar xjvf nasm-2.13.02.tar.bz2 cd nasm-2.13.02 ./autogen.sh ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" make make install
Yasm 설치 ( Assembler )
cd ~/ffmpeg_sources curl -O -L http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz tar xzvf yasm-1.3.0.tar.gz cd yasm-1.3.0 ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" make make install
libx264 설치 ( Video Encoder )
cd ~/ffmpeg_sources git clone --depth 1 http://git.videolan.org/git/x264 cd x264 PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static make make install
Warning: If you get Found no assembler. Minimum version is nasm-2.13 or similar after running ./configure then the outdated nasm package from the repo is installed. Run yum remove nasm && hash -r and x264 will then use your newly compiled nasm instead.
만약에 assembler 가 설치 되어 있지 않거나 2.13 이하 버전이 설치 되어 있는 경우 yum 으로 nasm 을 지우고 hash -r 하면 새로 설치된 nasm 으로 컴파일 할 수 있다.
H.264 video encoder.
libx265 설치 ( Video Encoder )
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
x265 x264 는 GPL 버전으로 빌드 옵션에 GPL 을 허용해야 한다
--enable-gpl --enable-libx264 --enable-libx265
H.265/HEVC video encoder.
libfdk_aac 설치 ( Audio Encoder )
cd ~/ffmpeg_sources git clone --depth 1 https://github.com/mstorsjo/fdk-aac cd fdk-aac autoreconf -fiv ./configure --prefix="$HOME/ffmpeg_build" --disable-shared make make install
AAC 는 GPL 버전으로 빌드 옵션에 GPL 을 허용해야 한다
--enable-gpl --enable-nonfree --enable-libfdk_aac
AAC audio encoder.
libmp3lame 설치 ( Audio Encoder )
cd ~/ffmpeg_sources curl -O -L http://downloads.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz tar xzvf lame-3.100.tar.gz cd lame-3.100 ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --disable-shared --enable-nasm make make install
--enable-libmp3lame
MP3 audio encoder.
libopus 설치 ( Audio Encoder/Decoder )
cd ~/ffmpeg_sources curl -O -L https://archive.mozilla.org/pub/opus/opus-1.2.1.tar.gz tar xzvf opus-1.2.1.tar.gz cd opus-1.2.1 ./configure --prefix="$HOME/ffmpeg_build" --disable-shared make make install
--enable-libopus
Opus audio decoder and encoder.
libogg 설치 ( vorbis 를 위한 설치 )
cd ~/ffmpeg_sources curl -O -L http://downloads.xiph.org/releases/ogg/libogg-1.3.3.tar.gz tar xzvf libogg-1.3.3.tar.gz cd libogg-1.3.3 ./configure --prefix="$HOME/ffmpeg_build" --disable-shared make make install
Ogg bitstream library
libvorbis 설치 ( Audio Encoder )
cd ~/ffmpeg_sources curl -O -L http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.5.tar.gz tar xzvf libvorbis-1.3.5.tar.gz cd libvorbis-1.3.5 ./configure --prefix="$HOME/ffmpeg_build" --with-ogg="$HOME/ffmpeg_build" --disable-shared make make install
--enable-libvorbis
Vorbis audio encoder. Requires libogg
libvpx 설치 ( Video Encoder )
cd ~/ffmpeg_sources git clone --depth 1 https://chromium.googlesource.com/webm/libvpx.git cd libvpx ./configure --prefix="$HOME/ffmpeg_build" --disable-examples --disable-unit-tests --enable-vp9-highbitdepth --as=yasm make make install
--enable-libvpx
VP8/VP9 video encoder and decoder.
~/ffmpeg_build 에 필요한 라이브러리는 전부 설치되었다
FFmpeg 을 설치해 보자
cd ~/ffmpeg_sources git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg cd ffmpeg PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \ --prefix="$HOME/ffmpeg_build" \ --pkg-config-flags="--static" \ --extra-cflags="-I$HOME/ffmpeg_build/include" \ --extra-ldflags="-L$HOME/ffmpeg_build/lib" \ --extra-libs=-lpthread \ --extra-libs=-lm \ --bindir="$HOME/bin" \ --enable-gpl \ --enable-libfdk_aac \ --enable-libfreetype \ --enable-libmp3lame \ --enable-libopus \ --enable-libvorbis \ --enable-libvpx \ --enable-libx264 \ --enable-libx265 \ --enable-nonfree make make install hash -r
CPU 에 맞게 make 에 옵션을 지정하여 좀더 빠르게 진행도 가능하다.
이 부분은 추후에 진행 하고자 하고 오늘은 여기까지 ~ 후 우
root@linux-01:/root> ffmpeg
ffmpeg version N-89674-g57d0c24132 Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-18)
configuration: --prefix=/root/ffmpeg_build --pkg-config-flags=--static --extra-cflags=-I/root/ffmpeg_build/include --extra-ldflags=-L/root/ffmpeg_build/lib --extra-libs=-lpthread --extra-libs=-lm --bindir=/root/bin --enable-gpl --enable-libfdk_aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-nonfree
libavutil 56. 7.100 / 56. 7.100
libavcodec 58. 9.100 / 58. 9.100
libavformat 58. 3.100 / 58. 3.100
libavdevice 58. 0.100 / 58. 0.100
libavfilter 7. 8.100 / 7. 8.100
libswscale 5. 0.101 / 5. 0.101
libswresample 3. 0.101 / 3. 0.101
libpostproc 55. 0.100 / 55. 0.100
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
'시스템' 카테고리의 다른 글
CentOS 6 Yum repository update (0) | 2021.03.18 |
---|---|
Window10 WSL 로 Ubuntu 설치하기 (0) | 2019.01.08 |
메일 서버를 이용해 메일을 보내보자 (0) | 2017.12.16 |
Python 서버 구축하기 [CGIHTTPServer] (0) | 2017.12.03 |
Nginx 설치하기 (0) | 2017.11.25 |