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 должны быть подключены!
<br>sudo apt-get update<br>sudo apt-get install build-essential subversion git-core checkinstall yasm texi2html \<br> libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libsdl1.2-dev \<br> libtheora-dev libvorbis-dev libvpx-dev libx11-dev libxfixes-dev libxvidcore-dev lib1g-dev<br>
Установка x264
Создаём в домашней директории каталог src:
<br>mkdir ~/src<br>
И выполняем следующее:
<br>cd ~/src<br>git clone git://git.videolan.org/x264.git<br>cd x264<br>./configure<br>make<br>sudo checkinstall --pkgname=x264 --pkgversion "2:0.`grep X264_BUILD x264.h -m1 | \<br> cut -d' ' -f3`.`git rev-list HEAD | wc -l`+git`git rev-list HEAD -n 1 | \<br> head -c 7`" --backup=no --deldoc=yes --fstrans=no --default<br>
После этих действий будет собран и установлен пакет x264, который можно будет удалить/обновить в будущем.
Установка FFmpeg
Получив исходные коды FFmpeg команда "./configure --help" позволит увидеть опции, которые можно включить или выключить. Итак, собираем и устанавливаем пакет:
<br>cd ~/src<br>svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg<br>cd ffmpeg<br>./configure --enable-gpl --enable-version3 --enable-nonfree --enable-postproc \<br> --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb \<br> --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis \<br> --enable-libvpx --enable-libx264 --enable-libxvid --enable-x11grab<br>make<br>sudo checkinstall --pkgname=ffmpeg --pkgversion "4:SVN-r`LANG=C svn info | \<br> grep Revision | awk '{ print $NF }'`" --backup=no --deldoc=yes --fstrans=no --default<br>hash x264 ffmpeg ffplay<br>Примеры использования FFmpeg и x264
Кодирование в один проход:
<br>ffmpeg -i input.avi -acodec libfaac -ab 128k -ac 2 -vcodec libx264 -vpre slow -crf 22 -threads 0 output.mp4<br>
Чем ниже параметр -crf, тем выше качество, но больше файл. Разумными являются значения от 18 до 28.
Двухпроходное кодирование:
<br>ffmpeg -i input.avi -pass 1 -vcodec libx264 -vpre fast_firstpass -b 512k -bt 512k \<br> -threads 0 -f rawvideo -an -y /dev/null && ffmpeg -i input.avi -pass 2 -acodec libfaac \<br> -ab 128k -ac 2 -vcodec libx264 -vpre fast -b 512k -bt 512k -threads 0 output.mp4<br>
Перекодирование для iPod (640x480):
<br><br>ffmpeg -i input.avi -acodec libfaac -aq 100 -ac 2 -vcodec libx264 -vpre slow \<br> -vpre ipod640 -crf 26 -map_meta_data 0:0 -vf scale=640:-1 -threads 0 output.mp4<br>
Обновление FFmpeg и x264
Удаляем ранее установленные пакеты:
sudo apt-get remove ffmpeg x264 libx264-dev
Обновляем x264:
<br>cd ~/src/x264<br>make distclean<br>git pull<br>
Обновляем FFmpeg:
<br>cd ~/src/ffmpeg<br>make distclean<br>svn update<br>
В обоих случаях повторяем процедуру установки FFmpeg и x264, как было описано ранее, только с места "./configure ля-ля-ля..."
Отмена всех изменений, проделанных по данной инструкции
<br>sudo apt-get remove x264 ffmpeg build-essential subversion git-core \<br> checkinstall yasm texi2html libfaac-dev libmp3lame-dev libsdl1.2-dev libtheora-dev \<br> libvorbis-dev libvpx-dev libx11-dev libxfixes-dev libxvidcore-dev zlib1g-dev<br><br>rm -rf ~/src<br>
Источник: ubuntuforums.org

Комментарии (23)
Хотя мне эта тема не нужна на данный момент, и я не пробовал в деле вашу инструкцию. Я говорю вам спасибо, и если бы мог поставил кучу пятёрок как оценки пятибалльной шкалы, то я бы их поставил бы. Статья написано очень достойно, очень хорошо. Особенно радует в конце пункт: "Отмена всех изменений, проделанных по данной инструкции" Ибо мало кто включает такой нужный пункт в статью.
Автор вы молодец, продолжайте в том же духе.
Я конечно надеюсь и принял на веру, что в инструкции этой нет ошибок.
Хотя мне эта тема не нужна на данный момент, и я не пробовал в деле вашу инструкцию. Я говорю вам спасибо, и если бы мог поставил кучу пятёрок как оценки пятибалльной шкалы, то я бы их поставил бы. Статья написано очень достойно, очень хорошо. Особенно радует в конце пункт: "Отмена всех изменений, проделанных по данной инструкции" Ибо мало кто включает такой нужный пункт в статью.
Автор вы молодец, продолжайте в том же духе.
Я конечно надеюсь и принял на веру, что в инструкции этой нет ошибок.
Большое спасибо, очень помогло.
Большое спасибо, очень помогло.
Осторожно - убедитесь, что там нет других исходников!!
Правильно было бы
Осторожно - убедитесь, что там нет других исходников!!
Правильно было бы
при загрузке исходников по указанным ссылкам возникли проблемы...
при загрузке исходников по указанным ссылкам возникли проблемы...
Какие?
Какие?
При выполнении ./configure для ffmpeg возникает ошибка ERROR: libx264 not found. Как её устранить?
При выполнении ./configure для ffmpeg возникает ошибка ERROR: libx264 not found. Как её устранить?
Так же, на Ubuntu Server 11.04 на первом же шаге, не найден пакет lib1g-dev
Так же, на Ubuntu Server 11.04 на первом же шаге, не найден пакет lib1g-dev
Что именно "так же"?
Выше не находилось libx264 (как такое могло произойти, я не знаю). Вы же пишете про lib1g-dev. А это совсем не одно и тоже.
11.04 - всё есть.
Что именно "так же"?
Выше не находилось 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.
В конфиге все стандартно.
Может кто-нить в курсе, почему у меня при вещание такой дефект образовался? Будто последние строки в кадре повторяются. Вот две картинки - по rtsp (h264) и (flv, swf). FFmpeg запущен строкой:
ffmpeg -s 704x576 -i rtsp://89.105.154.248:5554 http://localhost:8090/feed.ffm.
В конфиге все стандартно.
Не работает.
Пишет:
когда делаешь ./configure для ffmpeg
Не работает.
Пишет:
когда делаешь ./configure для ffmpeg
Ну, как-то сложно что-то понять с двух слов.
Всё делали по инструкции? Пакет libx264-dev точно установлен?
Ну, как-то сложно что-то понять с двух слов.
Всё делали по инструкции? Пакет libx264-dev точно установлен?
Да, делал точно по инструкции. Ubuntu 10.04
Мне помогла эта ссылка
http://ubuntuforums.org/showpost.php?p=9868359&postcount=1289
по ней сделал и все установилось
Да, делал точно по инструкции. Ubuntu 10.04
Мне помогла эта ссылка
http://ubuntuforums.org/showpost.php?p=9868359&postcount=1289
по ней сделал и все установилось
Это и есть перевод той самой ссылки. Всё проверенно, всё собирается и ставится. Ну не могло оно не находить libx264, если бы был установлен пакет libx264-dev
Это и есть перевод той самой ссылки. Всё проверенно, всё собирается и ставится. Ну не могло оно не находить libx264, если бы был установлен пакет libx264-dev
при сборке H264 добавьте к ./configure опцию --shared
при сборке 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)
Как с этим бороться??????????
При выполнении команды:
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Ну а что непонятно? Номер версии начинается не с цифры. Значит надо сделать так, чтобы он начинатся с цифры.
Номер версии задаётся тут:
--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Делаю некоторые замечания по данной инструкции. Дело в том, что в 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
в принципе вот вам ее содержание:
Делаю некоторые замечания по данной инструкции. Дело в том, что в 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
в принципе вот вам ее содержание:
Да еще одно замечание: Перед сборкой и установкой кодека x264 с динамической библиотекой кодирования libx264.so.*** необходимо снести страрую библиотеку (удалить из системы пакет libx264) иначе команда checkinstall выдаст ошибку и откажется заменять данную билиотеку.
Да еще одно замечание: Перед сборкой и установкой кодека x264 с динамической библиотекой кодирования libx264.so.*** необходимо снести страрую библиотеку (удалить из системы пакет libx264) иначе команда checkinstall выдаст ошибку и откажется заменять данную билиотеку.
Unable to locate package lib1g-dev
Unable to locate package lib1g-dev
Под Linux, как всегда, заморочки не из чего.
такая простыня инструкций, что бы просто стоял кодировщик))))))))
Под Linux, как всегда, заморочки не из чего.
такая простыня инструкций, что бы просто стоял кодировщик))))))))
Чтобы просто стоял кодировщик, разве не проще его просто поставить? Зачем следовать ингструкции для тех, кто в этом понимает? Это явно не для новичков. А в Ubuntu и так должно всё кодировать нормально без простыней. Если же чего-то нет в стандартной поставке, должен быть ppa c нужными пакетами.
Чтобы просто стоял кодировщик, разве не проще его просто поставить? Зачем следовать ингструкции для тех, кто в этом понимает? Это явно не для новичков. А в Ubuntu и так должно всё кодировать нормально без простыней. Если же чего-то нет в стандартной поставке, должен быть ppa c нужными пакетами.
добрый день-мне срочно надо установить эти кодеки-нужные файлы загрузил все думаю-у меня мак 10.5.8 просто не работал в терминале до этого-незнаю надо ли руби устанавливать или все так прописывается в терминале?Буду очень благодарен если можно связаться с вами по телефону-сам перезвоню или через агент или скайп-вот мой телефон 8-964-778-91-17
добрый день-мне срочно надо установить эти кодеки-нужные файлы загрузил все думаю-у меня мак 10.5.8 просто не работал в терминале до этого-незнаю надо ли руби устанавливать или все так прописывается в терминале?Буду очень благодарен если можно связаться с вами по телефону-сам перезвоню или через агент или скайп-вот мой телефон 8-964-778-91-17
Спасибо. Нашел подобную статью со зборкой ffmpeg-a под Ubuntu 12.04, где добавлено поддержку всех возможных (поддерживаемых) аудио и видео форматов (в том чесле webm, ogv, arm,ogg) - http://sysadm.pp.ua/linux/video-streaming/ffmpeg-build.html . Может пригодиться.
Спасибо. Нашел подобную статью со зборкой ffmpeg-a под Ubuntu 12.04, где добавлено поддержку всех возможных (поддерживаемых) аудио и видео форматов (в том чесле webm, ogv, arm,ogg) - http://sysadm.pp.ua/linux/video-streaming/ffmpeg-build.html . Может пригодиться.