ffmpeg 를 이용한 비디오 플레이어 만들기

예전에.. ffmpeg를 MinGW로 빌드해서 간단히 테스트 해본적이 있다..
예전에는 이런 튜토리얼을 찾지 못해서.. 고생하면서 테스트한적이 있는데..
괜찮은 번역 자료가 있어 올려둠. 번역자님께 감사.

출처: http://hybridego.net



홈페이지: http://www.videolan.org/developers/x264.html


x264는 H.264/AVC 비디오 스트림을 인코딩하는 라이브러리다. 디코딩 기능은 포함하고 있지 않다. GPL 라이선스로 배포되며 이는 오픈 소스이므로 이용에 특별한 제약은 없다.
SIMD (MMX,SSE, SSE2, SSE3, 3DNow! 등) 환경에서도 최적화되어 있다.

x264 is a free software library and application for encoding video streams into the H.264/MPEG-4 AVC format, and is is released under the terms of the GNU GPL.

다운로드: x264-snapshot-20110323-2245


홈페이지: http://www.theora.org/


Theora is a free and open video compression format from the Xiph.org Foundation. Like all our multimedia technology it can be used to distribute film and video online and on disc without the licensing and royalty fees or vendor lock-in associated with other formats.

Theora scales from postage stamp to HD resolution, and is considered particularly competitive at low bitrates. It is in the same class as MPEG-4/DiVX, and like the Vorbis audio codec it has lots of room for improvement as encoder technology develops.

다운로드: 1.1.1


홈페이지: http://www.webmproject.org/code/

VP8(브이피 에잇)은 구글이 인수한 On2 테크놀로지스의 비디오 코덱 중 하나이다.
2010년 5월 19일, 구글 I/O에서 BSD 라이선스 형식의 특허 대응을 위해, 수정 라이선스로 오픈 소스 소프트웨어화한 다음 마트료시카(Matroska) 기반의 자체 포맷 WebM 함께 오픈 소스로 공개하였다. 이 라이선스는 GPL과의 호환성 문제가 지적되고 있었지만, 이후 라이선스를 바꿔 특허 조항을 삭제했기 때문에 문제가 해소되었다. 개발에는 Xiph.Org가 협력하고 있다.

구글은 유투브에서 모든 동영상을 WebM으로 변환시킬 것을 표명했다. 또한, 모질라는 파이어폭스에서 WebM에 지원한다고 표명을 했으며, 어도비는 차기 플래쉬 릴리스에서 VP8에 대응한다고 발표하였다.

구글은 VP8 기술을 이용한 정지 영상 포맷 WebP도 개발하여 공개하였다.

libvpx is the VP8 codec SDK used to encode and decode video streams,
typically within a WebM format media file.

다운로드: 0.9.6


홈페이지: http://www.xvid.org/


Xvid(이전 명칭은 XviD)는 MPEG-4 표준을 따르는 영상 코덱 라이브러리이다. Xvid는 b-프레임, 전체와 1/4 화소 움직임 보상, 루미 마스크, 격자 양자화와 같은 MPEG-4 진보된 단순 프로필 기능을 지원한다. H.263, MPEG과 커스텀 양자화 매트릭스 등도 지원한다.
Xvid는 DivX(Xvid는 DivX를 거꾸로 씀)의 첫 번째 경쟁 코덱이다. DivX는 상용 소프트웨어이지만, Xvid는 자유/오픈 소스 소프트웨어이고, 마이크로소프트 윈도와 맥 OS X만을 지원하는 DivX와는 대조적으로, Xvid는 다양한 플랫폼과 운영 체제에서 사용될 수 있다.

Xvid is a video codec for PC, whereas codec is an abbreviation for [co]der/[dec]oder, hence describes a program to encode and decode digital video. The purpose of encoding video data is to reduce redundancies – that means to make it smaller for faster transmission over computer networks or for more efficient storage on computer disks.

Hence, Xvid can somewhat be seen as a ZIP for video. But unlike ZIP, Xvid is not lossless. That means that a video after compression and decompression with Xvid won’t be identical to the original source. Typically however, a difference to the source is visually imperceptible.

So Xvid removes information that is not important for human perception, which is somewhat similar to MP3 for audio. This enables very high compression rates that allow to effectively work with digital video on home computers at all. To give an example: uncompressed digital video is huge and requires about 100 GB per hour at PAL resolution. The same video would require just 500 MB per hour at very high quality when compressed with Xvid. That is a compression ratio of 200:1.

Xvid is Free Software and released under the GNU GPL license. This means that the source code of the software is publically available and programmers are allowed to make modifications to the code. Also, redistribution of Xvid is permitted but only under the terms of the GPL license.

So the GPL grants recipients more freedoms than it’s common with other software. Therefore, and due to its very high image quality that has been approved in independent tests conducted by third parties the Xvid codec has gained great popularity in the recent past and has become the codec of choice when it comes to exchanging digital video.

다운로드: 1.3.1

libav (ffmpeg)

홈페이지: http://libav.org/

ffmpeg 프로젝트가 libav로 변경이 되었다.

Libav is a complete, cross-platform solution to record, convert and stream audio and video. It includes libavcodec – the leading audio/video codec library.

libav는 libavcodec 라이브러리를 내장하고 있음.
libavcodec은 자유 소프트웨어이자 LGPL 라이선스가 걸린 오픈 소스이다. 이 코덱은 영상 데이터와 음성 데이터를 인코딩하고 디코딩할 수 있다. C 언어로 구현되었다. FFmpeg 프로젝트의 한 부분을 차지하고 있으며 많은 자유 소프트웨어, 오픈 소스 응용 프로그램들이 libavcodec을 사용하고 있다.

libavcodec 의 간단한 사용설명은 여기를 볼것.

혹은 SDL을 이용한 동영상 플레이러 만다는 방법을 기술한 문서가 필요하면 여기를 볼것.

아래의 옵션으로 컴파일 되었음.

./configure --prefix=/works/mingw-libs/release/libav-0.7_beta2 --enable-memalign-hack --enable-libx264 --enable-libxvid --enable-gpl --enable-libvorbis --enable-libmp3lame --enable-libvpx --enable-libtheora --enable-libspeex --enable-pthreads --enable-zlib --enable-frei0r --enable-bzlib --enable-runtime-cpudetect --target-os=mingw32 --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-version3 --enable-librtmp --enable-libxavs --enable-avisynth

bzip2 1.0.6 http://www.bzip.org
Frei0r 1.3 http://frei0r.dyne.org/
opencore-amr 0.1.2 http://sourceforge.net/projects/opencore-amr/
FreeType 2.4.4 http://www.freetype.org/
gsm 1.0.13-3 http://libgsm.sourcearchive.com/
LAME 3.98.4 http://lame.sourceforge.net/
OpenJPEG 1.4 http://www.openjpeg.org/
RTMP git-6155179b http://rtmpdump.mplayerhq.hu/
Schroedinger 1.0.10 http://diracvideo.org/
Speex 1.2rc1 http://www.speex.org/
Theora 1.1.1 http://www.theora.org/
Vorbis 1.3.2 http://www.vorbis.com/
libvpx 0.9.6 http://www.webmproject.org/code/
x264 git-b5a8ad7e http://www.videolan.org/developers/x264.html
XAVS r51 http://xavs.sourceforge.net/
Xvid 1.3.1 http://www.xvid.org/
zlib 1.2.5 http://zlib.net/

다운로드: 0.6.1, 0.7 beta 2