Установка FFMPEG и FFMPEG-PHP на CentOS
Запись создана 12 марта, 2008
Выкачиваем сорцы:
[cc lang=»bash»]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://superb-west.dl.sourceforge.net/sourceforge/ffmpeg-php/ffmpeg-php-0.5.0.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[/cc]
Распаковываем:
[cc lang=»bash»]bunzip2 essential-20061022.tar.bz2; tar xvf essential-20061022.tar
tar zxvf flvtool2_1.0.5_rc6.tgz
tar zxvf lame-3.97.tar.gz
bunzip2 ffmpeg-php-0.5.0.tbz2; tar xvf ffmpeg-php-0.5.0.tar
tar zxvf libogg-1.1.3.tar.gz
tar zxvf libvorbis-1.1.2.tar.gz[/cc]
Устанавливаем кодеки:
[cc lang=»bash»]mkdir /usr/local/lib/codecs/
mv essential-20061022/* /usr/local/lib/codecs/
chmod -R 755 /usr/local/lib/codecs/[/cc]
Ставим SVN/Ruby:
[cc lang=»bash»]yum install subversion
yum install ruby
yum install ncurses-devel[/cc]
берём свежий FFMPEG/MPlayer из SVN:
[cc lang=»bash»]svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
svn checkout svn://svn.mplayerhq.hu/mplayer/trunk mplayer[/cc]
В файл /etc/ld.so.conf вставим строчку: /usr/local/lib
затем выполним: ldconfig -v
Переходим к установке LAME libOGG libVorbis flvtool2 MPlayer FFMPEG
[cc lang=»bash»]cd /usr/local/src/lame-3.97
./configure
make && make install
cd /usr/local/src/libogg-1.1.3
./configure
make && make install
cd /usr/local/src/libvorbis-1.1.2
./configure
make && make install
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/mplayer
./configure
make && make install
cd /usr/local/src/ffmpeg
./configure —enable-libmp3lame —enable-libogg —enable-libvorbis —disable-mmx —enable-shared
echo ‘#define HAVE_LRINTF 1’ >> config.h
make && make install [/cc]
Завершаем установку кодеков:
[cc lang=»bash»]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[/cc]
Перед установкой FFMPEG-PHP ставим:
[cc lang=»bash»]yum install automake
yum install autoconf
yum install libtoolх[/cc]
Переходим к установке FFMPEG-PHP:
[cc lang=»bash»]cd /usr/local/src/ffmpeg-php-0.5.0
phpize
./configure
make && make install[/cc]
Включаем FFMPEG-PHP как расширение к PHP. Для этого в конфиг php.ini добавим:
extension=ffmpeg.so
Рестартим апача: service httpd restart
для проверки загрузился ли FFMPEG-PHP корректно создадим файл phpinfo.php содержащий:
[cc lang=»php»][/cc]
В выводе phpinfo должен появиться блок ffmpeg.
Внимание: Господа, если у Вас не получается выполнить установку самостоятельно, готов помочь Вам за небольшое вознаграждение. Мои контакты в колонке справа.
Схожие темы
» Запись из раздела PHP, Unix | 33 комментария
Комментарии
33 комментария to “Установка FFMPEG и FFMPEG-PHP на CentOS”
Ответить
На x86_64 может возникать ошибка:
checking for ffmpeg support… yes, shared
checking for ffmpeg headers… configure: error: ffmpeg headers not found. Make sure you’ve built ffmpeg as shared libs using the —enable-shared option
лечится так:
mkdir /usr/local/include/ffmpeg
ln -s /usr/local/include/libavcodec/avcodec.h /usr/local/include/ffmpeg
ln -s /usr/local/include/libavcodec/opt.h /usr/local/include/ffmpeg
Затем скопировать либы в папку с исходниками
cp /usr/local/include/libavformat/avio.h ffmpeg-php-0.5.0
cp /usr/local/include/libavformat/avformat.h ffmpeg-php-0.5.0
пришлось прибегнуть к лечению из коментов т.к. выдавало:
shared libs using the –enable-shared option
Инсталил, но в phpinfo нет ffmpeg? а при запросе php -r ‘phpinfo();’ | grep ffmpeg
пишет:
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib/php/modules/ffmpeg.so’ — /usr/lib/php/modules/ffmpeg.so: undefined symbol: av_free_static in Unknown on line 0
Подскажите как решить…
кстати extension_dir = «/usr/lib64/php/modules»
непонял почему он ищет его в /usr/lib/php/modules/ffmpeg.so
ну хоть скажите что незнаете тогда….
Когда собираете ffmpeg-php сделайте make test
обычно это помогает понять в чём проблема.
Сделал все как описано и при установке на CentOS выдает ошибку:
-bash-3.2# make && make test && make install
/bin/sh /usr/local/src/ffmpeg-php-0.5.0/libtool —mode=compile gcc -I. -I/usr/local/src/ffmpeg-php-0.5.0 -DPHP_ATOM_INC -I/usr/local/src/ffmpeg-php-0.5.0/include -I/usr/local/src/ffmpeg-php-0.5.0/main -I/usr/local/src/ffmpeg-php-0.5.0 -I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib -I/usr/local/include/ffmpeg -DHAVE_CONFIG_H -g -O2 -Wall -fno-strict-aliasing -c /usr/local/src/ffmpeg-php-0.5.0/ffmpeg_frame.c -o ffmpeg_frame.lo
gcc -I. -I/usr/local/src/ffmpeg-php-0.5.0 -DPHP_ATOM_INC -I/usr/local/src/ffmpeg-php-0.5.0/include -I/usr/local/src/ffmpeg-php-0.5.0/main -I/usr/local/src/ffmpeg-php-0.5.0 -I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib -I/usr/local/include/ffmpeg -DHAVE_CONFIG_H -g -O2 -Wall -fno-strict-aliasing -c /usr/local/src/ffmpeg-php-0.5.0/ffmpeg_frame.c -fPIC -DPIC -o .libs/ffmpeg_frame.o
/usr/local/src/ffmpeg-php-0.5.0/ffmpeg_frame.c: In function ‘_php_convert_frame’:
/usr/local/src/ffmpeg-php-0.5.0/ffmpeg_frame.c:162: warning: implicit declaration of function ‘img_convert’
/usr/local/src/ffmpeg-php-0.5.0/ffmpeg_frame.c: In function ‘_php_crop_frame’:
/usr/local/src/ffmpeg-php-0.5.0/ffmpeg_frame.c:215: warning: implicit declaration of function ‘img_copy’
/usr/local/src/ffmpeg-php-0.5.0/ffmpeg_frame.c: In function ‘_php_resample_frame’:
/usr/local/src/ffmpeg-php-0.5.0/ffmpeg_frame.c:237: error: ‘ImgReSampleContext’ undeclared (first use in this function)
/usr/local/src/ffmpeg-php-0.5.0/ffmpeg_frame.c:237: error: (Each undeclared identifier is reported only once
/usr/local/src/ffmpeg-php-0.5.0/ffmpeg_frame.c:237: error: for each function it appears in.)
/usr/local/src/ffmpeg-php-0.5.0/ffmpeg_frame.c:237: error: ‘img_resample_ctx’ undeclared (first use in this function)
/usr/local/src/ffmpeg-php-0.5.0/ffmpeg_frame.c:263: warning: implicit declaration of function ‘img_resample_full_init’
/usr/local/src/ffmpeg-php-0.5.0/ffmpeg_frame.c:276: warning: implicit declaration of function ‘img_resample’
/usr/local/src/ffmpeg-php-0.5.0/ffmpeg_frame.c:281: warning: implicit declaration of function ‘img_resample_close’
make: *** [ffmpeg_frame.lo] Error 1
-bash-3.2#
Как решить проблему?
При попытке:
Затем скопировать либы в папку с исходниками
cp /usr/local/include/libavformat/avio.h ffmpeg-php-0.5.0
cp /usr/local/include/libavformat/avformat.h ffmpeg-php-0.5.0
Пишет:
cp: cannot stat `/usr/local/include/libavformat/avio.h’: No such file or directory
…
Чья это директория? Почему её у меня нет..что не установилось…
ps я в линуксе новичек, помогите плиз
ivam, где Вы взяли рекоммендацию скопировать?
внимательно пройдитесь по всей инструкции.
admin, у меня возникает ошибка при конфигурации ffmpeg-php-0.5.0
checking for ffmpeg headers… configure: error: ffmpeg headers not found. Make sure you’ve built ffmpeg as shared libs using the —enable-shared option
вы описали способ лечения в первых комментах, но при попытке ввести команды
cp /usr/local/include/libavformat/avio.h ffmpeg-php-0.5.0
cp /usr/local/include/libavformat/avformat.h ffmpeg-php-0.5.0
я получаю ошибку
cp: cannot stat `/usr/local/include/libavformat/avio.h’: No such file or directory
Подскажите пожалуйста, при выполнении ./configure выдается такое:
Unable to create and execute files in /tmp. Set the TMPDIR environment
variable to another directory and make sure that /tmp is not mounted
noexec.
Sanity test failed.
Смена TMPDIR никакого результата не дала.
Заранее спасибо.
При выполнении make на ffmpeg-php выдает ошибку:
/bin/sh /tmp/ffmpeg/ffmpeg-php-0.5.0/libtool —mode=compile gcc -I. -I/tmp/ffmpeg/ffmpeg-php-0.5.0 -DPHP_ATOM_INC -I/tmp/ffmpeg/ffmpeg-php-0.5.0/include -I/tmp/ffmpeg/ffmpeg-php-0.5.0/main -I/tmp/ffmpeg/ffmpeg-php-0.5.0 -I/usr/include/php5 -I/usr/include/php5/main -I/usr/include/php5/TSRM -I/usr/include/php5/Zend -I/usr/include/php5/ext -I/usr/include/php5/ext/date/lib -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/local/include -DHAVE_CONFIG_H -g -O2 -Wall -fno-strict-aliasing -c /tmp/ffmpeg/ffmpeg-php-0.5.0/ffmpeg_frame.c -o ffmpeg_frame.lo
gcc -I. -I/tmp/ffmpeg/ffmpeg-php-0.5.0 -DPHP_ATOM_INC -I/tmp/ffmpeg/ffmpeg-php-0.5.0/include -I/tmp/ffmpeg/ffmpeg-php-0.5.0/main -I/tmp/ffmpeg/ffmpeg-php-0.5.0 -I/usr/include/php5 -I/usr/include/php5/main -I/usr/include/php5/TSRM -I/usr/include/php5/Zend -I/usr/include/php5/ext -I/usr/include/php5/ext/date/lib -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/local/include -DHAVE_CONFIG_H -g -O2 -Wall -fno-strict-aliasing -c /tmp/ffmpeg/ffmpeg-php-0.5.0/ffmpeg_frame.c -fPIC -DPIC -o .libs/ffmpeg_frame.o
/tmp/ffmpeg/ffmpeg-php-0.5.0/ffmpeg_frame.c: In function ‘_php_convert_frame’:
/tmp/ffmpeg/ffmpeg-php-0.5.0/ffmpeg_frame.c:162: warning: implicit declaration of function ‘img_convert’
/tmp/ffmpeg/ffmpeg-php-0.5.0/ffmpeg_frame.c: In function ‘_php_crop_frame’:
/tmp/ffmpeg/ffmpeg-php-0.5.0/ffmpeg_frame.c:215: warning: implicit declaration of function ‘img_copy’
/tmp/ffmpeg/ffmpeg-php-0.5.0/ffmpeg_frame.c: In function ‘_php_resample_frame’:
/tmp/ffmpeg/ffmpeg-php-0.5.0/ffmpeg_frame.c:237: error: ‘ImgReSampleContext’ undeclared (first use in this function)
/tmp/ffmpeg/ffmpeg-php-0.5.0/ffmpeg_frame.c:237: error: (Each undeclared identifier is reported only once
/tmp/ffmpeg/ffmpeg-php-0.5.0/ffmpeg_frame.c:237: error: for each function it appears in.)
/tmp/ffmpeg/ffmpeg-php-0.5.0/ffmpeg_frame.c:237: error: ‘img_resample_ctx’ undeclared (first use in this function)
/tmp/ffmpeg/ffmpeg-php-0.5.0/ffmpeg_frame.c:263: warning: implicit declaration of function ‘img_resample_full_init’
/tmp/ffmpeg/ffmpeg-php-0.5.0/ffmpeg_frame.c:276: warning: implicit declaration of function ‘img_resample’
/tmp/ffmpeg/ffmpeg-php-0.5.0/ffmpeg_frame.c:281: warning: implicit declaration of function ‘img_resample_close’
Помогите, пожалуйста, решить проблему.
Проверьте билды пакетов, соответствуют ли они указанным в статье. есть информация о том что взятый из SVN билд не собирается.
могу посмотреть что там и как, но услуга платная.
Виталий, проверьте доступен ли раздел /tmp для записи и не смонтировн ли он с опцией noexec.
просто создайте в /tmp файл с текстом echo test затем chmod +x на него и попробуйте исполнить.
Уважаемый автор!
Напишите пожалуйста такую статью для FreeBSD :)
при выполнении make && make install выдаёт syntax error near unexpected token `&’
в чём проблема?
вероятно у Вас скопировалась команда в формате html, т.е. вместо & его мнемоника.
make
make install
нет нет… вписал я его правильно, как у вас указано:) это в каментах он таким стал:)
Ну тогда выполняйте последовательно, сначала make потом make install
Большое человеческое спасибо, Артур, за подробный пошаговый ман. Мне, как новичку в linux, оказалось довольно легко установить ffmpeg на VPS, следуя приведенным инструкциям. Не обошлось конечно без накладок (не захотел вставать libvorbis, my failure ^-^), но благодаря этой статье пользователи наконец могут заливать на сайт свою медиатеку. Так что от меня и от лица пользователей еще раз — Спасибо :-)
make: *** [ffmpeg-php.lo] Error 1
что с этим сделать?
Собрал RPM-ку версии 0.6.3-svn:
http://rpms.southbridge.ru/php-5.2/x86_64/ffmpeg-php-0.6.3-1.southbridge.x86_64.rpm
SRPM:
http://rpms.southbridge.ru/php-5.2/SRPMS/ffmpeg-php-0.6.3-1.southbridge.src.rpm
Лучше всего конвертировать в On2VP6
Здесь полностью подробно описано как настроить качественный HDTV-видеохостинг
andy, извините но ссылка вообще ни о чем. ни единого слова о том как чего куда конвертировать. а тупое yum install httpd php ffmpeg mplayer
>>>andy, извините но ссылка вообще ни о чем. ни единого слова о том как чего куда конвертировать. а тупое yum install httpd php ffmpeg mplayer
Доброго времени суток Артур Шакиров.
Вы знаете, с помощью этой статьи с ******, о которой Вы говорите «…тупое yum install…» я реально за 15 минут полностью поставил все, что связано с видео-хостингом.
А этот подход по установки FFMpeg-a тупо слизанный Вами и переведенный на русский язык с просторов инета (если быть точнее с ***********) просто напросто не рабочий т.к. FFMpeg зачастую любит выкладывать битые исходники.
Не будьте хамом, укажите в статье источник!!!
Жаль что люди этот комментарий не успеют прочитать до того как Вы его удалите :-(
Здравствуйте,
во первых, это перевод официальной доки из гуглогруппы ffmpeg-php
во вторых, если руки ростут не из плечь, то исходники в svn действительно битые.
в третьих, не поленитсь и почитайте мой пост: https://itblog.su/php-ffmpeg-ustanovka-na-centos-5.html
PS: я не тру комменты, я затираю ссылки на быдлоблги про yum install.
Это лично мое мнение — ЗАЧЕМ ДЕЛАТЬ ВСЕ ЧЕРЕЗ **** КАК ЗДЕСЬ ОПИСАНО ЕСЛИ ВСЕ МОЖНО СДЕЛАТЬ ЧЕРЕЗ YUM!!!
это официальный мануал ffmpeg-php универсальный для любого дистрибутива линукс.
если не хочется собирать из исходников, то пожалуйста я описал и этот вариант: https://itblog.su/php-ffmpeg-ustanovka-na-centos-5.html
попал на ошибку с /usr/lib/libavdevice.so, говорило что нет прав. в гугле решения нет но полечилось так:
ls -lZ /usr/lib/libavdevice.so
видим что ссылка симолическая, лечим :
chcon -c -v -R -u system_r -t textrel_shlib_t /usr/lib/*
надеюсь кому поможет
не менее радикальный способ это отключить SElinux
admin, у меня возникает ошибка при конфигурации ffmpeg-php-0.5.0
checking for ffmpeg headers… configure: error: ffmpeg headers not found. Make sure you’ve built ffmpeg as shared libs using the –enable-shared option
вы описали способ лечения в первых комментах, но при попытке ввести команды
cp /usr/local/include/libavformat/avio.h ffmpeg-php-0.5.0
cp /usr/local/include/libavformat/avformat.h ffmpeg-php-0.5.0
я получаю ошибку
cp: cannot stat `/usr/local/include/libavformat/avio.h’: No such file or directory
Установил практически все, но когда устанавливал,
cd /usr/local/src/ffmpeg
./configure —enable-libmp3lame —enable-libogg —enable-libvorbis —disable-mmx —enable-shared
Пишет вот, что,
root@server [~]# cd /usr/local/src/ffmpeg
root@server [/usr/local/src/ffmpeg]# ./configure —enable-libmp3lame —enable-libogg —enable-libvorbis —disable-mmx —enable-shared
Unknown option «—enable-libogg».
See ./configure —help for available options.
root@server [/usr/local/src/ffmpeg]#
Почему не устанавливает дальше в чем ошибка?