Pergunta

Alguém tem esse trabalho? Eu acredito que tenho o codecprivatedata bagunçado, mas não consigo encontrar nenhum formattags de ondatex que pareçam funcionar. Eu tentei 0xff00, 0x1016 e 0x0116. Eu usei a documentação do MSDN para concluir o resto da string.

Eu achei isso em mmreg.h (wave_format_mpeg_adts_aac 0x1600), que teria um formattag (0x0016). Você acha que isso é o que eu deveria usar, mas isso também não funciona.

Ao usar 0xff se eu evitar os cabeçalhos de adtos no fluxo getsampleasync é chamado repetidamente, mas não há reprodução. Eu sei que o fluxo é bom porque eu posso jogá-lo em foobar, vlc e window media player. Quando eu coloco a AAC cru em um contêiner MP4, funciona bem no Silverlight, então eu sei que a configuração AAC é suportada pelo Silverlight. Alguém pode me fornecer uma cadeia de codecprivatedata de codecprivatedata que funcionou para eles?

edit:

Este é um exemplo da cadeia hex do privatecodecdata que eu acho que deve funcionar:

0x1016010080BB0000E02E0000010000000E000100FE0000000000000000000000000000000000000000000000000000001190

Esta string vai direto do OpenMediaasync () para Closemedia () sem tentar uma amostra. O exemplo de documentação do MSDN faz a mesma coisa encontrada aqui . Eu esperaria que pelo menos experimente uma amostra antes de fechar.

Foi útil?

Solução

Silverlight parece não ser compatível com AAC e adts wrapper ...

Se você analisar seu arquivo MP4 (com MediaInfo, por exemplo), você verá AAC para áudio, mas sem wrapper de adts.É por isso que o Silverlight pode ler nesse caso seu áudio AAC incorporado em um arquivo MP4.

Então você precisa remover o cabeçalho de ADTS para cada amostra de áudio antes de chamar ReportSampleted () no MediastreamSource.O cabeçalho de Adts consiste em 7 ou 9 bytes (sem ou com CRC).Para mais informações sobre o cabeçalho de Adts, Veja este link .

Obviamente, você precisa adaptar sua cadeia de codecprivatedata com a formaattag direita.Aqui está o meu para um arquivo AAC LC 48KHz @ 96Kbps: ff00020080bb0000e02e0000040010000200

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top