ffmpeg
은 빨리감기의 약자인 FF
(Fast-Forward)와 mpeg
(비디오 표준 그룹)의 합성어입니다.ffmpeg
로고에 표시되어 있는 지그재그 모양은 mpeg
코덱에서 사용하는 엔트로피 인코딩 방식을 표현한 것이라고 합니다. (세상에..)Fabrice Bellard
라는 프랑스 출신의 개발자가 만들었고 이 사람은 QEMU, ARM기반의 C Compiler인 Tiny C Compiler와 같은 소프트웨어도 개발했습니다.
그 후 Michael Niedermayer
라는 개발자가 약 11년간 개발을 주도했다고 해요 (2015년까지)
그리고 2014년에 구글 개발자 2명(Mateusz Jurczyk
, Gynvael Coldwind
)이 퍼지 테스트를 통해 약 1,000개의 버그를 수정했다고 발표합니다.
이런거 개발하는 분들 머리속이 너무 궁금함.. -.-
Blender
, VLC
, M Player
, Google Chrome
등에서 사용하고 있습니다.libavcodec
, libavformat
, 그리고 명령행 도구인 libav
의 도구를 사용하고 있는 것으로 알려져있습니다.
libavcodec
은 오디오와 비디오 코덱 인코더 및 디코더를 포함하고 있는 라이브러리 입니다.
libavformat
은 멀티미디어 컨테이너 포멧을 위한 먹서와 디먹서를 포함하고 있는 라이브러리 입니다.
ffmpeg
은 비디오 및 오디오를 포함한 다양한 멀티미디어 파일, 실시간 스트림을 처리하기 위해 다양한 라이브러리를(외부 라이브러리 포함) 제공합니다.기본이니 기술 얘기는 짧게
무료가 아닌 라이브러리를 쓸 때는 build 과정에서-configure --enable-nonfree
옵션을 활성화 해 줘야 합니다. 이 경우 결과물로 나온 바이너리 파일 및 라이브러리를 재배포해서는 안됩니다.
scp
혹은 rsync
와 같은 방법으로 내려받은 후 빌드를 진행 할 수도 있습니다.
# Ubuntu 기준으로 간략하게 설명드리겠습니다.
# 여기서는 간단하게만 알아보고 더 많은 빌드 방법은 차근차근 업데이트 하겠습니다.
# 원하는 패키지나 빌드 방법이 있으시다면 댓글로 알려주세요. 아는 범위 내에서 설명드리겠습니다 :)
# 빌드를 위해 ffmpeg 프로젝트를 git으로부터 clone 합니다.
$ git clone https://github.com/FFmpeg/FFmpeg.git
$ cd ./FFmpeg
# 원하는 버전을 확인합니다.
$ git tag -l
...
n3.2.4
n3.2.5
n3.2.6
n3.2.7
n3.2.8
n3.2.9
n3.3
n3.3-dev
n3.3.1
n3.3.2
n3.3.3
n3.3.4
n3.3.5
n3.3.6
n3.3.7
n3.3.8
n3.3.9
n3.4
n3.4-dev
n3.4.1
n3.4.2
n3.4.3
n3.4.4
n3.4.5
n3.4.6
n3.4.7
n3.5-dev
n4.0
n4.0.1
...
# 빌드 할 버전으로 checkout 합니다.
$ git checkout tags/n4.0.1
# 빌드를 해봅니다.
./configure
sudo make install -j`nproc`
--depth=1
을 추가하는 경우가 있습니다. 이 경우 최근 커밋만 클론해오므로 빼야합니다.