Raspberry Pi: kompilacja FFMpeg + mmal

Kompilacja ffmpega z obsługą sprzętowego dekodowania video pod Rasperry Pi nie jest procesem skomplikowanym. Jest to jeden z etapów umożliwiających później np. dodanie hardware’owego dekodowania sprzętowego strumieni do modułu QtWebEngine w bibliotece Qt.

W tym artykule opiszę krok po kroku, jak należy to zrobić.

Pierwszym krokiem będzie usunięcie natywnych bibliotek z systemu:

sudo apt-get purge libavcodec56 libavformat56 libavresample2 libavutil54 libswscale3 libx264-142 libx264-dev

i zainstalowanie pakietów dev kilku bibliotek, które będą nam później potrzebne w procesie kompilacji:

sudo apt-get install libass-dev libfreetype6-dev libopus-dev libtheora-dev libvorbis-dev libmp3lame-dev libwebpdemux1 libwebp-dev libzvbi-dev libgpac-dev

Teraz tworzymy sobie katalog powiedzmy mmcompile – mkdir mmcompile i wchodzimy do niego – cd mmcompile

Ściągamy bibliotekę l-smash z repozytorium:

git clone https://github.com/l-smash/l-smash

wchodzimy do katalogu z l-smash i konfigurujemy, a później kompilujemy i instalujemy w systemie:

./configure --prefix=/usr --libdir=/usr/lib/arm-linux-gnueabihf --enable-shared
make -j4 && sudo make install

Wychodzimy z katalogu l-smasha. Teraz czas na bibliotekę x264. Ściągamy najnowszą dostępną wersję:

wget ftp://ftp.videolan.org/pub/x264/snapshots/last_x264.tar.bz2
tar xf last_x264.tar.bz2

wchodzimy do katalogu z x264, konfigurujemy, kompilujemy i instalujemy w systemie:

./configure --prefix=/usr --libdir=/usr/lib/arm-linux-gnueabihf --enable-shared --disable-opencl
make -j4 && sudo make install

Tak samo z libvpx:

git clone https://chromium.googlesource.com/webm/libvpx
cd libvpx
./configure --prefix=/usr --libdir=/usr/lib/arm-linux-gnueabihf --enable-shared --enable-better-hw-compatibility --enable-vp8 --enable-vp9 --disable-examples --enable-webm-io
make -j4 && sudo make install

i fdk-aac:

git clone https://github.com/mstorsjo/fdk-aac
cd fdk-aac
./configure --prefix=/usr --libdir=/usr/lib/arm-linux-gnueabihf --enable-shared
make -j4 && sudo make install

i na koniec FFMpeg:

git clone https://github.com/FFmpeg/FFmpeg.git
cd ffmpeg
./configure --prefix=/usr --libdir=/usr/lib/arm-linux-gnueabihf --enable-mmal --enable-omx --enable-omx-rpi --enable-decoder=h264_mmal --enable-decoder=mpeg2_mmal --enable-encoder=h264_omx --enable-encoder=h264_omx --enable-libx264 --enable-nonfree --enable-gpl --enable-avresample --enable-shared --enable-static --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libzvbi --enable-libvpx
make -j4 && sudo make install

I mamy gotowego ffmpeg’a, którego możemy używać w swoich projektach, możemy również użyć go do kompilacji QtWebEngine z biblioteki Qt itp.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *