原创翻译 怎样让WinCE6.0 ARM套件下的USB摄像头工作

简介: 本文转载自微软嵌入式中文社区http://www.msembed.com  我看到过一些关于Windows Embedded CE的DirectShow摄像头的支持方面的问题咨询。

本文转载自微软嵌入式中文社区http://www.msembed.com

 

 

我看到过一些关于Windows Embedded CE的DirectShow摄像头的支持方面的问题咨询。所以在这篇文章里我将展示如何让ARM平台下的Windows Embedded CE6.0的USB摄像头正常运行。在这个例子中我将使用我们的REGULUS平台。
 
前期准备:
 • CE 6.0的在Visual Studio 2005 上的Platform Builder
 
• CE 6.0的USB摄像头驱动 
 
• 带有 WinCE 6.0 R3 BSP的REGULUS ARM开发套件. (http://www.e-consystems.com/regulus.asp)  
• 3.2 MP USB摄像头(http://www.e-consystems.com/3mp_cameraboard_usb.asp)
 
 
安装:
如何安装Visual Studio和Platform Builder for CE6.0超出了本文的范围。在网上可以找到关于如何安装WinCE 6.0 Platform Builder的文章。
 
安装USB摄像头驱动后,驱动的源代码应该会自动被放在WINCE600/PUBLIC/ThirdParty目录中。
 
带着USB摄像头驱动编译OS:
新建或打开一个开发套件中已有的OSDesign。在我这里,我已经为我们的REGUPLUS板生成好了一个REGULUS-1_DEMO OSDesign。
 
由于此驱动基于DirectShow,我们需要将DirectShow过滤器加入到OS的镜像里来让我们的驱动和应用程序正常工作。
 
下图是DirectShow Sysgen组件:
 


 从catalog对话框中选择如下组件来将已安装好的USB摄像头驱动加入到OS镜像中:


    
 
在将所有上述的SYSGEN组件加入完毕后,从VS2005的菜单中选择下面的命令来编译OSDesign:
 
Build–>Advanced Build Commands–>Clean Sysgen
 
当编译完成后,在release目录里检查ce.bib和reginit.ini来确认usbcam.dll设置项是否存在。
 

应用程序的编译:
现在我们已经将USB摄像头的驱动加好了。接下来让我们用应用程序来测试这个驱动。我们可以在WinCE的共享资源(例如PRIVATE目录)中找到一些DirectShow摄像头的示例应用程序。摄像头应用程序的源代码可以在以下目录中找到:
 
WINCE600/PRIVATE/TEST/MULTIMEDIA/DIRECTX/DSHOW/CAMERA/CAMERAAPP
 
为编译生成应用程序的可执行文件,进行以下几步工作:
• 从workspace的Build菜单中选择"Open release Directory in Build Window" 
• 将路径改变到WINCE600/PRIVATE/TEST/MULTIMEDIA/DIRECTX/DSHOW/COMMON/LIBS 
• 输入命令 ‘build -c’. 
• 当这些路径中的编译过程结束后,将路径改变至 WINCE600/PRIVATE/TEST/MULTIMEDIA/DIRECTX/DSHOW/CAMERA 
• 输入命令 ‘build -c’. 
• 编译将在这些路径中进行, 不过最后会有"kato.lib"不可用的错误。 • 现在转移路径到WINCE600/PRIVATE/TEST/MULTIMEDIA/DIRECTX/DSHOW/CAMERA/CAMERAAPP/ 
• 输入命令 ‘build -c’ 
• 应用程序二进制文件"CameraDshowApp.exe"将生成于OSDesign的Release目录下。

 

下载并执行:
在编译完带有usbcam.dll和CameraDshowApp.exe的OS镜像后我们就可以把此镜像下载到开发板里了。当下载结束并启动之后,将USB摄像头连结到REGULUS开发板的USB Host port上。

 

当程序连结好设备之后,我们就可以运行我们之前编译好的程序(CameraDshowApp.exe)了。这将会显示可供选择的用于生成过滤图的过滤器列表。如果摄像头驱动被正确地加载,设备名"CAM1:"将会显示在这个组合对话框中。

 

 

选择需要的过滤器并点击OK,这将会以摄像头支持的、接近于注册表设置项"PreferredWidth"中数值的尺寸大小来运行摄像头的预览功能。你可以检查$(_WINCEROOT)/PUBLIC/ThirdParty/Catalog/USBCam/Driver/usbcam.reg这个注册表文件来确定"PreferredWidth"注册表项。


 


同时请根据Webcam支持的输出格式来设置如下的注册表项。我的摄像头支持YUV无压缩输出,所以我的相应的注册表项设置为:

[HKEY_LOCAL_MACHINE/Drivers/USB/ClientDrivers/Video_Class] "UncompressedSupport"=dword:1 "MJPEGSupport"=dword:0

相关文章
|
6月前
|
传感器 数据采集 存储
ARM Linux摄像头传感器数据处理全景视野:从板端编码视频到高级应用(一)
ARM Linux摄像头传感器数据处理全景视野:从板端编码视频到高级应用
216 0
|
6月前
|
传感器 Linux 数据处理
ARM Linux摄像头传感器数据处理全景视野:从板端编码视频到高级应用(二)
ARM Linux摄像头传感器数据处理全景视野:从板端编码视频到高级应用
123 1
|
6月前
|
传感器 存储 编解码
ARM Linux摄像头传感器数据处理全景视野:从板端编码视频到高级应用(三)
ARM Linux摄像头传感器数据处理全景视野:从板端编码视频到高级应用
180 2
|
25天前
|
编解码 弹性计算 应用服务中间件
阿里云服务器Arm计算架构解析:Arm计算架构云服务器租用收费标准价格参考
阿里云服务器架构分为X86计算、Arm计算、高性能计算等多种架构,其中Arm计算架构以其低功耗、高效率的特点受到广泛关注。本文将深入解析阿里云Arm计算架构云服务器的技术特点、适用场景以及包年包月与按量付费的收费标准与最新活动价格情况,以供选择参考。
|
29天前
|
存储 Docker 容器
ARM架构鲲鹏主机BClinux离线安装docker步骤
下载并安装适用于ARM架构的Docker CE二进制文件,解压后移动至/usr/bin目录。创建docker组,配置systemd服务脚本(docker.service、docker.socket、containerd.service),重载systemd配置,启动并启用docker服务。编辑daemon.json配置存储驱动、镜像加速地址等,最后拉取所需镜像。
39 0
|
1月前
|
NoSQL MongoDB Docker
求助,有没有大神可以找到arm64架构下mongodb的3.6.8版本的docker镜像?
在Docker Hub受限的情况下,寻求适用于ARM架构的docker镜像资源或拉取链接,以便在x86架构上获取;内网中的机器为ARM架构,因此优先请求适合ARM的Docker镜像或Dockerfile,非常感激您的帮助。
|
3月前
|
编解码 安全 Linux
基于arm64架构国产操作系统|Linux下的RTMP|RTSP低延时直播播放器开发探究
这段内容讲述了国产操作系统背景下,大牛直播SDK针对国产操作系统与Linux平台发布的RTMP/RTSP直播播放SDK。此SDK支持arm64架构,基于X协议输出视频,采用PulseAudio和Alsa Lib处理音频,具备实时静音、快照、缓冲时间设定等功能,并支持H.265编码格式。此外,提供了示例代码展示如何实现多实例播放器的创建与管理,包括窗口布局调整、事件监听、视频分辨率变化和实时快照回调等关键功能。这一技术实现有助于提高直播服务的稳定性和响应速度,适应国产操作系统在各行业中的应用需求。
105 3
|
2月前
ARM64架构提供的Cache操作
ARM64架构提供的Cache操作
下一篇
无影云桌面