Android MediaRecorder не создает потоковое аудио AAC-LC с использованием AudioEncoder.AAC

Я использую Nexus 7 с Android версии 4.2+. Таким образом, в соответствии с форматами мультимедиа, поддерживаемыми Android, все перечисленные кодировщики и контейнеры поддерживаются форматы.

Теперь я хочу записать звук с помощью кодера AAC-LC и формат контейнера MPEG-4 (файл тип).

В сгенерированном файле, когда я открываю его в HEX-редакторе, я вижу, что это файл Базовый медиафайл ISO, имеющий поле типа файла isom (раздел 4.3) со следующими совместимыми брендами: isom и 3gp4. Остальная часть файла в основном представляет собой блок mdat (содержащий фактические аудиоданные). Следующий фрагмент HEX из начала файла говорил мне об этом:

00000018 66747970 69736F6D 00000000 69736F6D 33677034 00029708 6D646174 ...

переводится как:

      24 ftyp     isom     no-minor isom     3gp4     0x29708  mdat     ...

что значит:

файл (ftyp) соответствует стандарту ISO/IEC 14496-12 (isom) и не указывает дополнительной версии. Совместимые бренды с этим файлом: isom и 3gp4. Затем следует блок аудиоданных (mdat) длиной 0x29708

Где часть говорит мне, что это закодированный файл AAC-LC (AAC низкой сложности)?

Кроме того, по сравнению с другими файлами AAC-LC в веб-сайте их заголовок (окно файла) отличается, упоминая mp42 как ftyp и mp42, isom, ndia как совместимые бренды. Такой файл также доступен для потоковой передачи (как и должен быть AAC-LC).

Но сгенерированный Android файл AAC_LC (MP4) НЕ доступен для потоковой передачи. Так что же Android MediaRecorder или я делаю неправильно? Я использую следующий код:

mRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
// the bit rate should be adjusted silently if out of range
mRecorder.setAudioEncodingBitRate(320000);
mRecorder.setAudioSamplingRate(48000);

person Gabriel Petrovay    schedule 20.04.2013    source источник
comment
Я также тестировал кодировщик HE-AAC. Та же история: Android MediaRecorder генерирует одинаковые isom и 3gp4 совместимые бренды. Я не вижу следов, указывающих на то, что файл закодирован с помощью HE-AAC.   -  person Gabriel Petrovay    schedule 20.04.2013
comment
Ужасный Nexus7 не поддерживает все перечисленные схемы кодирования, как и многие другие устройства.   -  person Fahad Ishaque    schedule 21.04.2013