|
本帖最后由 hhh333 于 2023-2-28 10:43 编辑
随着视频交互的增多,在PE中驱动摄像头的需求也有所增加,尽管在我发布的PE中从win7-11很早就提供了摄像头功能组件,在http://bbs.wuyou.net/forum.php?mod=viewthread&tid=417709&extra=一文中也有所研究,但录像功能一直有问题,近期进行了仔细测试,下面以Win11 22h2为例来进行说明:
一、摄像头APP
一般用一个古老的程序:D8Ecap.exe
也可使用Xeoma的程序:https://felenasoft.com/xeoma/en/download/,看了一下一直有更新,支持多点摄像监控;
但一般简单使用就用D8Ecap.exe,是一个09年发布的32位的程序,在Windows的所有系统中均能很好工作;
二、驱动条件
1、声卡驱动
2、DX相关文件
3、摄像头本身驱动相关文件
4、Windows Media Player相关文件(缺则不能录像)
WMADMOE.DLL
WMASF.DLL
WMVCORE.DLL
WMVXENCD.DLL
RESAMPLEDMO
5、Media Foundation Platform相关文件(缺则不能录像)
mfksproxy.dll
mfperfhelper.dll
mfplat.dll
mfsensorgroup.dll
6、相关注册表
①Stisvc服务、WdmCompanionFilter服务,为基础性服务,必须;
②camsvc服务,Win11驱动摄像头必须,Win10没有这个服务也可驱动但不能录像;
③{6bdd1fc6-810f-11d0-bec7-08002be2092f}、{ca3e7ab9-b4c3-4ae6-8251-579ef933890f}注册类,驱动必须,但如果没有UpperFilters项(从boot.wim的system取的)则录像不能工作(注:这个说法不全面,只是针对64位,32位不需要UpperFilters项,如果加这个项反而不能驱动);
④CaptureService服务,服务不是必须,但如果缺乏其相关文件则win10/11不能录像,Win11不能驱动,主要文件为
CameraCaptureUI.dll
CapabilityAccessHandlers.dll
CapabilityAccessManager.dll
CapabilityAccessManagerClient.dll
CaptureService.dll
⑤FrameServerMonitor服务、FrameServer服务,这两个为Win11新增服务,不是必须,但22h2缺FrameServerMonitorClient.dll文件则不能驱动摄像头
三、文件列表
以上含扫描仪相关文件,可能有不全,缺的一般在系统内核中,请参考相关帖子进行补充(22H2已经没有了传真组件);CaptureService、FrameServerMonitor、FrameServer三个非必须服务可能为摄像头复杂应用如远程控制、多播等,就没有深入了。
另外,Win7/8/8.1基本不要注册表支持,直接按列表补充文件即可(系统缺的肯定是不需要的)
在PE中安装成功后,通过删除大法,得到一个精简的不含扫描仪的必须文件列表:
后记:关于Win10以下系统摄像头的补充(花了N个晚上追踪到的)
1、类。Win10以下系统,都是与扫描仪一起归类在图像设备Image下:{6bdd1fc6-810f-11d0-bec7-08002be2092f};Win10以上单独为Camera分了一个类Camera:{ca3e7ab9-b4c3-4ae6-8251-579ef933890f};
2、流媒体支持基础。我的Win864位系统一直不能很好地驱动摄像头,困扰了很久,一度怀疑是Win864的BUG,后来发现是音频流有问题,但音频播放也没问题。通过反复比较测试,终于定位在pe-sys\ControlSet001\Enum\ROOT\SYSTEM\0000
[HKEY_LOCAL_MACHINE\pe-sys\ControlSet001\Enum\ROOT\SYSTEM\0000]
"HardwareID"=hex(7):72,00,6f,00,6f,00,74,00,5c,00,73,00,77,00,65,00,6e,00,75,\
00,6d,00,00,00,00,00
"ConfigFlags"=dword:00000000
"Capabilities"=dword:00000000
"ClassGUID"="{4d36e97d-e325-11ce-bfc1-08002be10318}"
"Service"="swenum"
"DeviceDesc"="@swenum.inf,%swenum.devicedesc%;Plug and Play Software Device Enumerator"
"Driver"="{4d36e97d-e325-11ce-bfc1-08002be10318}\\0002"
"Mfg"="@swenum.inf,%gendev_mfg%;(Standard system devices)"
"ContainerID"="{00000000-0000-0000-FFFF-FFFFFFFFFFFF}"
这个又指向Driver"="{4d36e97d-e325-11ce-bfc1-08002be10318}\\0002",因此这个项也要恢复。同时又以pe-sys\ControlSet001\Services\swenum这个服务为支撑(一般内核会有,但这个不是启动PE必须的组件,精简了也许就没有),也要恢复;最后查阅swenum.inf文件,要安装
[SourceDisksFiles]
swenum.sys = 3426
streamci.dll = 3426
因此这两个文件必须要恢复到系统中。
最后,把这些补充完整,Win8-64位的摄像头再没问题了。因此,这个也是摄像头最基础的支持,如果摄像头总出现“不能预览”提示,请按上述路径检查文件和注册表的完整。
|
评分
-
查看全部评分
|