$put_perv_real = "/home/www/dvakompa-ru/dopol/"; ?>
Сегодня я поделюсь с вами как я собирал FFMPEG с кодеками на Raspbian Pi (Jessie).
FFMPEG — это пожалуй самая популярная библиотека в мире linux для работы с мультимедиа.
Как известно, FFMPEG не включен в репозиторий raspbian, поэтому его не возможно просто установить с помощью
1 |
|
как это зачастую можно сделать на других операционных системах, под другие архитектуры. Вот поэтому мы его будем собирать из исходников.
Перед тем, как мы скомпилируем FFMPEG, нам понадобиться собрать также все кодеки, которые мы планируем использовать. В моем случае это AAC, MP3 и H264.
Итак, приступим.
Обычно для установки чего либо, требуются права root. Для того, чтобы не вводить каждый раз sudo — сделаем это один раз
1 2 |
|
Для работы с медиа нам понадобятся соответствующие библиотеки для работы со звуком — ALSA
1 2 3 |
|
После этого, ALSA headers можно будет найти в /usr/include/alsa, а соответствующие библиотеки в /usr/lib/arm-linux-gnueabihf.
Не уверен, что в этом есть необходимость, но я собрал на всякий случай YASM
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 |
|
Теперь собираем кодек H264. Очень важно указать параметр —disable-asm в конфигураторе, без него, при попытке использовать H264 кодек, вылазит ошибка — "illegal instruction".
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 |
|
Следующим собираем MP3 кодек. Библиотеки mp3 кодека будут установлены в /usr/local/lib/libmp3lame
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 |
|
Собираем AAC кодек, в итоге библиотеки будут установлены в /usr/local/lib/libfaac
01 02 03 04 05 06 07 08 09 10 11 |
|
В данной версии faac-1.28 (надеюсь что только в этой версии) есть ошибка в файле common/mp4v2/mpeg4ip.h, чтобы ее пофиксить надо открыть этот файл и добавить несколько строк после строки 126 таким образом, чтобы это выглядело примерно так
123 124 125 126 127 128 129 130 131 |
|
Далее продолжим…
1 2 3 4 5 6 7 8 |
|
Наконец мы готовы собрать FFMPEG. В итоге библиотеки ffmpeg будут установлены в /usr/bin/ffmpg. Компиляция ffmpeg занимает не мало времени, и как повествует нам об этом интернет, на ранних версиях Raspberry Pi это могло достигать и до 5 часов, но благо в новом Rasspberry Pi 2 B есть аж целых 4 ядра процессора, поэтому для меня, весь процесс компиляции занял не более 25 минут (и это при том, что я не разгонял тактовую частоту процессора до 1000MHz), что в свою очередь не может не радовать.
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 |
|
Из-за того, что все кодеки были установлены в папку /usr/local/lib, ffmpeg надо дать об этом как-то знать, для этого существует глобальная переменная — LD_LIBRARY_PATH. Можно каждый раз запускать ffmpeg таким образом
1 |
|
Но есть и более универсальный вариант — установить значение этой переменной на постоянной основе
1 2 |
|
На этом наша сборка подошла к концу. Единственное, на что хотелось бы обратить внимание, всё вышеперечисленное будет работать только с указанными версиями исходников, на других версиях я не тестировал поэтому не могу дать гарантии что это будет работать.
Всем удачных экспериментов.
Использованные источники