Песочница →
Сборка ffmpeg на CentOS 6.0 x64 для Web видео mp4, webm, ogv
Работая с одним проектом, столкнулся с необходимостью заливки видео на сервер (качественные ролики длительностью 2-3 минуты) с последующей репликаций их на S3 & дистрибьюцией через CouldFront. На хостинге стоит Centos 6.0 x64. ffmpeg который в дополнительных репозиториях к сожалению лохматой версии 6.1 и не включает в себя vp8 и иже с ним. Поэтому пришлось заниматься собственноручной сборкой. К сожалению пошарив по инету толкового гайда не нашел, поэтому почитав в округе на данную тему откатал для себя гайд на VirtualBox. Буду рад если кому-то пригодится. Библиотеки были выбраны последние на момент начала ноября.
Буду описывать установку на чистый сервер. Часть компонентов которые использовал для своих нужд (mysql, httpd, etc) я выбросил. Для начала обновим все пакеты и установим необходимое из стандартного репозитория
Добавим в конфиг путь для поиска библиотек
закачаем необходимые исходники
Распакуем
Ну и начинаем собирать.
Необходимая билиотека для libx264
добавим библиотеки для работы со звуком.
Далее пошло видео:
По идее после всех шагов у вас должна быть установлена последняя версия рабочего ffmpeg-а.
Для конвертации мы используем следующие флаги.
OGV
WebM
Mp4
Буду рад если кто-то подскажет более оптимальные.
Буду описывать установку на чистый сервер. Часть компонентов которые использовал для своих нужд (mysql, httpd, etc) я выбросил. Для начала обновим все пакеты и установим необходимое из стандартного репозитория
yum update && yum upgrade
yum install git wget man mlocate gcc gcc-c++ checkinstall make check-devel libogg
yum groupinstall "Development Tools" -y
Добавим в конфиг путь для поиска библиотек
echo /usr/local/lib >/etc/ld.so.conf.d/local.conf
закачаем необходимые исходники
cd /usr/local/src
git clone git://github.com/yasm/yasm.git yasm
git clone http://git.chromium.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/faac/faad2-src/faad2-2.7/faad2-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/libvorbis-1.3.2.tar.gz
Распакуем
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
Ну и начинаем собирать.
Необходимая билиотека для libx264
cd yasm
./autogen.sh && make && make install
добавим библиотеки для работы со звуком.
cd ../faad2-2.7
./configure --with-mp4v2
make clean && make && make install
cd ../faac-1.28
./configure --with-mp4v2
vi common/mp4v2/mpeg4ip.h
#comment line 126
#:126
#/*char *strcasestr(const char *haystack, const char *needle);*/
make clean && make && make install
cd ../lame-3.99.1
./configure
make clean && make && make install
cd ../libvorbis-1.3.2
./configure
make clean && make && make install
cd ../libtheora-1.1.1
./configure
make clean && make && make install
Далее пошло видео:
cd ../libvpx
./configure --target=x86_64-linux-gcc --enable-pic --enable-vp8 --enable-shared
make clean && make && make install
cd ../libx264/
./configure --enable-shared --enable-static --prefix=/usr
make clean && make && 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 && make && make install
ldconfig -v
По идее после всех шагов у вас должна быть установлена последняя версия рабочего ffmpeg-а.
[root@ffmpeg ffmpeg]# ffmpeg
ffmpeg version N-34650-g083d9ba, Copyright © 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 help or, even better, run 'man ffmpeg'
Для конвертации мы используем следующие флаги.
OGV
-acodec libvorbis -ab 192k -ac 2 -ar 44100 -b 1500k -s 1280x720
WebM
-acodec libvorbis -ab 192k -ac 2 -ar 44100 -b 1500k -s 1280x720
Mp4
-ab 192k -ac 2 -ar 44100 -b 1500k -s 1280x720 -level 21 -refs 2 -bt 1500k
Буду рад если кто-то подскажет более оптимальные.
13.11.2011 16:57+0400