CentOS 7 - установка ffmpeg и php-ffmpeg
Установка FFMPEG и FFMPEG-DEVEL на CentOS 7 для PHP 5.X
Материал актуальный только для php 5.X версий на CentOS 7 и не работает для php 7.x версий.
1) Подключить репозиторий EPEL
2) Подключить репозиторий Nux:
# rpm -v --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro # rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
3) Установить бинарники ffmpeg и ffmpeg-devel:
# yum install ffmpeg ffmpeg-compat ffmpeg-compat-devel ffmpeg-devel ffmpeg-libs
4) Обязательно скопировать либы от ffmpeg-devel в /usr/include/ (потребуется для сборки php-ffmpeg):
# cp -r /usr/include/ffmpeg/* /usr/include/
5) Проверяем версию ffmpeg:
# ffmpeg -v ffmpeg version 2.8.15 Copyright (c) 2000-2018 the FFmpeg developers
Установка php-ffmpeg на CentOS 7
1) Доустановить GIT:
# yum install git -y
2) Качаем исходники ffmpeg-php
# cd /root/ # git clone https://github.com/tony2001/ffmpeg-php.git
3) Устанавливаем компилятор и утилиты для сборки бинарника:
# yum install php-devel gcc
4) Собираем пакет и устанавливаем:
# cd ffmpeg-php # phpize # ./configure # make && make install
5) Подключаем расширение ffmpeg к PHP и рестартим Apache:
# echo "extension=ffmpeg.so" >> /etc/php.d/ffmpeg.ini # systemctl restart httpd
6) Проверяем наличие ffmpeg для PHP:
# php -m | grep ffmpeg ffmpeg
Установка php-ffmpeg для другой версии PHP (/opt/remi/php55/root/bin/php)
Более слолжна задача - если стоит другая версия PHP в системе, например, /opt/remi/php55/root/bin/php. Основное отличие от основного процесса сборки php-ffmpeg - это при выполнении configure указать пусть к php-config второй версии PHP:
./configure --with-php-config=/opt/remi/php55/root/bin/php-config
Алгоритм сборки php-ffmpeg для /opt/remi/php55/root/bin/php:
# cd /root/ # git clone https://github.com/tony2001/ffmpeg-php.git # cd ffmpeg-php # phpize # ./configure --with-php-config=/opt/remi/php55/root/bin/php-config # make && make install # echo "extension=ffmpeg.so" >> /opt/remi/php55/root/etc/php.ini # /opt/remi/php55/root/bin/php -m | grep ffmpeg # systemctl restart httpd
Установка FFMPEG и FFMPEG-DEVEL на CentOS 7 для PHP 7.X
Для php 7.X - сборка в данный момент не работает, так как конфликтирует с Zend и на этапе make вываливается с ошибкой:
/root/ffmpeg-php/ffmpeg_movie.c:1121:5: error: too many arguments to function 'zend_hash_find' GET_MOVIE_RESOURCE(ffmovie_ctx); /root/ffmpeg-php/ffmpeg_movie.c:883:5: warning: passing argument 2 of 'zend_hash_find' from incompatible pointer type [enabled by default] GET_MOVIE_RESOURCE(ffmovie_ctx);