Сборка ffmpeg на CentOS 6.0 x64 для Web видео mp4, webm, ogv

Буду описывать установку на чистый сервер. Часть компонентов которые использовал для своих нужд (mysql, , etc) я выбросил. Для начала обновим все пакеты и установим необходимое из стандартного репозитория

<>  &amp;&amp;  upgrade
 install git  man mlocate gcc gcc-c++ make check- libogg
yum groupinstall "Development Tools" -y
</code>

Добавим в конфиг путь для поиска библиотек:

<code>echo /usr/local/lib &gt;/etc/ld.so.conf.d/local.conf</code>

Закачаем необходимые исходники:

<code>cd /usr/local/src
git clone git://github./yasm/yasm.git yasm
git clone http://git..org/webm/libvpx.git libvpx
git clone git://git.videolan.org/ffmpeg.git ffmpeg
git clone git://git.videolan.org/x264.git libx264
wget http://downloads.sourceforge.net/project//-src/-2.7/-2.7.tar.bz2
wget http://sourceforge.net/projects/faac/files/faac-src/faac-1.28/faac-1.28.tar.gz
wget http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.1.tar.gz
wget http://downloads.xiph.org/releases/theora/libtheora-1.1.1.tar.gz
wget http://downloads.xiph.org/releases/vorbis/-1.3.2.tar.gz
</code>

Распакуем:

<code>tar -xvf faad2-2.7.tar.bz2
tar -xvf faac-1.28.tar.gz
tar xf lame-3.99.1.tar.gz
tar xfv libtheora-1.1.1.tar.gz
tar xfv libvorbis-1.3.2.tar.gz
</code>

Ну и начинаем собирать.
Необходимая билиотека для libx264

<code>cd yasm
./.sh &amp;&amp; make &amp;&amp; make install</code>

Добавим библиотеки для работы со звуком:

<code>cd ../faad2-2.7
./configure --with-mp4v2
make clean &amp;&amp; make &amp;&amp; make install

cd ../faac-1.28
./configure --with-mp4v2
vi common/mp4v2/.h
#comment line 126
#:126
#/*char *strcasestr(const char *, const char *needle);*/
make clean &amp;&amp; make &amp;&amp; make install

cd ../lame-3.99.1
./configure
make clean &amp;&amp; make &amp;&amp; make install

cd ../libvorbis-1.3.2
./configure
make clean &amp;&amp; make &amp;&amp; make install
cd ../libtheora-1.1.1
./configure
make clean &amp;&amp; make &amp;&amp; make install</code>

Далее пошло :

<code>cd ../libvpx
./configure --=_64-linux-gcc  --enable-pic --enable-vp8 --enable-shared
make clean &amp;&amp; make &amp;&amp; make install

cd ../libx264/
./configure --enable-shared --enable-static --prefix=/usr
make clean &amp;&amp; make &amp;&amp; make install

cd ../ffmpeg/
./configure --prefix=/usr --enable-shared  --enable-libfaac   --enable-libvpx   --enable-libx264  --enable-libmp3lame  --enable-libtheora   --enable-libvorbis   --enable-pic  --enable-gpl --enable-nonfree
make clean &amp;&amp; make &amp;&amp; make install
ldconfig -v
</code>

По идее после всех шагов у вас должна быть установлена последняя версия рабочего ffmpeg-а:

<code>[root@ffmpeg ffmpeg]# ffmpeg
ffmpeg version N-34650-g083d9ba, Copyright (c) 2000-2011 the FFmpeg developers
  built on Nov 11 2011 00:00:37 with gcc 4.4.4 20100726 (Red Hat 4.4.4-13)
  configuration: --prefix=/usr --enable-shared --enable-libfaac --enable-libvpx --enable-libx264 --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-pic --enable-gpl --enable-nonfree
  libavutil    51. 24. 1 / 51. 24. 1
  libavcodec   53. 31. 0 / 53. 31. 0
  libavformat  53. 20. 0 / 53. 20. 0
  libavdevice  53.  4. 0 / 53.  4. 0
  libavfilter   2. 47. 2 /  2. 47. 2
  libswscale    2.  1. 0 /  2.  1. 0
  libpostproc  51.  2. 0 / 51.  2. 0
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
Use -h to get full  or, even better, run 'man ffmpeg'
</code>

Для конвертации мы используем следующие флаги:

OGV

<code>ffmpeg -i test.avi -acodec libvorbis -ab 192k -ac 2 -ar 44100 -b 1500k -s 1280x720 test.cvt.ogv</code>

WebM

<code>ffmpeg -i test.avi  -acodec libvorbis -ab 192k -ac 2 -ar 44100 -b 1500k -s 1280x720 test.cvt.webm</code>

Mp4

<code>ffmpeg -i test.avi -ab 192k -ac 2 -ar 44100 -b 1500k -s 1280x720 - 21 -refs 2 -bt 1500k test.cvt.mp4</code>
Буду рад если кто-то подскажет более оптимальные.

Запись навигация

Top