Разрабатывает аппаратный декодер H264 для Android - Stagefright или OpenMax IL?
Я занимаюсь разработкой ускоренного видео декодера H264 для Android. До сих пор я пришел с некоторыми библиотекамиMediaCodec
, Stagefright
, OpenMax IL
, OpenMax AL
а такжеFFmpeg
, После небольшого исследования я обнаружил, что -
Я нашелбольшой ресурс использования stagefright с FFmpeg, но я не могу использовать FFmpeg, так как для его лицензии это довольно ограничительно для распределенного программного обеспечения. (Или можно отказаться от FFmpeg от этого подхода?)
Я не могу использовать MediaCodec в качестве Java API, и мне приходится вызывать его через JNI из уровня C ++, который является относительно медленным, и мне это запрещено.
Я не могу использовать OpenMax AL, так как он поддерживает только декодирование транспортного потока MPEG-2 через буферную очередь. Это исключает передачу необработанных значений h264 NALU или других форматов мультимедиа.
Теперь осталось только - stagefright и OpenMax IL. Я узнал, что stagefright использует интерфейс OpenMax (OMX). Так я должен идти с stagefright или OpenMax IL? Что будет более перспективным?
Кроме того, я узнал, что ускоренный декодер Android H / W зависит от производителя, и у каждого поставщика есть свои собственные интерфейсы API OMX. Это правда? Если это так, нужно ли мне писать H / W вендор для конкретной реализации OpenMax IL? А как насчет сценического страха? - Это аппаратно-независимый или аппаратно-зависимый? Если не существует способа реализации H / W с использованием аддона или OpenMax IL, мне нужно поддерживать как минимум Qualcomm Snapdragon, Samsung Exynos и Tegra-4.
Обратите внимание, что мне нужно декодировать поток Приложения B H264 и ожидать декодированные данные после декодирования, которые я отправлю в свой конвейер рендеринга видео. В общем, мне нужен только модуль декодера.
Я очень смущен. Пожалуйста, помогите мне поставить в правильном направлении. Заранее спасибо!
РЕДАКТИРОВАТЬ
Мое программное обеспечение для коммерческих целей, и исходный код также является частным. И я также ограничен в использовании ffmpeg клиентом. :)