Вед-дев, Сео, Манимейкинг

Компилируем ffmpeg в CentOS 6

Данная статья актуальна для минимальной установки CentOS 6.x. ffmpeg - это open source видео конвертер, к тому же очень быстрый. Данный конвертер может понадобиться для Drupal модуля video.

Для начала нужно установить все необходимые библиотеки

yum install autoconf automake gcc gcc-c++ git libtool make nasm pkgconfig zlib-devel

Затем создаём папку, в которую будем скачивать все исходники кодеков

mkdir ~/ffmpeg_sources

Yasm

cd ~/ffmpeg_sources
curl -O http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz
tar xzvf yasm-1.2.0.tar.gz
cd yasm-1.2.0
./configure --prefix="/usr/ffmpeg_build" --bindir="/usr/bin"
make
make install
make distclean

x264

H.264 кодек

cd ~/ffmpeg_sources
git clone --depth 1 git://git.videolan.org/x264
cd x264
./configure --prefix="/usr/ffmpeg_build" --bindir="/usr/bin" --enable-static
make
make install
make distclean

libfdk_aac

AAC audio encoder

cd ~/ffmpeg_sources
git clone --depth 1 git://git.code.sf.net/p/opencore-amr/fdk-aac
cd fdk-aac
autoreconf -fiv
./configure --prefix="/usr/ffmpeg_build" --disable-shared
make
make install
make distclean

libmp3lame

MP3 audio encoder.

cd ~/ffmpeg_sources
curl -L -O http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz
tar xzvf lame-3.99.5.tar.gz
cd lame-3.99.5
./configure --prefix="/usr/ffmpeg_build" --bindir="/usr/bin" --disable-shared --enable-nasm
make
make install
make distclean

libopus

Opus audio decoder и encoder.

cd ~/ffmpeg_sources
curl -O http://downloads.xiph.org/releases/opus/opus-1.0.3.tar.gz
tar xzvf opus-1.0.3.tar.gz
cd opus-1.0.3
./configure --prefix="/usr/ffmpeg_build" --disable-shared
make
make install
make distclean

libogg

Ogg bitstream library. Требуется для libtheora и libvorbis.

cd ~/ffmpeg_sources
curl -O http://downloads.xiph.org/releases/ogg/libogg-1.3.1.tar.gz
tar xzvf libogg-1.3.1.tar.gz
cd libogg-1.3.1
./configure --prefix="/usr/ffmpeg_build" --disable-shared
make
make install
make distclean

libvorbis

Vorbis audio encoder. Требует libogg.

cd ~/ffmpeg_sources
curl -O http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.3.tar.gz
tar xzvf libvorbis-1.3.3.tar.gz
cd libvorbis-1.3.3
./configure --prefix="/usr/ffmpeg_build" --with-ogg="/usr/ffmpeg_build" --disable-shared
make
make install
make distclean

libvpx

VP8/VP9 video encoder.

cd ~/ffmpeg_sources
git clone --depth 1 http://git.chromium.org/webm/libvpx.git
cd libvpx
./configure --prefix="/usr/ffmpeg_build" --disable-examples
make
make install
make clean

FFmpeg

cd ~/ffmpeg_sources
git clone --depth 1 git://source.ffmpeg.org/ffmpeg
cd ffmpeg
PKG_CONFIG_PATH="/usr/ffmpeg_build/lib/pkgconfig"
export PKG_CONFIG_PATH
./configure --prefix="/usr/ffmpeg_build" --extra-cflags="-I/usr/ffmpeg_build/include" --extra-ldflags="-L/usr/ffmpeg_build/lib" --bindir="/usr/bin" --extra-libs="-ldl" --enable-gpl --enable-nonfree --enable-libfdk_aac --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264
make
make install
make distclean
hash -r
. ~/.bash_profile

На этом компиляция завершена и ffmpeg (также ffprobe, ffserver, lame, и x264) готов к исользованию.

Примечание. Не удаляйте папку ffmpeg_sources и её содержимое, если вы планируете делать обновления или удалить этот конвертер.

Если у вас возникла ошибка

Unable to create and execute files in /tmp. Set the TMPDIR environment variable to another directory and make sure that it is not mounted noexec. Sanity test failed.

То это значит, что вам нужно перед установкой ffmpeg создать TMP директорию:

export TMPDIR=~/tmp-ffmpeg
mkdir $TMPDIR

После этого запускаем ./configure и все последующие команды для установки. После того как установка прола успешно, можно удалить временную директорию:

rm -rf $TMPDIR
export TMPDIR=

Ребутаем сервер и готово.

Как обновлять

Для начала нужно удалить старые файлы

rm -rf ~/usr/ffmpeg_build ~/bin/{ffmpeg,ffprobe,ffserver,lame,vsyasm,x264,yasm,ytasm}

Обновляем x264

cd ~/ffmpeg_sources/x264
make distclean
git pull

Затем запускаем по порядку

./configure
make
make install

Обновляем libfdk_aac

cd ~/ffmpeg_sources/libfdk_aac
make distclean
git pull

Затем запускаем по порядку команды как при обновлении x264 кодека

Обновляем libvpx

cd ~/ffmpeg_sources/libvpx
make clean
git pull

Затем запускаем по порядку команды как при обновлении x264 кодека

Обновляем FFmpeg

cd ~/ffmpeg_sources/ffmpeg
make distclean
git pull

Затем запускаем по порядку команды как при обновлении x264 кодека

Полностью удалить FFmpeg

rm -rf ~/usr/ffmpeg_build ~/ffmpeg_sources ~/usr/bin/{ffmpeg,ffprobe,ffserver,lame,vsyasm,x264,yasm,ytasm}
hash -r


Комментарии (3)

Спасибо большое, все работает за исключением установки libvpx

VP8/VP9 video encoder.

# Установить ffmpeg-php

yum install ffmpeg-devel -y

cd ~/ffmpeg_sources

git clone https://github.com/tony2001/ffmpeg-php.git
cd ffmpeg-php
phpize
./configure
make && make install

Не помогло. Как не работал ffmpeg, так и не работает.

Подписаться

Подписка на RSS-лента последние записи из Блога

Комменты

  • Olzhas 11 месяцев 2 дня назад
    Спасибо. С Новым Годом! 
  • Den 11 месяцев 3 недели назад
    В первой функции, при создании переменной $li_previous нужно поменять '←' с NULL, в $li_next сделать тоже самое. 
  • Гость 11 месяцев 4 недели назад
    Если все ровно так как было описано, то нет никаких сомнений что домен увел сам регистратор. Потому что вероятность того 
  • Валерий 1 год 3 недели назад
    да можно делать импорт-экспорт только лишь в оболочке на входя на mysql сервер 
  • admin 1 год 3 недели назад
    Валерий, а зачем вам именно так делать экспорт? Если я не ошибаюсь, то там нет какой-либо команды чтобы сделать экспорт 
  • Валерий 1 год 3 недели назад
    захожу на mysql через ssh по команде  
  • admin 1 год 3 недели назад
    Добрый вечер, какой у вас клиент? 
  • Валерий 1 год 3 недели назад
    Здравстуйте, есть команда чтобы сделать экспорт базы внутри mysql клиента? 
  • Eduard 1 год 1 месяц назад
    Видать, домен хороший был. Заявление пробывали писать на мошенника? 
  • Stas 1 год 2 месяца назад
    Ошибка в ключе квантификатора - replace(/будешь|пить/ig, "хлеб"); Указать -g для прохода по всем совпадениям!