Підроблена / керована веб-камера для Chrome всередині контейнера Docker


3

Фон

Я намагаюсь керувати входом у веб-додаток WebRTC, що працює на Chrome, керований Selenium, всередині контейнера Docker.

Це частина автоматизованого тестування програми WebRTC.

У рамках тестування я хочу надіслати кероване аудіо та (бажано, кероване) відео в Chrome, що працює в Docker.

У мене вже є керований аудіовхід із використанням підробленого аудіопристрою , але використання цього означає, що у мене є "справжній" мікрофон у Chrome, і я не можу використовувати його підроблені функціональні пристрої для імітації відеовведення.
Функція Chrome - використання файлу для підробленого аудіозапису працює лише у тому випадку, якщо - також використовується активна-підробка пристрою для медіа-потоку, що дозволить вимкнути доступ до входу мікрофона системи.

Проблема

Мені потрібен спосіб емуляції веб-камери таким чином, щоб її можна було використовувати в Chrome для відеодзвінка WebRTC, все це в контейнері Docker.
В ідеалі я також повинен мати можливість контролювати зображення в цій підробленій веб-камері.

Я натрапив на кілька дописів, де люди успішно отримали контейнери Docker для використання пристроїв веб-камери (включаючи підроблені) в хост-системі, але це відображення одного пристрою на хості, і я хочу мати змогу запустити кілька Docker контейнери (20+) на одному хості, кожен з яких має свій унікальний пристрій веб-камери.

Здається, стандартним способом цього є використання драйвера v4l2loopback, але це модуль ядра, і Docker використовує ядро ​​хоста, тому не може завантажувати власні модулі всередині контейнерів.

Теоретично можна було б створити декілька фальшивих пристроїв веб-камери на хостах, а потім перенести кожен з них у контейнер Docker, хоча це було б логічним кошмаром (для тесту потрібно було б керувати камерами на хості, а не спілкуватися з контейнери), і v4l2loopback обмежений 8 пристроями в будь-якому випадку (знову ж таки, теоретично я міг би перекомпілювати драйвер, щоб підтримати більше.)

Здається, що я дійсно шукаю - це якийсь спосіб підробити пристрій веб-камери в просторі користувача замість місця в ядрі.
Я знайшов драйвер веб-камери для користувачів під назвою UV4L , але це для Raspberry Pi (архітектура ARM.)

Питання

Хтось знає спосіб, яким я міг би контролювати відео на пристрої захоплення Chrome у контейнері Docker, або за допомогою підробленого пристрою захоплення в просторі користувачів, або за допомогою інших засобів?


Будь-яке оновлення на цьому?
MoShe

Відповіді:


0

Дякуємо вам за чудову публікацію щодо емуляції аудіовведення. Що стосується веб-камери, чи ви спробували наступний варіант Chrome:

https://cs.chromium.org/chromium/src/media/base/media_switches.cc?q=kUseFileForFakeVideoCapture&sq=package:chromium&type=cs&l=104


Я маю, і це єдиний спосіб, який я знайшов, щоб протестувати відео поки що. На жаль, вам доведеться використовувати як підроблене аудіо, так і підроблене відео, якщо ви використовуєте будь-яке, тому, використовуючи підроблений вхід відео, я втрачаю можливість контролювати аудіовхід.
Безіменний голос
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.