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

Я кодирую дорожку wcm pcm файла в 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", и он не работает. Я думаю, что мой код не имеет проблем, потому что он был скопирован с Google, и второй кодировщик работает.

Кстати, я добавил заголовок объявления в поток aac.

1 ответ

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

Кодеры AAC на моем Nexus 5 (4.4.4):

имя: OMX.google.aac.encoder типы: [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.

Другие вопросы по тегам