Блог веб-разработчика: в помощь программистам

Ставим и настраиваем FFmpeg, FFmpeg-PHP и дополнительные кодеки


Итак, ниже я подробно опишу как поставить на ваш Linux-сервер FFmpeg, FFmpeg-PHP, Mplayer, Mencoder , flv2tool, LAME MP3 Encoder, Libogg, Libvorbis.
А нафиг это всё мне нужно – спросите вы, отвечу – при помощи этого набора вы сможете конвертировать видео у себя на сервере, делать скриншоты из видео роликов и много чего другого, а всё это вам приходиться если вы надумаете у себя поднять сервис типа или ещё более гениальную вещь :)
Начну с описания своего дистрибутива

[root@server /]# uname -a
Linux server.clientservers.org.ua 2.6.18-8.1.1.el5 #1 SMP Mon Apr 9 09:46:54 EDT 2007 i686 i686 i386 GNU/Linux



cd /usr/local/src
#для начала выкачаем всё необходимое:
wget http://www3.mplayerhq.hu/MPlayer/releases/codecs/essential-20061022.tar.bz2
wget http://rubyforge.org/frs/download.php/9225/flvtool2_1.0.5_rc6.tgz
wget http://easynews.dl.sourceforge.net/sourceforge/lame/lame-3.97.tar.gz
wget http://downloads.sourceforge.net/ffmpeg-php/ffmpeg-php-0.5.2.1.tbz2
wget http://downloads.xiph.org/releases/ogg/libogg-1.1.3.tar.gz
wget http://downloads.xiph.org/releases/vorbis/libvorbis-1.1.2.tar.gz
#извлекаем архивы:
tar zxvf flvtool2_1.0.5_rc6.tgz
tar zxvf lame-3.97.tar.gz
tar zxvf libogg-1.1.3.tar.gz
tar zxvf libvorbis-1.1.2.tar.gz
tar zxvf flvtool2_1.0.5_rc6.tgz
tar jxvf essential-20061022.tar.bz2
tar jxvf ffmpeg-php-0.5.2.1.tbz2
#сделаем папочку под это дело:
mkdir /usr/local/lib/codecs/
#JUST IN CASE:
yum install gcc gmake make libcpp libgcc libstdc++ gcc4 gcc4-c++ gcc4-gfortran ruby svn
#проверяем SVN репозитарии:
svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
svn checkout svn://svn.mplayerhq.hu/mplayer/trunk mplayer
cd /usr/local/src/mplayer
svn update
cd /usr/local/src
#Копируем кодеки для MPLAYER:
mv /usr/local/src/essential-20061022/* /usr/local/lib/codecs/
chmod -R 755 /usr/local/lib/codecs/
#делаем temp директорию
mkdir /usr/local/src/tmp
chmod 777 /usr/local/src/tmp
export TMPDIR=/usr/local/src/tmp
#LAME:
cd /usr/local/src/lame-3.97
./configure
make && make install
#LIBOGG:
cd /usr/local/src/libogg-1.1.3
./configure && make && make install
#LIBVORBIS:
cd /usr/local/src/libvorbis-1.1.2
./configure && make && make install
#FLVTOOL2:
cd /usr/local/src/flvtool2_1.0.5_rc6/
ruby setup.rb config
ruby setup.rb setup
ruby setup.rb install
cd /usr/local/src/
cd /usr/local/src/mplayer
./configure && make && make install
#FFMPEG:
cd /usr/local/src/ffmpeg/
./configure --enable-libmp3lame --disable-mmx --enable-shared
make
make install
ln -s /usr/local/lib/libavformat.so.50 /usr/lib/libavformat.so.50
ln -s /usr/local/lib/libavcodec.so.51 /usr/lib/libavcodec.so.51
ln -s /usr/local/lib/libavutil.so.49 /usr/lib/libavutil.so.49
ln -s /usr/local/lib/libmp3lame.so.0 /usr/lib/libmp3lame.so.0
ln -s /usr/local/lib/libavformat.so.51 /usr/lib/libavformat.so.51
ln -s /usr/local/lib/libavformat.so.52 /usr/lib/libavformat.so.52
ln -s /usr/local/lib/libavdevice.so.52 /usr/lib/libavdevice.so.52
cd /usr/local/src/
#FFMPEG-PHP:
cd /usr/local/src/ffmpeg-php-0.5.2.1/
phpize
./configure
make
make install

#добавляем расширение в наш php.ini
echo 'extension=/usr/local/lib/php/extensions/no-debug-non-zts-20060613/ffmpeg.so' >> /usr/local/Zend/etc/php.ini
#рестартуем веб-серве
service httpd restart

Дальше запускаем Скрипт с phpinfo() и ищем раздел ffmpeg
У меня вот так получилось:
ffmpeg
ffmpeg support (ffmpeg-php) enabled
ffmpeg-php version 0.5.2.1
libavcodec version Lavc51.57.0
libavformat version Lavf52.14.0
ffmpeg-php gd support enabled

Directive Local Value Master Value
ffmpeg.allow_persistent 0 0

Всё работает, всё круто :) Если у кого-то не получилось – не отчаивайтесь а пишите в коментах.

  • ./configure

  • коро

  • напишите ICQ 9367226

  • checking for ffmpeg support… yes, shared
    checking whether to force gd support in ffmpeg-php… no
    checking for ffmpeg headers…
    configure: error: ffmpeg headers not found. Make sure ffmpeg is compiled as shared libraries using the –enable-shared option

  • Спасибо, реально помогло ))))

  • Вот как надо компилить ffmpeg, потому что если его просто так скомпилить он не фига поддерживать не будет http://dotblog.ru/2009/05/20/sborka-ffmpeg-s-maksimalnojj-podderzhkojj-kodekov-i-prochikh-funkcijj/

  • У меня выводит: ffmpeg-php gd support disabled, как включить?

  • Могди бы Вы написать для НЕ ПРОГРАММИСТА как пошагово (для совсем тупых) установить на сервер ffmpeg?

You can follow any responses to this entry through the RSS 2.0 feed.