Создание декодера Android H264 с использованием OpenMAX AL

Я пытаюсь разработать аппаратный ускоренный видеодекодер H264 с использованием OpenMAX AL API. Но в в этом документе говорится, что:

Единственный поддерживаемый способ доставки мультимедийного контента — через транспортный поток MPEG-2.

Но, согласно Википедии, MPEG-2 — это H262 и более старая, менее продвинутая версия H264. Так должно ли декодирование H264 работать?

Кроме того, в вышеуказанных документах указано, что -

Основной особенностью является возможность воспроизведения транспортного потока MPEG-2, содержащего один программный поток, состоящий из одного элементарного видеопотока H.264 и одного элементарного аудиопотока AAC.

Так в чем же здесь дело? Смогу ли я декодировать поток H264 Baseline Annex B с помощью OpenMax AL? Или мне нужно подойти с OpenMax IL или stagefright?


person Kaidul    schedule 04.09.2015    source источник
comment
Единственный поддерживаемый способ доставки мультимедийного контента — через транспортный поток MPEG-2. Но, согласно Википедии, MPEG-2 - это H262 и более старая, менее продвинутая версия H264. Кажется, вы смешиваете здесь разные концепции. H.262 — это стандарт сжатия видео. Транспортный поток MPEG-2 представляет собой контейнерный формат.   -  person Michael    schedule 04.09.2015
comment
@Майкл, спасибо за ответ. Значит, это должно работать с потоком H.264, верно? Обратите внимание, что я не транслирую какой-либо медиаконтейнер, его RTSP с любой камеры/устройства захвата. Ну и с OpenMax я тоже не кодирую, только декодирую.   -  person Kaidul    schedule 04.09.2015
comment
Что вы пытаетесь сделать, что не поддерживается общедоступными API? Почему бы не использовать MediaCodec?   -  person fadden    schedule 04.09.2015
comment
@fadden Потому что MediaCodec — это API Java, и мне нужно взаимодействовать с jni, который будет медленнее / не синхронизирован со звуком из-за дорогих вызовов JNI (вероятная причина может быть).   -  person Kaidul    schedule 04.09.2015
comment
OpenMax AL был открыт из Android 14 и теперь является общедоступным API нативного уровня.   -  person Kaidul    schedule 04.09.2015


Ответы (1)


Итак, OpenMax AL поддерживает только декодирование транспортного потока MPEG-2 через буферную очередь. Это исключает передачу необработанных NALU h264 или других медиаформатов.

person Kaidul    schedule 06.09.2015