您的位置:首页 > 其它

记录两个关于用asf writer修改wmv文件大小的文章 2010-12-17 17:43

2013-01-14 08:27 281 查看
http://topic.csdn.net/t/20060904/16/4997413.html

http://blog.csdn.net/Meuck/archive/2006/09/12/1211831.aspx

记录两个关于用asf writer修改wmv文件大小的文章,默认大小是320*240

再增加一篇

http://topic.csdn.net/t/20050131/10/3765097.html

该篇有讨论修改profile部分,最后的解决办法是直接修改系统文件,文件名:WMSysPr9.prx。

除此之外,网上“止水”的博客中也介绍了有关内容,记录如下:

DirectShow应用中,采用asf writer这个Filter来存储文件是个不错的选择,因为asf writer是一个存储音视频信息的容器,而非简单某种视频格式的文件。并且当采用WMV压缩时,压缩质量可控制。

但是,微软做的这个asf writer真的是很不好用,无法配置你想需要的视频属性!它只有几个特定的系统配置文件(profile)来供你选择。非常的不灵活。

于是就想到了自己创建profile来满足程序特定的需要,至此,问题出来了。asf writer的特性是,在连接此filter之前,必须将profile设置给filter,也就是说,视频的各个属性在连接之前就必须确定。而在大多数应用中,我们要设置的视频属性都是从上游Filter那里传过来的,就是说没连接之前我们根本不知道视频的属性...,这里,形成了一个死锁,呵呵。

上网搜了N篇文章,都没有提出解决办法。

不断尝试之下,最后采用了对陆其明先生的asf writer代码进行修改的办法。在这个代码里面,在pin连接完成之时,程序会将媒体的属性设置给Filter的属性。注意,这里的设置并没有导致最后录制的视频属性改变,这里告知的,只是源视频信息,当然也是必须要设置的,否则写不了文件。

首先,程序为了连接其他Filter,临时创建了一个profile,这样我们才能连接起来。然后,在pin连接完成之时,我在设置源视频属性代码的前面添加了再创建一个profile(根据源视频属性,或者自己要定制的属性创建),并设置给Filter.这里要注意的是,不能在设置源视频属性后创建和设置profile。而要在之前。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/mlchen2009/archive/2010/04/15/5489850.aspx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: