Аппаратное ускорение FFmpeg на Raspberry PI

Я создаю программу, которая использует ffmpeg для потоковой передачи содержимого веб-камеры через Интернет. Я хотел бы знать, возможно ли использовать графический процессор для потоковой части на модели raspberry pi 3. Если да, как я могу реализовать это на ffmpeg?

2 ответа

Решение

Вам понадобятся некоторые дополнительные параметры настройки:

  • --enable-mmal - Включить Broadcom Multi-Media Abstraction Layer (Raspberry Pi) через MMAL. Для аппаратного декодирования H.264, VC-1, MPEG-2, MPEG-4. В качестве зависимости вам понадобится пакет linux-raspberrypi-headers (Arch Linux) или linux-headers - * - raspi2 (Ubuntu), который предоставляет необходимый заголовочный файл mmal.h,

  • --enable-omx-rpi - Включить код OpenMAX IL для Raspberry Pi. Для аппаратного кодирования H.264 (кодировщик назван h264_omx) и MPEG-4 (mpeg4_omx). В качестве зависимости вам понадобится пакет libomxil-bellagio (Arch Linux) или libomxil-bellagio-dev (Ubuntu), который предоставляет необходимый заголовочный файл OMX_Core.h,

Для пользователей Arch Linux:

Скопируйте файл PKGBUILD для пакета ffmpeg (возможно, через ABS, если хотите). Добавьте две новые опции конфигурации, показанные выше, и добавьте два упомянутых пакета в depends линия. Скомпилируйте / установите с makepkg команда.

Отказ от ответственности: у меня нет одного из этих устройств, чтобы проверить все это. Большая часть этой информации была получена от FFmpeg configure файл.

Пакет ffmpeg от apt теперь включает аппаратные кодеки, поэтому вы можете просто установить его, используя:

      apt install ffmpeg

Существует два кодека, основанный на интерфейсе Video Memory-To-Memory.h264_v4l2m2m или [старше] h264_omx На базе OMX.

Примечание. Если вы изменили gpu_mem установка в /boot/config.txt он должен быть больше 16 - иначе вы получите ошибку с обоими кодеками.

Другие вопросы по тегам