Установка ffmpeg-php на Centos 6

Быстрая установка php-ffmpeg, выполнена на сервере Centos 6 + WHM/Cpanel.
Подключаем нужные репозитории centos

rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm

Отключаем rpmforge, чтобы его использовать только для установки ffmpeg разово


sed -i 's/enabled = 1/enabled = 0/g' /etc/yum.repos.d/rpmforge.repo

Ставим нужные пакеты для корректной установки ffmpeg:


yum install openjade wget -y
rpm -ivh ftp://rpmfind.net/linux/centos/6.7/os/x86_64/Packages/perl-SGMLSpm-1.03ii-21.el6.noarch.rpm

Установка самого ffmpeg


yum --enablerepo=rpmforge install ffmpeg ffmpeg-devel -y

Собственно сама установка php-ffmpeg


cd /usr/local/src/ && wget http://downloads.sourceforge.net/project/ffmpeg-php/ffmpeg-php/0.6.0/ffmpeg-php-0.6.0.tbz2
cd ffmpeg-php-0.6.0 && phpize && ./configure && make && make install

Ищем файл php.ini в системие и прописываем туда новый модуль

php -i | grep php.ini

( В моем случае php.ini здесь: Loaded Configuration File => /usr/local/lib/php.ini )

Прописываем в найденный файл модуль и перезапускаем веб-сервер

extension="ffmpeg.so"
service httpd restart

Если при компилировании возникает ошибка:

/usr/local/src/php-ffmpeg/ffmpeg-php-0.6.0/ffmpeg_movie.c: In function ‘zim_ffmpeg_movie___construct’:
/usr/local/src/php-ffmpeg/ffmpeg-php-0.6.0/ffmpeg_movie.c:311: error: ‘list_entry’ undeclared (first use in this function)
/usr/local/src/php-ffmpeg/ffmpeg-php-0.6.0/ffmpeg_movie.c:311: error: (Each undeclared identifier is reported only once
/usr/local/src/php-ffmpeg/ffmpeg-php-0.6.0/ffmpeg_movie.c:311: error: for each function it appears in.)
/usr/local/src/php-ffmpeg/ffmpeg-php-0.6.0/ffmpeg_movie.c:311: error: ‘le’ undeclared (first use in this function)
/usr/local/src/php-ffmpeg/ffmpeg-php-0.6.0/ffmpeg_movie.c:346: error: expected ‘;’ before ‘new_le’
/usr/local/src/php-ffmpeg/ffmpeg-php-0.6.0/ffmpeg_movie.c:356: error: ‘new_le’ undeclared (first use in this function)
/usr/local/src/php-ffmpeg/ffmpeg-php-0.6.0/ffmpeg_movie.c: In function ‘_php_read_av_frame’:
/usr/local/src/php-ffmpeg/ffmpeg-php-0.6.0/ffmpeg_movie.c:1215: warning: ‘avcodec_decode_video’ is deprecated (declared at /usr/include/libavcodec/avcodec.h:3452)
make: *** [ffmpeg_movie.lo] Error 1

Решение:
В файле ffmpeg_movie.c заменяем:


строку 311: list_entry *le; НА zend_rsrc_list_entry *le;
строку 346: list_entry new_le; НА zend_rsrc_list_entry new_le;
строку 360: hashkey_length+1, (void *)&new_le, sizeof(list_entry), НА hashkey_length+1, (void *)&new_le,sizeof(zend_rsrc_list_entry),

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>