Проблемы с выравниванием кадров aacplus
У меня есть приложение, которое копирует аудио потоки aac+, обрезая их через каждый регулярный интервал (т. Е. 10 минут). Иногда файлы воспроизводятся нормально, но иногда проигрыватель Windows Media просто закрывается при попытке построить граф DirectShow.
Я использую плагин Orban aacplus, и он работает под DirectShow. Когда я играю этот файл с winamp или vlc, у которого есть собственный механизм декодирования aacplus, он работает нормально. Тем не менее, мне нужно, чтобы он работал под DirectShow.
В любом случае, проблемный файл здесь:
http://www.videophill.com/files/00272-20100418100002.aac
Я знаю, что есть ошибка выравнивания кадров, и я подтвердил свою теорию, заполнив первые 256 байтов 0x00, попытался воспроизвести ее снова, и это сработало.
Есть ли какая-либо информация о фреймах aacplus, доступных в Интернете, поэтому я могу попытаться найти начало фрейма вручную и обрезать остальное?
2 ответа
Лучший материал, который я смог найти здесь:
http://www.wiki.multimedia.cx/index.php?title=ADTS
http://www.hydrogenaudio.org/forums/lofiversion/index.php/t64890.html
и я пришел отсюда:
http://www.wiki.multimedia.cx/index.php?title=Understanding_AAC
Скорее всего, вы обрезаете кадры где-то посередине, и это, скорее всего, запутает любой декодер. Может случиться так, что некоторые декодеры проанализируют ваш разбитый кадр, чтобы найти заголовок следующего кадра, но я бы не стал на это ставить, поскольку декодеры не настолько надежны.
Итак, вам нужно проанализировать кадр, что не так просто, вы на самом деле строите совершенно новый декодер... Я бы взглянул на FAAD, декодер с открытым исходным кодом, может быть, это поможет.
Кроме того, лучшее место, чтобы задать такие вопросы - www.hydrogenaudio.org/forums/.
Regs, Даниэль Домазет