Windows 10更新粉碎了数百万高清网络摄像头


Logitech C920是安装Windows 10周年更新后开始出现故障的网络摄像头之一

在Windows技术支持论坛上,许多用户在安装最新的Anniversary Update(Windows 10版本1607,OS Build 14393.10'周年)后报告了网络摄像头问题。。安装此更新后,网络摄像头不再能够传输以MJPEG或H.264编码的视频,而只能在未压缩的YUV视频的传输模式下工作。

Skype在高清视频模式,开放广播软件(OBS),各种视频监视软件(CCTV)等方面开始出现故障。许多型号的USB网络摄像头都已确认该问题,包括非常流行的Logitech C920和C930e。

更新周年更新于2016年8月2日发布,它对许多新功能感到满意,包括能够在Windows环境中使用便捷的Bash shell的功能。

不幸的是,周年更新具有所有优点,但有一个重大缺陷-会使摄像头崩溃。

根据技术支持人员的回答和论坛主题中的讨论,Microsoft故意限制了Windows 10中应用程序的运行模式,以解决应用程序访问网络摄像头和MJPEG或H.264编码过程时的性能问题。事实是,传统上在Windows中,只允许一个应用程序从网络摄像头访问视频流。例如,如果您在Skype上发起了通话,则其他应用程序将无法再访问网络摄像头。为了优化共享,Microsoft在Windows 10 v.1607更新中添加了一个名为Windows Camera Frame Server的新组件,该组件可处理来自网络摄像头的视频流。现在,应用程序不直接连接到网络摄像头,而是连接到Windows Camera Frame Server。它同时支持多个连接,并将视频流从摄像机分发到多个连接的应用程序。这样做可以解决一个程序“独家”使用网络摄像头的问题。并且,顺便说一句,Windows开发人员很久以前就解决了这个问题,但是直到现在才解决了。更确切地说,他们试图做出决定。

作为“优化”的结果,当您尝试从网络摄像头以MJPEG或H.264编码视频流时,设备现在会在一段时间后关闭。例如,Skype中的高清视频通话在开始后约一分钟会挂断,或在开始后立即冻结。

音频通话正常。和以前一样,同时访问多个程序不会出现问题。通过USB 3而不是USB 2连接网络摄像头也没有问题。

通过USB 2 连接的网络摄像头被迫以MJPEG或H.264编码视频,因为480 Mbps的USB 2带宽不足以传输30帧/ s分辨率为1920×1080的未压缩视频。因此,几乎所有现代网络摄像头均以MJPEG或H.264编码为标准选择。

由于某些原因,Windows 10 v.1607帧服务器仅支持未压缩的视频流。这可能是由于Windows 10中的性能问题,当多个应用程序同时开始将MJPEG转换为YUV或将H.264转换为YUV时。也就是说,从理论上讲,在服务器将视频流分发给应用程序之前执行一次此类转换会更加有效。如果程序希望接收压缩的MJPEG或H.264视频流,则这种方案将不起作用。在这种情况下,程序将无法正常运行。

例如,如果带宽允许且处理器未过载,Skype会尽可能地逐步改善视频通信的质量。因此,视频通话可能会以较低的质量开始(没有视频压缩,例如640x480 YUV),但过一会儿Skype将决定资源将改善质量并切换到720p或1080p。这可能会在视频通话开始几秒钟后或在一分钟后发生。在旧版本的Windows上,这种切换很轻松且看不见,但是安装了周年更新后,该切换不起作用-视频冻结了几秒钟,然后中断了连接。

许多用户可能认为通过更新驱动程序可以解决网络摄像头故障;他们正在制造商的网站上寻找新的驱动程序。但实际上,问题不在于驱动程序,而在于操作系统本身。

在技​​术支持论坛上,一些愤怒的公司用户表示视频通话功能对其员工至关重要。她经常工作。遇到这些问题,他们别无选择,只能禁止员工安装周年更新,甚至禁止安装Windows 10并将操作系统更改为OS X,而视频通信没有问题。

Windows Camera的Mike M工程师说,所有注释都已在线程中修复,并且该漏洞的修复已提交给开发人员,并且可能在Windows 10的9月更新中发布。也许,只有MJPEG处理会首先添加到帧服务器。因为它更易于处理,并且稍后会发布针对H.264的修复程序。承诺的补丁程序是个好消息。坏消息是,直到9月为止,还没有官方的变通办法来启用MJPEG和H.264视频流的正常处理(请参阅下面的非官方方式)。

另一个坏消息是,从周年更新版本开始,Microsoft已将更新的允许回滚期从标准的30天减少到了10天。因此大多数用户都停留在此更新上。奇怪的是,Microsoft甚至没有正式报告将允许的回滚减少到10天,在OS更新部分中没有报告过类似的情况。



因此,Windows 10的所有者只有在更新后的第11天才知道该更新不再可以回滚。

Microsoft推出更新时,也没有报告有关从网络摄像头更新视频流处理堆栈的任何信息。因此,没有人期望会出现任何问题。如您所知,Microsoft不会发布详细的发行说明,也不会谈论在操作系统中所做的所有更改,仅限于带有简要说明新功能的行销新闻稿。

这与Windows与开放源代码操作系统有很大的区别,在开放源代码操作系统中,对于内核的每个新版本,绝对都会详细描述内核中进行的所有更改,您甚至可以查看每个补丁的源代码。这些问题原则上是不可能的。

现在介绍一种在Windows 10中禁用新框架服务器的非正式方法。其中一位用户,他设法通过编辑注册表使Skype正常工作,而网络摄像头没有问题。您也可以尝试此方法。

在该部分中,HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows Media Foundation\Platform您需要创建DWORD参数“ EnableFrameServerMode”并将其值设置为“ 0”,然后重新启动Skype。 (如果此方法有助于解决问题,请在评论中告知。)





上面的密钥对64位Windows上的32位应用程序有效。对于64位Windows上的64位应用程序,应在一节中创建注册表中具有相同值的相同参数HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\Platform

希望没有受影响的用户设法购买新的网络摄像头,因为旧的网络摄像头“笨拙”。

Source: https://habr.com/ru/post/zh-CN396861/


All Articles