背景

背景

背景

我正在嘗試控制在 Docker 容器內由 Selenium 控制的 Chrome 上執行的 WebRTC Web 應用程式的輸入。

這是 WebRTC 應用程式自動化測試的一部分。

作為測試的一部分,我想將受控音訊和(最好是受控)視訊發送到在 Docker 中運行的 Chrome。

我已經有了使用假音訊設備的可控音訊輸入,但使用它意味著我在 Chrome 中有一個「真正的」麥克風,並且無法使用其假設備功能來模擬視訊輸入。
Chrome 的 --use-file-for-fake-audio-capture 功能僅在 --use-fake-device-for-media-stream 也處於活動狀態時才起作用,這將停用對系統麥克風輸入的存取。

問題

我需要一種模擬網路攝影機的方法,以便可以在 Chrome 中使用它進行 WebRTC 視訊通話,所有這些都在 Docker 容器內。
理想情況下,我還應該能夠控制那個假網路攝影機中的圖片。

我遇到過幾篇文章,其中人們成功地讓 Docker 容器在主機系統上使用網路攝影機裝置(包括假的),但這是到主機上單一裝置的映射,我希望能夠運行多個 Docker在同一主機上的容器(20+),每個容器都有自己獨特的網路攝影機設備。

執行此操作的標準方法似乎是使用 v4l2loopback 驅動程序,但那是一個內核模組,而 Docker 使用主機的內核,因此無法在容器內載入自己的模組。

理論上,可以在主機上創建多個假網路攝影機設備,然後將每個設備映射到 Docker 容器,儘管這將是一場後勤噩夢(測試需要控制主機上的攝影機,而不是與容器),並且v4l2loopback在任何情況下都僅限於8 個設備(同樣,理論上我可以重新編譯驅動程式以支援更多設備。)

看來我真正想要的是在用戶空間而不是內核空間中偽造網路攝影機設備的某種方法。
我確實找到了一個名為的用戶空間網路攝影機驅動程式紫外線4L,但它適用於 Raspberry Pi(ARM 架構)。

問題

有人知道我可以在 Docker 容器內使用偽造的擷取裝置或透過其他方式控制影片進入 Docker 容器內的 Chrome 擷取裝置的方法嗎?

相關內容