Самостоятельная установка последних FFmpeg и x264 на примере Ubuntu
Рубрика: Аудио и видео ПОМетки: console | FFmpeg | видео | конвертер
Пятница, 29 октября 2010 г.
Просмотров: 5895
Подписаться на комментарии по RSS
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















Хотя мне эта тема не нужна на данный момент, и я не пробовал в деле вашу инструкцию. Я говорю вам спасибо, и если бы мог поставил кучу пятёрок как оценки пятибалльной шкалы, то я бы их поставил бы. Статья написано очень достойно, очень хорошо. Особенно радует в конце пункт: "Отмена всех изменений, проделанных по данной инструкции" Ибо мало кто включает такой нужный пункт в статью.
Автор вы молодец, продолжайте в том же духе.
Я конечно надеюсь и принял на веру, что в инструкции этой нет ошибок.
Большое спасибо, очень помогло.
Осторожно - убедитесь, что там нет других исходников!!
Правильно было бы
при загрузке исходников по указанным ссылкам возникли проблемы...
Какие?
При выполнении ./configure для ffmpeg возникает ошибка ERROR: libx264 not found. Как её устранить?
Так же, на Ubuntu Server 11.04 на первом же шаге, не найден пакет lib1g-dev
Что именно "так же"?
Выше не находилось libx264 (как такое могло произойти, я не знаю). Вы же пишете про lib1g-dev. А это совсем не одно и тоже.
11.04 - всё есть.
Может кто-нить в курсе, почему у меня при вещание такой дефект образовался? Будто последние строки в кадре повторяются. Вот две картинки - по rtsp (h264) и (flv, swf). FFmpeg запущен строкой:
ffmpeg -s 704x576 -i rtsp://89.105.154.248:5554 http://localhost:8090/feed.ffm.
В конфиге все стандартно.
Не работает.
Пишет:
когда делаешь ./configure для ffmpeg
Ну, как-то сложно что-то понять с двух слов.
Всё делали по инструкции? Пакет libx264-dev точно установлен?
Да, делал точно по инструкции. Ubuntu 10.04
Мне помогла эта ссылка
http://ubuntuforums.org/showpost.php?p=9868359&postcount=1289
по ней сделал и все установилось
Это и есть перевод той самой ссылки. Всё проверенно, всё собирается и ставится. Ну не могло оно не находить libx264, если бы был установлен пакет libx264-dev
при сборке H264 добавьте к ./configure опцию --shared
При выполнении команды:
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)
Как с этим бороться??????????
Ну а что непонятно? Номер версии начинается не с цифры. Значит надо сделать так, чтобы он начинатся с цифры.
Номер версии задаётся тут:
--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