разница между аудиоданными в файлах .aac и .m4a на уровне байтов - PullRequest
0 голосов
/ 18 января 2019

Это для понимания структуры файла aac

Для простоты мы можем принять файл m4a только с аудио aac (то есть без видео)

Я сравниваю файл m4a и файл aac, созданный из файла m4a, используя библиотеку faac

Ниже приведен скриншот сравнения уровня байтов двух файлов:

enter image description here

верхняя часть - файл m4a, а нижняя часть - файл aac

Для самого первого кадра из нижней части заголовок AAC ADTS равен FF F9 4C 80 12 3F FC, а с здесь и здесь фактические аудиоданные aac должны иметь 138 байтов

Из нижней части видно, что байты от DE до 80 соответствуют блоку данных в верхнем окне (зеленая часть)

Я предположил, что нашел смещение в файле m4a, откуда хранятся фактические аудиоданные aac. Я думал, что байты 21 4C ... в верхнем окне содержали все байты следующего кадра аудио-файла, и если мы посмотрим на нижнее окно, мы действительно можем увидеть, что ... a3 80 (конец зеленой части в нижнее окно) сопровождается другим заголовком ADTS (FF F9 4C 80 12 1F FC, который говорит, что количество аудио в следующем кадре aac должно быть 137 байтов)

Однако байты, считанные из файла aac, не совпадают с байтами в файле m4a, как ожидалось, как показано на снимке экрана ниже:

enter image description here

Они совпадают до определенной точки, но все после этого выглядит случайным.

Какова связь между файлом m4a и соответствующим файлом aac, созданным из него, на уровне байтов?

Основная цель состоит в том, чтобы иметь возможность изменить этот проект Matlab (который принимает входные данные m4a и декодирует их в необработанные данные WAV), чтобы считывать аудиоданные AAC непосредственно из файла AAC, а затем использовать функции декодера AAC из этот проект Matlab без изменений.

...