Проблемы с выравниванием кадров 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 ответа

Решение

Скорее всего, вы обрезаете кадры где-то посередине, и это, скорее всего, запутает любой декодер. Может случиться так, что некоторые декодеры проанализируют ваш разбитый кадр, чтобы найти заголовок следующего кадра, но я бы не стал на это ставить, поскольку декодеры не настолько надежны.

Итак, вам нужно проанализировать кадр, что не так просто, вы на самом деле строите совершенно новый декодер... Я бы взглянул на FAAD, декодер с открытым исходным кодом, может быть, это поможет.

Кроме того, лучшее место, чтобы задать такие вопросы - www.hydrogenaudio.org/forums/.

Regs, Даниэль Домазет

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