Вернуться назад

Установка FFmpeg на CentOS 6.5 x64

Две инструкции здесь, вторая после первой.
Перейти ко второй инструкции от 27.09.2017 г.>

1. Подготовка

В данной инструкции я не стану использовать установку из RPM, но для тех кому хватит и этого, то вот

[root@kivbtn ~]# rpm -ihv http://download1.rpmfusion.org/free/el/updates/6/i386/rpmfusion-free-release-6-1.noarch.rpm
[root@kivbtn ~]# yum -y install ffmpeg

В статье используется CentOS 6.5 x86_64.

2. Сборка libx264

Libx264 – это свободно распространяемая библиотека для кодирования видеопотока в формате H.264/MPEG-4 AVC. Перед началом сборки, я настоятельно рекомендую установить следующее:

[root@kivbtn ~]# yum -y groupinstall "Development Tools"

Это позволит нам получить все необходимые для компиляций инструменты.

Если Вы в дальнейшем не планируете ничего «собирать» то можно потом смело удалить таким образом, хотя я не рекомендую это делать т.к много утилит Вам в будущем пригодится:

[root@kivbtn ~]# yum -y groupremove "Development Tools"

Приступим.

Скачиваем последнюю версию исходников из git-репозитория, и переходим в директорию с ними:

[root@kivbtn ~]# git clone git://git.videolan.org/x264.git
[root@kivbtn ~]# cd x264

Конфигурируем, собираем и устанавливаем:

[root@kivbtn x264]# ./configure --prefix=/usr --bindir=/usr/bin --libdir=/usr/lib64 --disable-asm --enable-shared
[root@kivbtn x264]# make && make install
[root@kivbtn x264]# cd

3. Сборка libfdk-aac
Библиотека libdfk-aac используется для кодирования звукового потока в формате AAC, она считается лучшим кодером в этом формате для FFmpeg. Забираем из git-репозитория исходники:

[root@kivbtn ~]# git clone https://github.com/mstorsjo/fdk-aac.git
[root@kivbtn ~]# cd fdk-aac

Запускаем autoreconf для создания скрипта configure, затем конифгурируем, собираем и устанавливаем:

[root@kivbtn fdk-aac]# autoreconf -i
[root@kivbtn fdk-aac]# ./configure --prefix=/usr --bindir=/usr/bin --libdir=/usr/lib64 --disable-shared
[root@kivbtn fdk-aac]# make && make install
[root@kivbtn fdk-aac]# cd

4. Сборка yasm-1.2.0
Для того чтоб успешно собрать FFmpeg, нам потребуется yasm. Я предпочитаю его также собирать из исходников.

[root@kivbtn ~]# wget http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz
[root@kivbtn ~]# tar xvzf yasm-1.2.0.tar.gz
[root@kivbtn ~]# cd yasm-1.2.0/
[root@kivbtn yasm-1.2.0]# ./configure
[root@kivbtn yasm-1.2.0]# make && make install
[root@kivbtn yasm-1.2.0]# cd

5. Сборка FFmpeg
Скачиваем исходники и переходим в директорию с ними:

[root@kivbtn ~]# git clone git://source.ffmpeg.org/ffmpeg.git
[root@kivbtn ~]# cd ffmpeg

Конфигурируем, собираем и устанавливаем:

[root@kivbtn ffmpeg]# ./configure --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib64 --mandir=/usr/share/man --arch=x86_64 --enable-nonfree --enable-libfdk-aac --enable-gpl --enable-libx264
[root@kivbtn ffmpeg]# make && make install
[root@kivbtn ffmpeg]# cd

 



 

 

Вторая инструкция, спасибо @vlad

 

Установка ffmpeg + расширение php на centos 6\7
подключаем нужную репу (nux):
CentOS 7
yum local install http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro

CentOS 6
yum local install http://li.nux.ro/download/nux/dextop/el6/x86_64/nux-dextop-release-0-2.el6.nux.noarch.rpm
rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro

Ставим ffmpeg:
yum install ffmpeg ffmpeg-libs ffmpeg-devel

Собираем расширение из последнего форка:
yum install php-devel gcc git
git clone https://github.com/tony2001/ffmpeg-php.git
cd ffmpeg-php
phpize
./configure --enable-skip-gd-check
make
make install

--enable-skip-gd-check фиксит багу с невозможностью включить поддержку gd и функцию toGDImage()

В процессе скорей всего не найдет нужные для сборки вещи. Делаем:
cp -r /usr/include/ffmpeg/* /usr/include/
и вероятно:
cp /usr/include/ffmpeg/libavcodec/version.h /usr/include/
cp /usr/include/ffmpeg/libavcodec/old_codec_ids.h /usr/include/
cp /usr/include/ffmpeg/libavformat/avformat.h /usr/include/
cp /usr/include/ffmpeg/libavformat/avio.h /usr/include/
cp /usr/include/ffmpeg/swscale.h /usr/include/

и еще возможно симлинки:
ln -s /usr/include/ffmpeg/libavcodec/avcodec.h /usr/include/ffmpeg/avcodec.h
ln -s /usr/include/ffmpeg/libavformat/libavformat.h /usr/include/ffmpeg/libavformat.h
ln -s /usr/include/ffmpeg/libavformat/avio.h /usr/include/ffmpeg/avio.h
ln -s /usr/include/ffmpeg/libswscale/swscale.h /usr/include/ffmpeg/swscale.h

При ошибке: [ffmpeg_frame.lo] Error 1) попробовать сделать находясь в директории с исходниками расширения:
sed -i 's/PIX_FMT_RGBA32/PIX_FMT_RGB32/g' ffmpeg_frame.c

После успешной (надеюсь) сборки расширения создать инклюд:
/etc/php.d/ffmpeg.ini с текстом
extension=ffmpeg.so
перезагрузить веб-сервер:
service httpd restart
после проверить:
php -m | grep ff
php -i | grep ff | grep gd
GitHub
tony2001/ffmpeg-php
ffmpeg-php - PHP extension for video editing, wrapping ffmpeg

 

[21:04]
Скорей всего хватит одного:
cp -r /usr/include/ffmpeg/* /usr/include
Но тут список всего что было предпринято, что закончилось успешной сборкой.


igel
Дата: 24 января 2019 г. в 20:39:11

Автор: igel