- PVSM.RU - https://www.pvsm.ru -

Обновление Windows 10 «поломало» миллионы HD веб-камер

Обновление Windows 10 «поломало» миллионы HD веб-камер - 1
Logitech C920 — одна из веб-камер, которые начинают глючить после установки обновления Windows 10 Anniversary Update

На форуме техподдержки Windows многочисленные пользователи сообщают о проблемах с веб-камерой [1] после установки последнего обновления Anniversary Update (Windows 10 version 1607, OS Build 14393.10 'anniversary). После установки апдейта веб-камеры больше не могут передавать видео, закодированное в MJPEG или H.264, а работают только в режиме передачи несжатого видео YUV.

Начинают глючить Skype в режиме HD-видео, Open Broadcaster Software (OBS), различный софт для видеонаблюдения (CCTV) и др. Проблема подтверждена для множества моделей USB веб-камер, в том числе для очень популярных Logitech C920 и C930e.

Обновление Anniversary Update вышло 2 августа 2016 года [2] и порадовало множеством новых функций, в том числе возможностью использовать удобную консоль Bash в Windows-окружении.

К сожалению, при всех своих плюсах, обновление Anniversary Update имеет один существенный недостаток — оно выводит из строя веб-камеру.

Судя по ответам сотрудников технической поддержки и обсуждению в ветке форума, компания Microsoft специально ограничила режим работы приложений в Windows 10, чтобы решить проблемы с производительностью при доступе приложения к веб-камере и процессам кодирования MJPEG или H.264. Дело в том, что традиционно в Windows только одному приложению разрешён доступ к видеопотоку с веб-камеры. Если вы, например, начали звонок в Skype, то другие приложения уже не могут получить доступ к веб-камере. Чтобы оптимизировать разделение доступа, в обновлении Windows 10 v.1607 компания Microsoft добавила новый компонент под названием Windows Camera Frame Server, который обрабатывает видеопотоки с веб-камер. Теперь приложения не подключаются напрямую к веб-камере, а подключаются к фрейм-серверу Windows Camera Frame Server. Он поддерживает несколько подключений одновременно и раздаёт видеопоток с камеры нескольким подключенным приложениям. Это должно было решить проблему «эксклюзивного» использования веб-камеры одной программой. И, кстати, эту проблему разработчики Windows должны были решить давным-давно, но решили только сейчас. Точнее, попытались решить.

В результате такой «оптимизации», при попытке кодировать видеопоток в MJPEG или H.264 с веб-камеры теперь устройство отключается через некоторое время. Например, HD-видеозвонок в Skype зависает примерно через минуту после начала, или же зависает сразу после начала.

Аудиозвонки работают нормально. Как и раньше, здесь нет проблемы с одновременным доступом нескольких программ к веб-камере. Также нет проблем при подключении веб-камеры через USB 3, а не USB 2.

Веб-камеры, подключенные по USB 2, вынуждены кодировать видео в MJPEG или H.264, потому что пропускной способности USB 2 в 480 Мбит/с недостаточно для передачи несжатого видео с разрешением 1920×1080 на 30 кадрах/с. Поэтому кодирование в MJPEG или H.264 является стандартной опцией почти всех современных веб-камер.

По какой-то причине фрейм-сервер Windows 10 v.1607 поддерживает только несжатый видеопоток. Вероятно, это сделано из-за проблем с производительностью в Windows 10, когда несколько приложений одновременно начинают осуществлять преобразование MJPEG-to-YUV или H.264-to-YUV. То есть теоретически более эффективно осуществлять такое преобразование однократно перед тем, как сервер раздаёт видеопоток приложениям. Такая схема не работает, если программа ожидает получение именно сжатого видеопотока MJPEG или H.264. В этом случае программа не может нормально работать.

Например, Skype прогрессивно улучшает качество видеосвязи по возможности, если позволяет пропускная способность и процессор не перегружен. Так, видеозвонок может начаться с более низким качеством (без сжатия видео, например, 640×480 YUV), но через некоторое время Skype решит, что ресурсы позволяют улучшить качество — и переключится на 720p или 1080p. Это может произойти через несколько секунд после начала видеозвонка или через минуту. На старых версиях Windows такое переключение происходило безболезненно и незаметно, а вот с установленным Anniversary Update переключение не работает — видео зависает на несколько секунд, а потом связь прерывается.

Многие пользователи могут подумать, что «глюки» веб-камеры можно решить обновлением драйверов, они ищут новые драйверы на сайтах производителей. Но на самом деле проблема не в драйверах, а в самой операционной системе.

На форуме техподдержки некоторые возмущённые корпоративные пользователи говорят, что функция видеозвонков критически важна для их сотрудников. Она постоянно используется в работе. С такими проблемами им не остаётся ничего иного, кроме как запретить сотрудникам устанавливать обновление Anniversary Update или вообще запретить устанавливать Windows 10 и поменять операционную систему на OS X, где нет проблем с видеосвязью.

Инженер Mike M из подразделения Windows Camera сказал, что все комментарии в треде фиксируются, а исправление для этого бага поставлено в очередь для разработчиков и, возможно, будет выпущено с сентябрьским обновлением Windows 10. Возможно, сначала во фрейм-сервер добавят только обработку MJPEG, потому что с ней легче справиться, а исправление для H.264 выйдет позже. Обещанный патч — это хорошая новость. Плохая новость в том, что до сентября нет официального обходного способа, чтобы включить нормальную обработку видеопотоков MJPEG и H.264 (неофициальный способ см. ниже).

Ещё одна плохая новость в том, что начиная с версии Anniversary Update компания Microsoft сократила разрешённый срок отката обновления со стандартных 30 дней до 10 дней [3], так что большинство пользователей застряли на этом апдейте. Странно, что компания Microsoft даже официально не сообщала о сокращении срока разрешённого отката до 10 дней, ничего подобного не сообщается в разделе обновления ОС.

Обновление Windows 10 «поломало» миллионы HD веб-камер - 2

Так что обладатели Windows 10 только на 11-й день после обновления узнают постфактум о том, что откатить обновление больше нельзя.

Об обновлении стека обработки видеопотока с веб-камер компания Microsoft тоже ничего не сообщала, когда выкатывала обновление. Поэтому никто не предполагал, что могут возникнуть какие-то проблемы. Как известно, Microsoft не выпускает подробные release notes и не рассказывает обо всех изменениях, сделанных в ОС, ограничиваясь только маркетинговыми пресс-релизами с кратким описанием новых замечательных функций.

Это сильно отличает Windows от операционных систем с открытым исходным кодом, где для каждой новой версии ядра подробно описаны абсолютно все сделанные изменения в ядре и даже можно посмотреть исходный код каждого патча. Там такие проблемы невозможны в принципе.

Теперь о неофициальном способе отключения нового фрейм-сервера в Windows 10. Один из пользователей говорит [4], что ему удалось всё-таки заставить Skype нормально работать без проблем с веб-камерой с помощью редактирования реестра. Можете тоже попробовать такой способ.

В разделе HKLMSOFTWAREWOW6432NodeMicrosoftWindows Media FoundationPlatform необходимо создать DWORD-параметр "EnableFrameServerMode" и установить его значение в "0", после этого перезапустить Skype. (Пожалуйста, сообщите в комментариях, если этот способ помог решить проблему.)

Обновление Windows 10 «поломало» миллионы HD веб-камер - 3

Обновление Windows 10 «поломало» миллионы HD веб-камер - 4

Указанный выше ключ действует для 32-битных приложений на 64-битной Windows. Для 64-битных приложений на 64-битной Windows такой же параметр в реестре с таким же значением следует создать в разделе HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows Media FoundationPlatform.

Остаётся надеяться, что никто из пострадавших пользователей не успел купить себе новую веб-камеру, потому что старая «глючит».

Автор: alizar

Источник [5]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/windows/176035

Ссылки в тексте:

[1] сообщают о проблемах с веб-камерой: https://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/9d6a8704-764f-46df-a41c-8e9d84f7f0f3/mjpg-encoded-media-type-is-not-available-for-usbuvc-webcameras-after-windows-10-version-1607-os

[2] вышло 2 августа 2016 года: https://geektimes.ru/post/278826/

[3] до 10 дней: http://winsupersite.com/windows-10/microsoft-shortens-recovery-rollback-period-10-days-windows-10-anniversary-update

[4] говорит: https://twitter.com/WithinRafael/status/766698660608348161

[5] Источник: https://geektimes.ru/post/279660/