Воспроизведение файла AAC (ADTS) с помощью Netstream Appendbytes
Я хочу знать, действительно ли возможно воспроизвести файл AAC (заголовок ADTS) с Netstream.appendbytes. Я говорю о файлах, которые заканчиваются .aac
не аудио AAC внутри контейнеров M4A или MP4.
Я знаю, что Netstream не может анализировать заголовки ADTS и т. Д., Поэтому у меня уже есть класс для анализа данных и возвращает правильную информацию, такую как каналы, битрейты, длины кадров и т. Д.
Соединение этого дает тишину: Сделать заголовок FLV (+ добавление) ->> Сделать заголовок звукового тега (+ добавление) ->> Теперь добавить с полезной нагрузкой AAC необработанных / без заголовка (кадр 1) + обновить предыдущий размер тега ->> Создать новое аудио тег для следующего кадра AAC & append ->> добавление необработанной / без заголовка полезной нагрузки (кадр 2) и так далее до конца дорожки.
Может кто-нибудь уточнить, пожалуйста:
В теге FLV мы добавляем дополнительный байт, чтобы указать, является ли тип необработанным или последовательным AAC. Если я удалил 7-байтовый заголовок и оставил только данные до следующего кадра /SyncWord. Я предполагаю, что это Raw, но я получаю тишину, какую бы настройку я не выбрал. Должен ли я рассмотреть что-нибудь еще (например, дополнительную функцию в зависимости от типа?)
Должны ли байты заголовка AAC существовать в некоторых данных в какой-то момент, отправленный команде Appendbytes? Даже если я уже установил для тега FLV значение Raw AAC audio?
Все ли файлы AAC содержат 1024 выборки на кадр независимо от каналов, или мне нужно умножить 1024 на количество каналов? Я спрашиваю, потому что мне нужно это для правильного расчета длительности, и заметил, что при тестировании MP3-файлов я получаю молчание, если длительность или длина кадра неверны
У меня много вопросов и много исследований (спецификации AAC, спецификации FLV и т. Д.), Но ничто не помогает, и в сети есть некоторая запутанная информация (ну, они не всегда говорят с точки зрения AS3...). Я думаю, мне просто нужно знать, что это определенно возможно, а не продолжать слепо против технических ограничений
PS: я успешно проиграл аудио-файлы.MP3 с AppendBytes и теперь изменил процесс, чтобы приспособить AAC (то есть: синтаксический анализ 7-байтового заголовка, а не 4-байтового заголовка и т. Д. Больше, чем у ofcos). Спасибо за чтение и надеюсь, что кто-то там может помочь.
1 ответ
Я хотел ответить на это некоторое время назад...
Рабочая демонстрация. [Очень простая демонстрация воспроизведения файла AAC] (см. Ниже, если вам нужен тестовый файл AAC)
Я могу с радостью подтвердить, что на 100% возможно сыграть .aac
аудио файл с помощью NetStream. Итак, чтобы уточнить мои собственные вопросы:
Для того, чтобы запустить декодер AAC, нужно сначала упомянуть оба типа AAC, а затем вы можете сделать обычный тег FLV с типом AAC: необработанные + необработанные данные AAC (без заголовка ADTS) и продолжить работу до конца пути.
Нету. Байты ADTS не должны отправляться в декодер Netstream.
Да, каждый кадр AAC содержит 1024 выборки, и каждый кадр равен 23,21 миллисекундам (около 44 кадров на 1 секунду звука). Настройки канала не имеют значения.
Изображение ниже иллюстрирует процесс. Как вы можете видеть после FLV-заголовка и метаданных, сначала есть теги для ОБА типов, а затем для необработанного типа AAC до конца. Отсутствие ADTS означает удаление 7-байтового заголовка из каждого кадра AAC и вставку того, что осталось в теги FLV. Я сделал одну звуковую метку FLV на кадр AAC (проще справляться с поиском, метками времени и т. Д.)...
После анализа теста FLV, сделанного с FFMPEG
внутри шестнадцатеричного редактора я понял, что нужно использовать обе настройки. Я не понимаю, как они поняли, что вам нужны оба, а не тот или другой, как предлагалось в спецификации FLV (версия 10.1). Я склоняю голову перед гением этих парней и девушек.
Я застрял из-за этого:
Изображение "Процесс" наверху достаточно для тех, кто знает netstream.appendbytes
ладить с этим:
Если вам нужны тестовые аудиофайлы...
AAC Loop test 1: (Авторы: Mark "45" King) - http://goo.gl/U7IuWe
AAC Loop test 2: (Авторы: UTFO) - http://goo.gl/W8ieJd
Расширенный тест AAC: (Авторы: Enya) - http://goo.gl/EVCy4X