有没有人使用这种工作?我相信我有CodecPrivateData搞砸了,但我找不到任何似乎奏效的WAVEFORMTEX FormatTags。我尝试了0xFF00,0x1016和0x0116。我使用MSDN文档来完成字符串的其余部分。如何使用MediaStreamSource播放原始ATS流?
我在MMReg.h(WAVE_FORMAT_MPEG_ADTS_AAC 0x1600)中找到了它,它将有一个FormatTag(0x0016)。你会认为这是我应该使用的,但这也不起作用。
当使用0xFF时,如果我避免流GettsampleAsync中的adts头被重复调用,但没有回放。我知道这个流是好的,因为我可以在FooBar,VLC和Window Media Player中播放它。当我将原始AAC粘贴到MP4容器中时,它在Silverlight中运行良好,所以我知道AAC设置受Silverlight支持。
有人可以提供给我一个十六进制CodecPrivateData字符串,为他们工作吗?
编辑:
这是我认为PrivateCodecData十六进制字符串的例子应该工作:
0x1016010080BB0000E02E0000010000000E000100FE0000000000000000001190
此字符串从OpenMediaAsync()来CloseMedia()径直甚至没有尝试一个样品。 MSDN文档示例发现了相同的东西here。我希望它至少在结束之前尝试一个样本。
我相信你是对的Silverlight不符合标准。花了一个星期试图让它工作。您的解决方法确实奏效,并且与我的实施方法类似,但我试图避免重新格式化流,这是一种痛苦,因为AAC的文档至少可以说是罗嗦。谢谢回复。 – shibbybird 2012-11-30 18:46:00