Аппаратное ускорение 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 - иначе вы получите ошибку с обоими кодеками.