痛并努力着-在asp.net中如何从视频文件中抓取一桢并生成图像文件

前几天参加tech-ed大会,其实更多的是认识了一些志同道合的朋友,ms的课程往往是蜻蜓点水,因此听起课来也没有什么意思。不过,有幸认识了园子里面的一些朋友,深感欣慰。技术人员真的非常容易接触,我们能很快的切入主题,然后进行探讨。这也许正是技术人员单纯的一面吧。这两天,又换了新单位,感觉换来换去,实在没有意思。记得刚开始工作的时候,老板对我说不要换来换去的,当时我还和别人说这个,没想到自己却沦落到这一步。一直想寻找一个好的团队,好的东家,但一直没有如愿。不知道现下的会如何,但目前看来并不乐观,我期望中的团队是一个互助,团结,激情,灵活,互相尊重,互为补充的团队,可能很抽象,但我所有的憧憬都源自于敏捷软件开发,我不太愿意看到团队僵硬,传统,死沉。也不太喜欢个人主义的团队,“软件开发是人与人的游戏”,没错,我所想要的就是这样一个以人为本的团队,要求并不高,但很难实现。最少现在迷茫中。。。
不废话了,我们经常为图片生成缩略图,在windows中视频在察看缩略图的时候也显示出图片来,如果作一个视频系统,那么用户上传上来的视频,如何为其生成缩略图呢?要想操作视频文件,通常所用的方法就是DirectX里面的DriectShow,用它就可以实现抓屏,抓图,抓视频的功能,想到这,又惊奇于ms演示的vista下的app那绚的3d效果.
要想在.net中使用DirectShow,所做的第一件事情是需要一个程序集,这个程序集可以帮你完成.net对directshow的调用,而且您不需要用com,省却注册过程,这个assembly的名字为:Interop.DexterLib.dll, 它象其他dll,只需添加引用即可。
利用这个dll,封装了一个类,利用这个类您就可以方便的生成video的缩略图了,而且适用于winform,也适用于 asp.net,酷吧!效果如下:
winform:

asp.net:

源码在这,用兴趣的,下过去看看吧
linklink/Files/jillzhang/extractframe_source.rar
参考文章:
http://www.yafla.com/dennisforbes/Extracting-Video-Frames-with-NET/Extracting-Video-Frames-with-NET.html

另外一种方法是:
http://yao.cnblogs.com/archive/2006/05/31/414151.aspx


作者:jillzhang
出处:http://jillzhang.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
posted @ 2006-09-26 23:51 Robin Zhang 阅读(10124) 评论(33) 编辑 收藏

 回复 引用 查看   
#1楼 2006-09-27 02:59 C# hack      
不错的东西,呵呵
 回复 引用   
#2楼 2006-09-27 07:54 过过客[未注册用户]
谢谢!
关于您的工作,我想说一句,人无完人,公司也一样,不存在一个没有任何问题的公司,所以你要以博大的胸怀去容纳公司的问题,再去解决问题。

 回复 引用 查看   
#3楼 2006-09-27 08:04 aspnetx      
@过过客
虽然忍耐也是有限度的,呵呵

 回复 引用   
#4楼 2006-09-27 08:55 状-元[未注册用户]
这个东西有点意思
收藏,谢谢

 回复 引用 查看   
#5楼 2006-09-27 09:39 PureEviL      
觉得这公司不行
不如努力去改变它

我挺崇拜这种人的

 回复 引用   
#6楼 2006-09-27 10:00 xujinbiao[未注册用户]
近来做了一个 通过网页向电话/小灵通/手机 发送歌曲/花朵/70汉字的点送系统
语音翻译的声音还不错。现在正在免费测试。


测试网址:http://www.168160.cn/szdg.asp 只要你免费注册 登陆就可以向全国的

固定电话、小灵通、手机用户,免费点歌 ,送花 ,送留言(电脑翻印的语音跟播音员一样的水品)。
歌语千里寄相思。
中秋佳节,快给亲朋好友点歌,送去浓浓祝福吧!
大家去体验下 :)


 回复 引用   
#7楼 2006-09-27 14:41 dragonsuc[未注册用户]
我也看康熙来了
 回复 引用 查看   
#8楼 2006-09-27 16:51 Jeffrey Zhao      
其实已经有了官方的Managed DirectX。:)
 回复 引用 查看   
#9楼[楼主] 2006-10-17 15:56 jillzhang      
还有一种实现方法,网上比较流行,是用一种解码器。调用exe文件生成缩略图的,不过不知道什么时候生成结果,也有一定遗憾。会继续关注这个问题
 回复 引用 查看   
#10楼 2006-10-21 10:26 gwazy      
何必呢,,还自己封装个 dll ??

 回复 引用 查看   
#11楼 2006-11-06 21:00 老蒋      
收藏了,谢谢
 回复 引用   
#12楼 2006-12-31 15:01 xutt[未注册用户]
可是我为什么不能引用你说的那个Interop.DexterLib.dll
 回复 引用 查看   
#13楼 2007-01-11 17:56 江大鱼      
很可惜不支持real的格式
 回复 引用   
#14楼 2007-04-06 02:06 terryc[未注册用户]
好东西,看看先
 回复 引用   
#15楼 2007-04-27 22:01 yahle[未注册用户]
@江大鱼

realplay 是支持的,只要你安装了realplay的解码器
如 realplay播放器 或者 RealProducerPlus

 回复 引用 查看   
#16楼 2007-05-19 14:40 金色海洋(jyk)      
十分感谢,试了一下,好像不支持 3gp 和 mp4 格式的视频。

如果要在服务器上运行的话,需要在服务器上安装什么呢?不会是把realone这类的播放器都安装上吧。

 回复 引用   
#17楼 2007-07-10 17:28 junelee[未注册用户]
1.1的不能用啊!!
 回复 引用 查看   
#18楼[楼主] 2007-07-12 22:33 jillzhang      
@junelee
我的这个就是在1.1下开发运行的亚

 回复 引用   
#19楼 2007-07-29 00:38 小龟爬爬[未注册用户]
有办法控制截图的时间没?
 回复 引用 查看   
#20楼 2007-09-02 14:06 ekeen      
有没有办法提取视频中具体时间的图像?

比如第5分钟的图像!

谢谢!

 回复 引用 查看   
#21楼 2007-09-02 14:27 ekeen      
打不开avi文件 弹出以下的字first element in file is not EBML
 回复 引用   
#22楼 2008-02-18 15:52 imf[未注册用户]
这个东东,都支持些什么格式呢??
 回复 引用   
#23楼 2008-06-07 22:49 crossgo[未注册用户]
控制时间要采用exe的方法,例如:www.crossgo.com的网页截图
 回复 引用   
#24楼 2008-06-19 17:37 xiami[未注册用户]
Interop.DexterLib.dll这个是系统自带的dll吗?

 回复 引用   
#25楼 2008-06-24 18:08 路过[未注册用户]
好像rmvb可以啊!其它还支持什么格式啊?
 回复 引用   
#26楼 2008-11-26 14:21 凌枫928[未注册用户]
请问出现这种错误
case 0x80040200: //VFW_E_INVALIDMEDIATYPE
errorMsg = "An invalid media type was specified";

该如何,解决呢?急!!!

 回复 引用   
#27楼 2009-02-11 18:49 1111[未注册用户]
@xiami
开源吗

 回复 引用   
#28楼 2009-02-11 18:50 1111[未注册用户]
Interop.DexterLib.dll
开源吗

 回复 引用 查看   
#29楼 2010-05-09 11:55 zhongnanmikky      
好东西啊,顶了
 回复 引用 查看   
#30楼 2010-11-17 17:14 lzwomen      
你好
你这个dll我在net1.1下怎么不能添加引用,提示“不是有效的程序集或com控件”,可以指点一下吗
我天天在线
qq:835197167
email:835197167@qq.com
谢谢

 回复 引用 查看   
#31楼 2011-08-04 00:10 摇滚海盗DJ      
哇哦,不知道是不是我来晚了,我今年刚看见这篇文章,感觉很不错,不过貌似有个问题,如果我的视频是远程的时候会报错,请教这个该如何解决呢?