Как играть в RAW ADTS AAC Stream с помощью MediaStreamSource?
-
12-11-2019 - |
Вопрос
У кого-нибудь есть эта работа? Я верю, что у меня запущены кодекприводы, но я не могу найти никаких форм-форм-форматов, которые, кажется, работают. Я попробовал 0xFF00, 0x1016 и 0x0116. Я использовал документацию MSDN для завершения остальной части строки.
Я нашел это в mmreg.h (wave_format_mpeg_adts_aac 0x1600), который бы имел бы форматт (0x0016). Вы подумаете, что это то, что я должен использовать, но это тоже не работает.
При использовании 0xFF, если я избегаю заголовков объявлений в потоке getsampleasync, повторно называться неоднократно, но нет воспроизведения. Я знаю, что поток хорош, потому что я могу играть в него в Foobar, VLC и Window Media Player. Когда я придерживаюсь сырого AAC в контейнер MP4, он отлично работает в Silverlight, поэтому я знаю, что настройка AAC поддерживается Silverlight.
Может кто-нибудь может снабжать меня с шестигранной строкой CodecPrivatedata, которая работала для них?
Редактировать:
Это пример приватекоделной шестигранной строки, которую я думаю, должна работать:
0x1016010080BB0000E02E0000010000002E00000100000000000000FE0000000000000000000000000000000000001190
Эта строка идет прямо из OpenMediaAsync () в CloseMedia (), даже не пытаясь образец. Пример документации MSDN делает то же самое, что найден Ta href="http://msdn.microsoft.com/en-us/library/hh180779%28v=vs.95%29.aspx" rel="nofollow"> здесь . Я бы ожидал, что это, по крайней мере, попробую образец перед закрытием.
Решение
Silverlight, кажется, не соответствует AAC и Adts Wrapper ...
Если вы проанализируете свой файл MP4 (например, MediaInfo), вы увидите AAC для аудио, но без комментариев.Вот почему Silverlight может прочитать в этом случае, ваш AAC AUDIO, встроенный в файл MP4.
Поэтому вам нужно удалить заголовок adts для каждого образца аудио до вызова reserstreamsource.Заголовок объявлений состоит из 7 или 9 байтов (без CRC или с CRC).Для получения дополнительной информации о заголовке объявлений, Смотрите эту ссылку .
Очевидно, что вам нужно адаптировать строку CodecPrivateatata с правым форматтом.Вот мой для AAC LC 48kHZ @ 96KBPS Файл: FF00020080BB0000E02E0000040010000200