首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > WinCE >

在wince上用Directshow开发的摄像头应用程序,保存视频为什么那么慢,该怎么解决

2012-05-12 
在wince上用Directshow开发的摄像头应用程序,保存视频为什么那么慢最近在wince6.0上面开发了一个基于Direc

在wince上用Directshow开发的摄像头应用程序,保存视频为什么那么慢
最近在wince6.0上面开发了一个基于Directshow的摄像头应用程序,是在网上一个工程代码基础上改的,这个工程代码估计也是出自微软,因为文件头都写着微软的版权,所以API的调用应该没啥问题。现在应用程序跑起来后,发现录像时,点击保存保存视频文件要很久,比如录10秒,保存视频文件也基本要十几秒,还有截图,截完图后视频画面居然不动了。网上资料很少,有人说wince的Directshow机制无法实现视频边录像边保存,所以保存时特别耗时。

请教路过的大侠,如果懂Directshow,尤其是wince平台上的Directshow的,请指点一下我该如何解决以上问题。

[解决办法]
因为这玩意用了 软解码,微软的压缩量太大 所以慢。可以找找平台的硬解码。或者用软解码,压缩量没那么大的,例如:压缩成jpeg保存为avi
[解决办法]
CE下的编码是软编码,速度是很慢的,要想速度快,只有想办法去实现硬编码。
[解决办法]

探讨

引用:

CE下的编码是软编码,速度是很慢的,要想速度快,只有想办法去实现硬编码。


硬编,想到这个玩意头都大,“硬编”这个概念我都还是前几天才知道是什么个东西,我现在的wince摄像头应用程序是我一个人在做,要来个“硬编”,那是不是工作量太大了呀,而且项目给了一个半月,现在只剩半个月的时间了。请问还有什么办法吗

[解决办法]
硬编码你的处理器支持吗?支持的话,厂家会提供示例调用代码,你找到读懂就行了。
不支持只能软编码,最好用mpeg4编码器(你的例子是asf文件格式,实际应该调用了wmv9编码器,本身运算量大于mpeg4),并且要对算法高度优化,才能取得好的效果,所以这个东西不是那么简单的
[解决办法]
探讨

引用:

因为这玩意用了 软解码,微软的压缩量太大 所以慢。可以找找平台的硬解码。或者用软解码,压缩量没那么大的,例如:压缩成jpeg保存为avi


谢谢liangxd09的指点,我现在抓图保存的是jpg格式,视频录像保存的是.asf格式。
我纠正一下我的原贴:摄像头现在是可以边录制边保存,不过感觉保存得很慢而已,比如录了一分钟,一般有400K,……

[解决办法]
我弄过个JPEG.LIB来软编码,录像320*240,15帧每秒,速度可以。要是分辨率高了就不行,还得用mfc(硬编码)
[解决办法]
探讨
引用:

硬编码你的处理器支持吗?支持的话,厂家会提供示例调用代码,你找到读懂就行了。
不支持只能软编码,最好用mpeg4编码器(你的例子是asf文件格式,实际应该调用了wmv9编码器,本身运算量大于mpeg4),并且要对算法高度优化,才能取得好的效果,所以这个东西不是那么简单的


看了下代码,调得确实是wmv9编码器,我这机器是320x240,……

[解决办法]
我们做的可视对讲,互相声音视频对讲,除了可以同时对讲之外,还能实时录制音视频,不过我是分开录制的,以前用过一个MP4库,想录成MP4格式,但是发现写文件时跟你说的差不多,前面基本不写,调用了停止录制时才开始写,非常慢。。硬件编解码是很快的,几乎不需要时间,就能编码能MP4格式
[解决办法]
探讨
我一个同事(做底层的),他们以前公司也用directshow在wince上做摄像头,也是很慢,后来听说加入MFC加速处理,就把拍照、录像慢的问题解决了。但是这样的例子网上都找不到,谁能指下路

[解决办法]
探讨
woshi_ziyu
(麦田里的守望者)

谢谢指教,我想请问下你,我现在的工程代码调的是Directshow的标准接口,目前拍照保存的格式是jpg,保存一张照片是4-5秒左右,我的同事建议我把jpg格式改为bmp,他认为bmp是RGB格式,可以不用编码,相当于直接从内存搬出来存成bmp,应该不用很久。请问你知道保存为bmp格式要怎么做吗

[解决办法]
还没解决完啊。

我弄过个JPEG.LIB来软编码,录像320*240,15帧每秒,速度可以(点停就停)。要是分辨率高了就不行,还得用mfc(硬编码)

平台上都会有mfc的例子的。平台不一样mfc也不一样,找找api撒

热点排行