Фон
Я намагаюсь керувати входом у веб-додаток 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, або за допомогою підробленого пристрою захоплення в просторі користувачів, або за допомогою інших засобів?