FFmpeg - это универсальный инструмент для кодирования и декодирования множества видео и аудио форматов, хотя 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
Комментариев: 23 RSS
1Сергей22-11-2010 15:40
Хотя мне эта тема не нужна на данный момент, и я не пробовал в деле вашу инструкцию. Я говорю вам спасибо, и если бы мог поставил кучу пятёрок как оценки пятибалльной шкалы, то я бы их поставил бы. Статья написано очень достойно, очень хорошо. Особенно радует в конце пункт: "Отмена всех изменений, проделанных по данной инструкции" Ибо мало кто включает такой нужный пункт в статью.
Автор вы молодец, продолжайте в том же духе.
Я конечно надеюсь и принял на веру, что в инструкции этой нет ошибок.
2anonymous12-12-2010 22:50
Большое спасибо, очень помогло.
3robotd08-01-2011 16:46
Осторожно - убедитесь, что там нет других исходников!!
Правильно было бы
4Evgeny31-07-2011 10:36
при загрузке исходников по указанным ссылкам возникли проблемы...
5vovans31-07-2011 21:44
Какие?
6Alexander07-08-2011 13:09
При выполнении ./configure для ffmpeg возникает ошибка ERROR: libx264 not found. Как её устранить?
7Виктор11-09-2011 22:12
Так же, на Ubuntu Server 11.04 на первом же шаге, не найден пакет lib1g-dev
8vovans12-09-2011 00:05
Что именно "так же"?
Выше не находилось libx264 (как такое могло произойти, я не знаю). Вы же пишете про lib1g-dev. А это совсем не одно и тоже.
11.04 - всё есть.
9nema09-10-2011 16:53
Может кто-нить в курсе, почему у меня при вещание такой дефект образовался? Будто последние строки в кадре повторяются. Вот две картинки - по rtsp (h264) и (flv, swf). FFmpeg запущен строкой:
ffmpeg -s 704x576 -i rtsp://89.105.154.248:5554 //localhost:8090/feed.ffm.
В конфиге все стандартно.
10Alex27-10-2011 12:06
Не работает.
Пишет:
когда делаешь ./configure для ffmpeg
11vovans27-10-2011 12:10
Ну, как-то сложно что-то понять с двух слов.
Всё делали по инструкции? Пакет libx264-dev точно установлен?
12Alex27-10-2011 15:45
Да, делал точно по инструкции. Ubuntu 10.04
Мне помогла эта ссылка
//ubuntuforums.org/showpost.php?p=9868359&postcount=1289
по ней сделал и все установилось
13vovans27-10-2011 16:11
Это и есть перевод той самой ссылки. Всё проверенно, всё собирается и ставится. Ну не могло оно не находить libx264, если бы был установлен пакет libx264-dev
14Alex29-02-2012 22:33
при сборке H264 добавьте к ./configure опцию --shared
15Валентин04-04-2012 17:28
При выполнении команды:
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)
Как с этим бороться??????????
16svet04-04-2012 17:35
Ну а что непонятно? Номер версии начинается не с цифры. Значит надо сделать так, чтобы он начинатся с цифры.
Номер версии задаётся тут:
Соответственно, надо указать правильный номер версии. Попробуйте выполнить:
в директории с исходными текстами. Что оно выдаст? И вообще попробуйте просто удалить "SVN-r":
17Tranquillity28-07-2013 23:10
Делаю некоторые замечания по данной инструкции. Дело в том, что в Ubuntu и ffmpeg и x264 работают очень даже отлично. Все это проделывать имеет смысл только в случае, если необходимо установить x264 для работы с видео в 10 бит. Тогда да. Стоит все это проделывать. Теперь по поводу библиотеке libx264. ffmpeg в убунту работает не с кодеком x264 а непосредственно с библиотекой кодирования libx264.so.123 она расположена в директории с архитектурно зависимыми библиотеками. Вопервых для нормальной конфигурации x264 к работе в связке с ffmpeg (получения видео потока для кодирования от ffmpeg) перед началом конфигурации x264 необходимо установить следующие пакеты: libavformat-dev, libffms2-dev, libgpac-dev, libswscale-dev. После установки этих пакетов выполнив ./configure мы увидим следующее:
И так мы видим, что у нас x264 будет собираться с поддержкой всего, что только можно, но ffmpeg сним работать не будет. Теперь что необходимо сделать, что бы обеспечить работу ffmpeg непосредственно именно с собраным нами кодеком. Для этого необходимо конфигурировать x264 со следующими ключами:
Вот, что мы получим при конфигурации кодека с данными ключами:
Более подробную информацию о ключах конфигурации кодека x264 можно просмотреть набрав в директории с исходными кодами x264 команду ./configure -h
в принципе вот вам ее содержание:
18Tranquillity28-07-2013 23:25
Да еще одно замечание: Перед сборкой и установкой кодека x264 с динамической библиотекой кодирования libx264.so.*** необходимо снести страрую библиотеку (удалить из системы пакет libx264) иначе команда checkinstall выдаст ошибку и откажется заменять данную билиотеку.
19Dmitry15-08-2013 15:49
Unable to locate package lib1g-dev
20Dmitry15-08-2013 15:51
Под Linux, как всегда, заморочки не из чего.
такая простыня инструкций, что бы просто стоял кодировщик))))))))
21svet15-08-2013 16:10
Чтобы просто стоял кодировщик, разве не проще его просто поставить? Зачем следовать ингструкции для тех, кто в этом понимает? Это явно не для новичков. А в Ubuntu и так должно всё кодировать нормально без простыней. Если же чего-то нет в стандартной поставке, должен быть ppa c нужными пакетами.
22Дмитрий26-07-2014 22:04
добрый день-мне срочно надо установить эти кодеки-нужные файлы загрузил все думаю-у меня мак 10.5.8 просто не работал в терминале до этого-незнаю надо ли руби устанавливать или все так прописывается в терминале?Буду очень благодарен если можно связаться с вами по телефону-сам перезвоню или через агент или скайп-вот мой телефон 8-964-778-91-17
23aprogrammer23-10-2014 00:14
Спасибо. Нашел подобную статью со зборкой ffmpeg-a под Ubuntu 12.04, где добавлено поддержку всех возможных (поддерживаемых) аудио и видео форматов (в том чесле webm, ogv, arm,ogg) - //sysadm.pp.ua/linux/video-streaming/ffmpeg-build.html . Может пригодиться.
Вы можете войти под своим логином или зарегистрироваться на сайте.