OMX.google.aac.encoder не работает в MediaCodec при кодировании pcm в aac

Я кодирую дорожку pcm файла wav в aac с помощью MediaCodec на Android 4.1, на моем S3 есть два кодировщика, OMX.google.aac.encoder и OMX.SEC.aac.enc, первый используется при вызове createEncoderByType, но это не работает, вывод не может быть воспроизведен (нет звука), если вызвать createByCodecName с "OMX.SEC.aac.enc", это работает. Пока на моем HTC ONE есть только "OMX.google.aac.encoder", и не работает. Думаю с моим кодом проблем нет, потому что он скопирован с гугла, и второй энкодер работает.

Кстати, я добавил заголовок рекламы в поток aac.


person philip    schedule 25.12.2013    source источник


Ответы (1)


На моем Nexus 5 MediaCodec.createByCodecName() никогда не работает при передаче имен кодировщиков (как указано в MediaCodecList).

Кодировщики AAC на моем Nexus 5 (4.4.4):

имя: OMX.google.aac.типы кодировщика: [audio/mp4a-latm]

имя: Типы AACEncoder: [audio/mp4a-latm]

Однако это работает:

MediaCodec.createEncoderByType("audio/mp4a-latm");

Примечание: любопытно, что при вызове этого метода логи показывают:

A component of name 'OMX.qcom.audio.decoder.aac' already exists, ignoring this one.

что как-то странно.

Так что, если это не работает для вас, то, вероятно, это связано с вашей реализацией кодировщика, а не с созданием MediaCodec.

person Marianna D    schedule 24.09.2014