CentOS 7 - установка ffmpeg и php-ffmpeg

Материал из Wiki - Iphoster - the best ever hosting and support. 2005 - 2024
Перейти к:навигация, поиск
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Доступная цена

Установка 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
# /opt/remi/php55/root/bin/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);