为 Firefox 创建一个假的网络摄像头流
Create a fake webcam stream for Firefox
我想为 Firefox 创建一个假的网络摄像头流。目前我拥有所需的功能 media.navigator.streams.fake
但我不确定如何播放特定的视频文件。
我该怎么做?
对于 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.
希望对您有所帮助!
另一种方法是在 chrome 中使用用户代理,然后注入视频文件:
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
如果你想用 firefox 播放特定文件,我认为你必须在你的实例上模拟一个网络摄像头(例如使用 v4l2loopback),然后使用 ffmpeg 之类的东西在虚拟网络摄像头上播放你的文件。
使用 selenium,您还必须更新您的 firefox 配置文件以允许访问您的假网络摄像头。
我想为 Firefox 创建一个假的网络摄像头流。目前我拥有所需的功能 media.navigator.streams.fake
但我不确定如何播放特定的视频文件。
我该怎么做?
对于 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.
希望对您有所帮助!
另一种方法是在 chrome 中使用用户代理,然后注入视频文件:
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
如果你想用 firefox 播放特定文件,我认为你必须在你的实例上模拟一个网络摄像头(例如使用 v4l2loopback),然后使用 ffmpeg 之类的东西在虚拟网络摄像头上播放你的文件。 使用 selenium,您还必须更新您的 firefox 配置文件以允许访问您的假网络摄像头。