Как собрать ffmpeg с поддержкой аппаратного декодирования для raspberry pi? (кросс-компиляция, если возможно) - PullRequest
3 голосов
/ 04 августа 2020

Можно ли собрать ffmpeg с поддержкой декодирования для Raspberry Pi? Я читал, что mmal может выполнять декодирование с аппаратным ускорением на Raspberry Pi.

Я пробовал на debian 10 x86_64:

./configure \
    --prefix=${BUILD_DIR}/desktop/${FFMPEG_ARCH_FLAG} \
    --disable-doc \
    --enable-cross-compile \
    --cross-prefix=${CROSS_PREFIX} \
    --target-os=linux \
    --arch=${FFMPEG_ARCH_FLAG} \
    --extra-cflags="-O3 -fPIC $EXTRA_CFLAGS" \
    --enable-mmal \
    --enable-omx \
    --enable-omx-rpi \
    --enable-shared \
    --disable-debug \
    --disable-runtime-cpudetect \
    --disable-programs \
    --disable-muxers \
    --disable-encoders \
    --disable-bsfs \
    --disable-pthreads \
    --disable-avdevice \
    --disable-network \
    --disable-postproc 

где CROSS_PREFIX=aarch64-linux-gnu- и FFMPEG_ARCH_FLAG=aarch64 но, очевидно, я получаю ERROR: mmal not found. Мне не удалось найти MMAL для компиляции и установки.

1 Ответ

3 голосов
/ 07 августа 2020

Это возможно. Вы можете использовать этот скрипт сборки, который вам нужно будет запустить на самом Raspberry Pi. Часть, которая вас, вероятно, больше всего волнует, находится ближе к концу:

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-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

Обратите внимание на это предостережение от RaspberryPi.org :

MMAL является спецификацией Broadcom c API, используемый только в системах VideoCore 4

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...