您的位置:网站首页 / UVC摄像头开发问答

DiectShow可以通过usb口发送指令给相机吗?例如控制相机的焦距

UVC摄像头开发问答 2021-01-23

在回答上述问题前,我们首先应明确:

DriectShow是什么?

我们知道,UVC摄像头的控制在Windows应用层,可以通过两套框架实现对摄像头的控制接口。
这两套框架分别叫DriectShow和Media Foundation。

DriectShow的相关参考文档及代码

https://docs.microsoft.com/en-us/previous-versions/ms893692(v=msdn.10)

参考代码1:http://www.bytekits.com/programmingcodewindows/programming-code-windows-vc-camera.html
参考代码2:https://www.jianshu.com/p/a67b8cfc57c5
https://docs.microsoft.com/en-us/windows/desktop/DirectShow/video-capture

关于DriectShow的参考开发工程AmCap源码

使用DriectShow进行摄像头应用程序的开发,一般我们采用微软提供的 Microsoft DirectShow AmCap源码。
AmCap的源代码列表如下:

2021/01/07  17:31           164,676 amcap.cpp
2020/07/14  19:59             4,748 amcap.h
2005/01/24  19:15             1,078 amcap.ico
2005/01/24  19:15            16,801 amcap.jpg
2021/01/07  17:35             6,755 amcap.rc
2018/05/04  18:03             2,228 amcap.sln
2005/01/24  19:15             1,332 amcap.sln.old
2011/02/11  13:58            11,660 amcap.vcproj
2021/01/11  19:41            50,710 amcap.vcxproj
2020/08/24  10:02             1,979 amcap.vcxproj.filters
2016/11/21  14:07               143 amcap.vcxproj.user
2020/08/24  10:43                27 config.ini
2005/01/24  19:15            18,363 crossbar.cpp
2005/01/24  19:15             2,703 crossbar.h
2005/01/24  19:15            15,916 makefile.x64
2020/08/24  09:58            78,951 resource.h
2005/01/24  19:15            46,066 SampleCGB.cpp
2005/01/24  19:15             8,087 SampleCGB.h
2005/01/24  19:15             9,002 status.cpp
2005/01/24  19:15               832 status.h
2005/01/24  19:15               297 stdafx.cpp
2018/05/08  16:32             1,255 stdafx.h
2018/08/09  14:53         4,012,914 strmbasd.lib
2011/02/11  13:58             4,396 UpgradeLog.XML
2016/11/21  14:07             3,498 UpgradeLog2.XML

使用DirectShow进行UVC控制相机的焦距的技术前提?

UVC控制相机的焦距的概念是UVC相机端点描述符中的内容:
详情可参见:http://usb.bytekits.com/uvc/uvc-camera-terminal-descriptor.html
在相机的终端描述符中,bmControls字段使用D5,D6字段进行焦距功能的支持。所以如果想进行相机的焦距的控制,首先得在这里支持该功能。

如何使用DirectShow进行UVC控制相机的

如果UVC摄像头支持集距的控制,那么我们可以使用UVC相机终端的控制请求进行焦距的控制。
这两件选择子分别为:

如果以上都实现了,那么我们编译AmCap源码源代码,运行程序,打开摄像头,在其属性控制上可以进行摄像头焦距的控制。
本机测试的摄像头不支持摄像头焦距的控制。
如下图:

1611371176205

1614073969877

很赞哦!

文章评论

标签云

用户接口

站点信息

  • 建站时间:2019-07-24
  • 联系站长tsingchen2008@163.com
  • 加QQ群 :952873936