为Firefox创建伪造的网络摄像头流

时间:2018-11-19 03:09:51

标签: selenium firefox protractor katalon-studio

我想为Firefox创建一个伪造的网络摄像头流。目前,我具有所需的功能media.navigator.streams.fake,但不确定如何播放特定的视频文件。

我该怎么做?

3 个答案:

答案 0 :(得分:3)

对于Firefox,您可以在Python中使用以下代码:

from selenium import webdriver


options = webdriver.FirefoxOptions()
options.set_preference("media.navigator.streams.fake", True)
driver = webdriver.Firefox(firefox_options = options)

或者,如果您将期望的功能与其他选项一起使用,则它将像:

from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities


options = webdriver.FirefoxOptions()
options.set_preference("media.navigator.streams.fake", True)
desired = DesiredCapabilities.FIREFOX
desired.update(options.to_capabilities())
driver = webdriver.Firefox(desired_capabilities=desired)

PS:您可以将其翻译为任何所需的编程语言。

根据您的问题:Firefox不支持在假冒的网络摄像头https://github.com/mozilla/geckodriver/issues/1429中播放特定的视频文件。

希望对您有帮助!

答案 1 :(得分:2)

另一种选择是您在chrome中使用User Agent,然后注入视频文件:

ChromeOptions options = new ChromeOptions();
options.addArguments("--use-fake-ui-for-media-stream");
options.addArguments("--use-fake-device-for-media-stream");
options.addArguments("--use-file-for-fake-video-capture=path/to/video.y4m");
options.addArguments("--user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:63.0) Gecko/20100101 Firefox/63.0");
webDriver = new ChromeDriver(options)

PS:我创建了Ratmir Asanov评论的问题 github.com/mozilla/geckodriver/issues/1429

答案 2 :(得分:0)

如果要使用firefox播放特定文件,我认为您必须在实例上模拟网络摄像头(例如,使用v4l2loopback),然后使用诸如ffmpeg之类的东西在虚拟网络摄像头上播放文件。 使用硒,您还必须更新Firefox配置文件,以允许访问假冒的网络摄像头。