Аудио файлы AAC воспроизводятся быстрее обычной - PullRequest
0 голосов
/ 22 января 2019

Я сэмплировал необработанные данные PCM с устройства, закодировал их через libfaac в аудиофайл в формате ".aac" (формат ADTS), а когда я сэмплировал их в 16 или 41 кГц, закодированный файл ".aac" воспроизводился быстрее.чем обычноВ чем причина?

Конфигурация параметров выглядит следующим образом:

    pConfiguration->inputFormat = FAAC_INPUT_16BIT;
    pConfiguration->outputFormat = 1; /*0 - raw; 1 - ADTS*/
    pConfiguration->bitRate = 16000; 
    pConfiguration->useTns = 0;
    pConfiguration->allowMidside = 1;
    pConfiguration->shortctl = SHORTCTL_NORMAL;
    pConfiguration->aacObjectType = LOW;
    pConfiguration->mpegVersion = MPEG4;
    //pConfiguration->useLfe = 1;

1 Ответ

0 голосов
/ 24 января 2019

Проблема была решена:

Я потерял необработанные данные PCM некоторого фрейма данных, я использую процессор HISI3516EV100, используя HISI SDK, проблема заключалась в том, что я конфигурировал параметры данных PCM, частота выборки вв случае 16000 Гц, точки выборки кадра данных PCM установлены на 160 выборок / кадр, это приведет к получению 16000/160 = 100 кадров в секунду, слишком высокая частота кадров, каждый кадр данных PCM мне нужно вызвать функцию обработки для AACкодирование, это вызовет много функций в стеке, почти 1000/100 = 10 мс необходимо завершить один кадр данных PCM для вызова интерфейса кодирования AAC, частота слишком высока, а библиотека libfaac потребляет немного ресурсов ЦП,что приводит к потере кадров (исходный кадр данных PCM частично утерян), так что в случае частичной потери исходных данных PCM закодированные данные AAC будут воспроизводиться быстрее, чем обычно.

Решение: удлинить кадрдлина кадра PCM до 160 образцов / кадр ---> 480 образцов / кадр

...