Я пытаюсь получить доступ к веб-камере через WebRTC в Chrome.
Все работает на большинстве ПК, но на некоторых просто показывает черный экран. Драйверы и все установлено, и небольшая тестовая программа от производителя веб-камеры показывает видеопоток на всех ПК.
В Chrome в разделе chrome: // media-internals вы можете найти некоторую информацию о мультимедийных устройствах, используемых в Chrome. На компьютерах, на которых отображается допустимый видеопоток, Chrome использует Direct Show в качестве API устройства. На компьютерах с черным экраном Chrome использует Media Foundation в качестве API устройства.
Как я могу изменить API устройства, которое Chrome использует для доступа к веб-камере?





Chrome недавно перешел на MediaFoundation для захвата, см. Комментарии в https://bugs.chromium.org/p/chromium/issues/detail?id=849636#c10 о том, как проверить, работает ли эта конкретная камера. Если он не работает с MediaFoundation, вы должны сообщить об ошибке, указав модель камеры, чтобы ее можно было занести в черный список. Попытка той же камеры в Firefox на https://webrtc.github.io/samples/src/content/devices/input-output/ может дать представление о модели.
Я попробую это сделать с Firefox и с тегом -disable-MediaFoundation в понедельник. Но на компьютерах, на которых работает веб-камера, установлена одна и та же версия Chrome. Я перепроверил это.
Спасибо, помогла флаг disable-feature = MediaFoundationVideoCapture.
Не могли бы вы собрать дополнительную информацию об устройстве (производитель, название модели) и сообщить об ошибке на crbug.com? Похоже, устройство нужно занести в черный список. Пожалуйста, разместите ссылку на ошибку здесь.
в частности снимок экрана chrome: // media-internals, когда он работает.
Это похоже на аппаратное обеспечение, а не на программирование. Есть только один WebRTC API для всех устройств (акцент на «веб»). Если вы не пытаетесь исправить Chrome, создав собственную версию Chromium? Если да, опишите подробнее.