Question

Quelqu'un a-t-il fonctionné? Je crois que le codecprivatedata a gâché, mais je ne trouve aucun format de forme WaveFormtex qui semble fonctionner. J'ai essayé 0xff00, 0x1016 et 0x0116. J'ai utilisé la documentation MSDN pour terminer le reste de la chaîne.

J'ai trouvé cela dans mmreg.h (wave_format_mpeg_adts_aac 0x1600) qui aurait un formattag FormAt (0x0016). On pourrait penser que c'est ce que je devrais utiliser, mais cela ne fonctionne pas non plus.

Lorsque j'utilise 0xFF si j'évite les en-têtes ADTS dans le flux getampleasync appelé à plusieurs reprises, mais il n'y a pas de lecture. Je sais que le flux est bon car je peux le jouer dans Foobar, VLC et Window Media Player. Lorsque je colle la RAW AAC dans un conteneur MP4, cela fonctionne bien dans Silverlight, donc je sais que le réglage AAC est pris en charge par Silverlight.

Quelqu'un peut-il me fournir une chaîne hexadécimale de codecprivatedata qui a fonctionné pour eux?

Éditer:

Ceci est un exemple de chaîne hexagonale privatecodecdata qui, je pense, devrait fonctionner:

0x1016010080bb0000e02e0000010000000e000100fe0000000000000000001190

Cette chaîne va directement d'OpenMediaAsync () à Rrosemedia () sans même essayer un échantillon. L'exemple de documentation MSDN fait la même chose trouvée ici. Je m'attendrais à ce qu'il essaie au moins un échantillon avant la fermeture.

Était-ce utile?

La solution

Silverlight ne semble pas être conforme à l'AAC et à l'emballage des adts ...

Si vous analysez votre fichier MP4 (avec MediaInfo par exemple), vous verrez AAC pour l'audio mais sans wrapper adts. C'est pourquoi Silverlight peut lire dans ce cas votre audio AAC intégré dans un fichier MP4.

Vous devez donc supprimer l'en-tête ADTS pour chaque échantillon audio avant d'appeler ReportsAmpleCompleted () dans MediaStreamSource. L'en-tête ADTS se compose de 7 ou 9 octets (sans ou avec CRC). Pour plus d'informations sur l'en-tête ADTS, Voir ce lien.

De toute évidence, vous devez adapter votre chaîne codecprivatedata avec le bon formatage. Voici le mien pour un fichier AAC LC LC 48KHz @ 96KBPS: FF00020080BB0000E02E0000040010000200

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top