解决wmv文件在vista下无法播放的问题

因为工作关系,同事解决wmv文件经过libasf解析重组后在vista下无法播放问题。
处理后的wmv在windows xp下工作正常,但是在vista平台,wmp显示无法识别此文件。比较微妙,可以大致推断,应该是对wmv文件处理后,丢失了某些必要的属性,而这些属性在windows xp下不需要,而vista对wmv格式要求比较严格,因此出现了问题。
在MS 的ASF spec 文档的描述中,有几个object是必须的:
HEADER OBJECT
FILE PROPERTIES OBJECT
STREAM PROPERTIES OBJECT
HEADER EXTENSION OBJECT
四个Object是必须的,看看原来的wmv解析重组代码,没有HEADER EXTENSION OBJECT这个对象,好的,问题应该在这里!
首相将HEADER EXTENSION OBJECT对象中所有的子对象都加入到处理后的文件中,测试通过!随后小心翼翼的进行HEADER EXTENSION OBJECT子对象的删除,经过一番简单的 重试-测试 之后, 最终只要保存HEADER EXTENSION OBJECT对象中的Extended Stream Properties Object即可。
好了,我们的ASF头部由原来的5K,降低到了600字节。