FFMPEG с поддержкой аппаратного кодека - PullRequest
15 голосов
/ 30 августа 2011

Я создал простой медиаплеер, используя ffmpeg на Android 2.2.Аппаратное обеспечение представляет собой процессор с тактовой частотой 1 ГГц, работающий на базе Cortex-A8, 512 МБ ОЗУ.Я получаю низкую производительность, около 15 FPS для 800x600 mp4 видео.У меня есть пара вопросов о том, как я могу улучшить производительность

  • Как я могу использовать аппаратные кодеки, доступные на моем целевом устройстве.Как я могу настроить ffmpeg для использования доступных аппаратных декодеров?Должен ли GPU или графический драйвер предоставлять какой-либо стандартный API, например OpenMax IL, для этого?

  • Какие параметры следует включить при сборке ffmpeg, чтобы его можно было оптимизироватьмое целевое оборудование?Что-то вроде: --cpu=cortex=a8 --extra-cflags="-mfpu=neon" ...

Я уже просмотрел сеть, но не смог найти ответы на свои вопросы.Надеюсь, кто-нибудь посоветует мне это.

Заранее спасибо!

1 Ответ

3 голосов
/ 28 января 2012

В libav / ffmpeg должен быть специальный код, адаптированный к вашему оборудованию. Прямо сейчас я вижу поддержку для некоторых HW-декодеров и для оборудования, которое имеет драйверы, которые предоставляют API-интерфейсы VPAPI или VDPAU (в основном NVidia).

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

Другими словами, вы должны спросить своего поставщика медицинских услуг.

...