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

Материал из Wiki - Iphoster - the best ever hosting and support. 2005 - 2023
Перейти к:навигация, поиск

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

Установка 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);
Индекс цитирования