• I






      
           

Научно-популярный образовательный ресурс для юных и начинающих радиолюбителей - Popular science educational resource for young and novice hams

Основы электричества, учебные материалы и опыт профессионалов - Basics of electricity, educational materials and professional experience

КОНКУРС
language
 
Поиск junradio

Радиодетали
ОК
Сервисы

Stock Images
Покупка - продажа
Фото и изображений


 
Выгодный обмен
электронных валют

Друзья JR



JUNIOR RADIO

 

Компиляция FFmpeg на Raspberry Pi

 

 

FFmpeg - это проект с открытым исходным кодом, который состоит из значительного набора библиотек. Эти библиотеки предназначены для работы с различными мультимедийными форматами, будь то форматы изображений, видео или аудио. Одна из лучших особенностей FFmpeg заключается в том, что его можно скомпилировать на самых разных устройствах, включая Raspberry Pi. Используя FFmpeg, вы сможете кодировать и декодировать большое количество видео и аудио кодеков.

Установка пакетов, необходимых для FFmpeg

В этой секции. мы подготовим ваш Raspberry Pi, установив все необходимые библиотеки для компиляции FFmpeg.

1. Прежде чем мы начнем, вы должны сначала обновить как список пакетов, так и установленные пакеты. Чтобы обновить все, все, что вам нужно сделать, это выполнить следующие две команды.

sudo apt update

sudo apt upgrade

2. Теперь нам нужно установить пакеты, необходимые для компиляции FFmpeg и его дополнительных библиотек. Поскольку их довольно много, процесс установки может занять некоторое время. Выполните следующую команду, чтобы установить все необходимые пакеты на Raspberry Pi.

sudo apt -y install autoconf automake build-essential cmake doxygen git graphviz imagemagick libasound2-dev libass-dev libavcodec-dev libavdevice-dev libavfilter-dev libavformat-dev libavutil-dev libfreetype6-dev libgmp-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libopus-dev librtmp-dev libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-net-dev libsdl2-ttf-dev libsnappy-dev libsoxr-dev libssh-dev libssl-dev libtool libv4l-dev libva-dev libvdpau-dev libvo-amrwbenc-dev libvorbis-dev libwebp-dev libx264-dev libx265-dev libxcb-shape0-dev libxcb-shm0-dev libxcb-xfixes0-dev libxcb1-dev libxml2-dev lzma-dev meson nasm pkg-config python3-dev python3-pip texinfo wget yasm zlib1g-dev libdrm-dev

Компиляция дополнительных библиотек на Raspberry Pi

В этом разделе показано, как скомпилировать дополнительные библиотеки, необходимые для FFmpeg.

1. Прежде чем мы начнем, давайте создадим каталог, в котором мы будем хранить код для каждой из этих библиотек.

mkdir ~/ffmpeg-libraries

Прежде чем продолжить, обратите внимание, что для выполнения каждого из следующих шагов потребуется время.

2.Первая библиотека, которую мы собираемся скомпилировать, - это библиотека Fraunhofer FDK AAC . Компиляция этой библиотеки позволит FFmpeg иметь поддержку звукового формата AAC . Выполните следующую команду, чтобы загрузить и скомпилировать исходный код на Raspberry Pi.

git clone --depth 1 https://github.com/mstorsjo/fdk-aac.git ~/ffmpeg-libraries/fdk-aac \

  && cd ~/ffmpeg-libraries/fdk-aac \

  && autoreconf -fiv \

  && ./configure \

  && make -j$(nproc) \

  && sudo make install

3.Следующая библиотека, которую мы собираемся скомпилировать, - это библиотека « dav1d ». Эта библиотека добавит поддержку декодирования видео формата AV1 в FFmpeg. Этот кодек считается преемником кодека VP9 и конкурентом кодека x265. Выполните следующую команду, чтобы скомпилировать и установить библиотеку « dav1d » на Raspberry Pi.

git clone --depth 1 https://code.videolan.org/videolan/dav1d.git ~/ffmpeg-libraries/dav1d \

  && mkdir ~/ffmpeg-libraries/dav1d/build \

  && cd ~/ffmpeg-libraries/dav1d/build \

  && meson .. \

  && ninja \

  && sudo ninja install

4.Эта библиотека, которую мы собираемся скомпилировать дальше, представляет собой кодировщик HEVC под названием « kvazaar ». Используя следующую команду, вы можете клонировать и скомпилировать библиотеку Kvazaar на своем Raspberry Pi.

git clone --depth 1 https://github.com/ultravideo/kvazaar.git ~/ffmpeg-libraries/kvazaar \

  && cd ~/ffmpeg-libraries/kvazaar \

  && ./autogen.sh \

  && ./configure \

  && make -j$(nproc) \

  && sudo make install

5. Теперь мы можем скомпилировать библиотеку, которая нам нужна, чтобы FFmpeg мог поддерживать видеокодеки VP8 и VP9 на нашем Raspberry Pi. Эта библиотека, которую мы собираем, называется LibVPX и разработана Google. Следующая команда будет клонировать, настраивать и компилировать библиотеку для нашего Pi.

git clone --depth 1 https://chromium.googlesource.com/webm/libvpx ~/ffmpeg-libraries/libvpx \

  && cd ~/ffmpeg-libraries/libvpx \

  && ./configure --disable-examples --disable-tools --disable-unit_tests --disable-docs \

  && make -j$(nproc) \

  && sudo make install

6.Теперь нам нужно скомпилировать библиотеку под названием « AOM » . Эта библиотека позволит нам добавить поддержку кодирования в видеокодек AP1 на вашем Raspberry Pi. Используйте следующую команду для клонирования и компиляции кода на вашем Pi.

git clone --depth 1 https://aomedia.googlesource.com/aom ~/ffmpeg-libraries/aom \

  && mkdir ~/ffmpeg-libraries/aom/aom_build \

  && cd ~/ffmpeg-libraries/aom/aom_build \

  && cmake -G "Unix Makefiles" AOM_SRC -DENABLE_NASM=on -DPYTHON_EXECUTABLE="$(which python3)" -DCMAKE_C_FLAGS="-mfpu=vfp -mfloat-abi=hard" .. \

  && sed -i 's/ENABLE_NEON:BOOL=ON/ENABLE_NEON:BOOL=OFF/' CMakeCache.txt \

  && make -j$(nproc) \

  && sudo make install

7.Последняя библиотека, которую нам нужно скомпилировать, - это библиотека « zimg » . Эта библиотека реализует ряд функций обработки изображений, касающихся основ масштабирования, цветового пространства и глубины. Клонируйте и скомпилируйте код, выполнив команду ниже.

git clone -b release-2.9.3 https://github.com/sekrit-twc/zimg.git ~/ffmpeg-libraries/zimg \

  && cd ~/ffmpeg-libraries/zimg \

  && sh autogen.sh \

  && ./configure \

  && make \

  && sudo make install

8. Теперь запустите команду ниже, чтобы обновить кеш ссылок. Эта команда гарантирует, что мы не столкнемся с проблемами компоновки, потому что компилятор не может найти библиотеку.

sudo ldconfig

Компиляция FFmpeg на Raspberry Pi

В этом разделе мы покажем вам, как собрать все вместе и наконец скомпилировать FFmpeg.

1. Наконец-то мы можем скомпилировать FFmpeg на Raspberry Pi. Во время компиляции мы включим все дополнительные библиотеки, которые мы скомпилировали и установили в предыдущих двух разделах. Мы также будем включать функции, которые помогают с Raspberry Pi, такие как omx-rpi . Выполните следующую команду, чтобы все скомпилировать. Эта команда достаточно большая, так как нам нужно включить значительное количество функций.

git clone --depth 1 https://github.com/FFmpeg/FFmpeg.git ~/FFmpeg \

  && cd ~/FFmpeg \

  && ./configure \

    --extra-cflags="-I/usr/local/include" \

    --extra-ldflags="-L/usr/local/lib" \

    --extra-libs="-lpthread -lm -latomic" \

    --arch=armel \

    --enable-gmp \

    --enable-gpl \

    --enable-libaom \

    --enable-libass \

    --enable-libdav1d \

    --enable-libdrm \

    --enable-libfdk-aac \

    --enable-libfreetype \

    --enable-libkvazaar \

    --enable-libmp3lame \

    --enable-libopencore-amrnb \

    --enable-libopencore-amrwb \

    --enable-libopus \

    --enable-librtmp \

    --enable-libsnappy \

    --enable-libsoxr \

    --enable-libssh \

    --enable-libvorbis \

    --enable-libvpx \

    --enable-libzimg \

    --enable-libwebp \

    --enable-libx264 \

    --enable-libx265 \

    --enable-libxml2 \

    --enable-mmal \

    --enable-nonfree \

    --enable-omx \

    --enable-omx-rpi \

    --enable-version3 \

    --target-os=linux \

    --enable-pthreads \

    --enable-openssl \

    --enable-hardcoded-tables \

  && make -j$(nproc) \

  && sudo make install

2. Компиляция FFmpeg может занять значительное время на Raspberry Pi, так что наберитесь терпения.

На этом этапе руководства вы должны успешно скомпилировать FFmpeg на вашем Raspberry Pi.

 




Необходимо добавить материалы...
Результат опроса Результаты Все опросы нашего сайта Архив опросов
Всего голосовало: 373



          

Радио для всех© 2024