GNU/Linux -- это интересно

Самостоятельная установка последних FFmpeg и x264 на примере Ubuntu

Рубрика: Аудио и видео ПО
Метки: | | |
Пятница, 29 октября 2010 г.
Просмотров: 5895
Подписаться на комментарии по RSS
ffmpeg и x264

FFmpeg - это универсальный инструмент для кодирования и декодирования множества видео и аудио форматов. X264 - высококачественный кодек H.264.

Хотя FFmpeg и x264 есть в официальных репозитариях различных дистрибутивов, иногда возникает необходимость собирать эти пакеты самостоятельно. Дело в том, что FFmpeg из Ubuntu не имеет некоторых кодеков, декодеров и не поддерживает некоторые форматы. К тому же, сами вы соберёте более свежую версию, где будут доступны последние наработки программистов.

Данная инструкция подразумевает, что у вас Ubuntu LTS (10.04) или 10.10.

Подготовительный этап

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

Первым делом удаляем x264, libx264-dev и ffmpeg, если таковые установлены:

sudo apt-get remove ffmpeg x264 libx264-dev

Затем, устанавливаем необходимые для последующей сборки зависимости. Репозитарии universe и multiverse должны быть подключены!

sudo apt-get update
sudo apt-get install build-essential subversion git-core checkinstall yasm texi2html \
     libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libsdl1.2-dev \
     libtheora-dev libvorbis-dev libvpx-dev libx11-dev libxfixes-dev libxvidcore-dev lib1g-dev

Установка x264

Создаём в домашней директории каталог src:

mkdir ~/src

И выполняем следующее:

cd ~/src
git clone git://git.videolan.org/x264.git
cd x264
./configure
make
sudo checkinstall --pkgname=x264 --pkgversion "2:0.`grep X264_BUILD x264.h -m1 | \
     cut -d' ' -f3`.`git rev-list HEAD | wc -l`+git`git rev-list HEAD -n 1 | \
     head -c 7`" --backup=no --deldoc=yes --fstrans=no --default

После этих действий будет собран и установлен пакет x264, который можно будет удалить/обновить в будущем.

Установка FFmpeg

Получив исходные коды FFmpeg команда "./configure --help" позволит увидеть опции, которые можно включить или выключить. Итак, собираем и устанавливаем пакет:

cd ~/src
svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg
cd ffmpeg
./configure --enable-gpl --enable-version3 --enable-nonfree --enable-postproc \
     --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb \
     --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis \
     --enable-libvpx --enable-libx264 --enable-libxvid --enable-x11grab
make
sudo checkinstall --pkgname=ffmpeg --pkgversion "4:SVN-r`LANG=C svn info | \
     grep Revision | awk '{ print $NF }'`" --backup=no --deldoc=yes --fstrans=no --default
hash x264 ffmpeg ffplay

Примеры использования FFmpeg и x264

Кодирование в один проход:

ffmpeg -i input.avi -acodec libfaac -ab 128k -ac 2 -vcodec libx264 -vpre slow -crf 22 -threads 0 output.mp4

Чем ниже параметр -crf, тем выше качество, но больше файл. Разумными являются значения от 18 до 28.

Двухпроходное кодирование:

ffmpeg -i input.avi -pass 1 -vcodec libx264 -vpre fast_firstpass -b 512k -bt 512k \
     -threads 0 -f rawvideo -an -y /dev/null && ffmpeg -i input.avi -pass 2 -acodec libfaac \
     -ab 128k -ac 2 -vcodec libx264 -vpre fast -b 512k -bt 512k -threads 0 output.mp4

Перекодирование для iPod (640x480):

ffmpeg -i input.avi -acodec libfaac -aq 100 -ac 2 -vcodec libx264 -vpre slow \
     -vpre ipod640 -crf 26 -map_meta_data 0:0 -vf scale=640:-1 -threads 0 output.mp4

Обновление FFmpeg и x264

Удаляем ранее установленные пакеты:

sudo apt-get remove ffmpeg x264 libx264-dev

Обновляем x264:

cd ~/src/x264
make distclean
git pull

Обновляем FFmpeg:

cd ~/src/ffmpeg
make distclean
svn update

В обоих случаях повторяем процедуру установки FFmpeg и x264, как было описано ранее, только с места "./configure ля-ля-ля..."

Отмена всех изменений, проделанных по данной инструкции

sudo apt-get remove x264 ffmpeg build-essential subversion git-core \
     checkinstall yasm texi2html libfaac-dev libmp3lame-dev libsdl1.2-dev libtheora-dev \
     libvorbis-dev libvpx-dev libx11-dev libxfixes-dev libxvidcore-dev zlib1g-dev
rm -rf ~/src

Источник: ubuntuforums.org

Автор: vovans, xmpp: xmpp
Добавить страницу в закладки:
twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru rutvit.ru myspace.com technorati.com digg.com friendfeed.com pikabu.ru blogger.com liveinternet.ru livejournal.ru memori.ru google.com bobrdobr.ru mister-wong.ru yahoo.com yandex.ru del.icio.us
Комментариев: 16
  1. 2010-11-22 в 15:40:15 | Сергей

    Хотя мне эта тема не нужна на данный момент, и я не пробовал в деле вашу инструкцию. Я говорю вам спасибо, и если бы мог поставил кучу пятёрок как оценки пятибалльной шкалы, то я бы их поставил бы. Статья написано очень достойно, очень хорошо. Особенно радует в конце пункт: "Отмена всех изменений, проделанных по данной инструкции" Ибо мало кто включает такой нужный пункт в статью.

    Автор вы молодец, продолжайте в том же духе.

    Я конечно надеюсь и принял на веру, что в инструкции этой нет ошибок.

  2. Большое спасибо, очень помогло.

  3. rm -rf ~/src

    Осторожно - убедитесь, что там нет других исходников!!

    Правильно было бы

    rm -rf ~/src/x264 ~/src/ffmpeg
  4. при загрузке исходников по указанным ссылкам возникли проблемы...

  5. Какие?

  6. При выполнении ./configure для ffmpeg возникает ошибка ERROR: libx264 not found. Как её устранить?

  7. 2011-09-11 в 22:12:39 | Виктор

    Так же, на Ubuntu Server 11.04 на первом же шаге, не найден пакет lib1g-dev

  8. Что именно "так же"?

    Выше не находилось libx264 (как такое могло произойти, я не знаю). Вы же пишете про lib1g-dev. А это совсем не одно и тоже.

    $ aptitude search lib1g-dev
    i   zlib1g-dev

    11.04 - всё есть.

  9. Может кто-нить в курсе, почему у меня при вещание такой дефект образовался? Будто последние строки в кадре повторяются. Вот две картинки - по rtsp (h264) и (flv, swf). FFmpeg запущен строкой:

    ffmpeg -s 704x576 -i rtsp://89.105.154.248:5554 http://localhost:8090/feed.ffm.

    В конфиге все стандартно.

    http://nemezida.su/files/input_video.png
    http://nemezida.su/files/output_video.png
  10. Не работает.

    Пишет:

    libx264 not found

    когда делаешь ./configure для ffmpeg

  11. Ну, как-то сложно что-то понять с двух слов.

    Всё делали по инструкции? Пакет libx264-dev точно установлен?

  12. Да, делал точно по инструкции. Ubuntu 10.04

    Мне помогла эта ссылка

    http://ubuntuforums.org/showpost.php?p=9868359&postcount=1289

    по ней сделал и все установилось

  13. Это и есть перевод той самой ссылки. Всё проверенно, всё собирается и ставится. Ну не могло оно не находить libx264, если бы был установлен пакет libx264-dev

  14. при сборке H264 добавьте к ./configure опцию --shared

  15. 2012-04-04 в 17:28:39 | Валентин

    При выполнении команды:

    sudo checkinstall --pkgname=ffmpeg --pkgversion "4:SVN-r`LANG=C svn info | \

    grep Revision | awk '{ print $NF }'`" --backup=no --deldoc=yes --fstrans=no --default

    hash x264 ffmpeg ffplay

    Выдает ошибку:

    dpkg-deb: ошибка: parsing file '/var/tmp/tmp.K5VBSaIYSt/package/DEBIAN/control' near line 7 package 'ffmpeg':

    ошибка в строке Version «4:SVN-r26402-1»: номер версии начинается не с цифры

    ~

    ~

    ~

    ~

    ~

    ~

    ~

    ~

    ~

    ~

    ~

    ~

    ~

    ~

    ~

    ~

    ~

    ~

    (END)

    Как с этим бороться??????????

  16. Ну а что непонятно? Номер версии начинается не с цифры. Значит надо сделать так, чтобы он начинатся с цифры.

    Номер версии задаётся тут:

    --pkgversion "4:SVN-r`LANG=C svn info | \
    grep Revision | awk '{ print $NF }'`"

    Соответственно, надо указать правильный номер версии. Попробуйте выполнить:

    LANG=C svn info | grep Revision | awk '{ print $NF }'

    в директории с исходными текстами. Что оно выдаст? И вообще попробуйте просто удалить "SVN-r":

    sudo checkinstall --pkgname=ffmpeg --pkgversion "4:`LANG=C svn info | \
         grep Revision | awk '{ print $NF }'`" --backup=no --deldoc=yes --fstrans=no --default
Оставьте комментарий!
Используйте нормальные имена.
Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email.
(При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д.)




Войти через loginza

 
captcha