如何从命令行将伪媒体流传递给firefox?

时间:2015-08-06 15:12:05

标签: google-chrome firefox selenium selenium-firefoxdriver

我正在开发基于java / selenium的应用程序,需要将媒体(即音频和/或视频文件)传递给浏览器。

我已经能够使用以下代码段在Chrome中成功完成此操作:

DesiredCapabilities capabilities = DesiredCapabilities.chrome(); 
ChromeOptions options = new ChromeOptions();
options.addArguments("--allow-file-access-from-files",
            "--use-fake-ui-for-media-stream",
            "--allow-file-access",
            "--use-file-for-fake-audio-capture=D:\\PATH\\TO\\WAV\\xxx.wav",
            "--use-fake-device-for-media-stream");
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
ChromeDriver driver = new ChromeDriver(capabilities);

Firefox 33.1中是否有类似的选项可以实现相同的功能?

如果没有,怎么办呢?

2 个答案:

答案 0 :(得分:3)

伪造的网络摄像头(Chrome和Firefox)

这是从Linux上的命令行设置伪造的网络摄像头的一种方法。

依赖项

  • Linux(我正在使用Ubuntu)
  • FFMpeg(视频流工具)
  • v4l2loopback(启用伪造的视频设备)

安装v4l2loopback(假网络摄像头)

# 1. Install v4l2loopback kernel module from apt
sudo apt install v4l2loopback-dkms

# 2. Enable the "fake webcam", via v4l2loopback kernel module
sudo modprobe v4l2loopback devices=1 card_label="My Fake Webcam" exclusive_caps=1

视频文件(环状)为假摄像头

# Link video file (on loop) to the "fake webcam"
ffmpeg -stream_loop -1 -re -i ./MYFILE.mp4 -vcodec rawvideo -pix_fmt yuv420p -threads 0 -f v4l2 /dev/video0

作为假冒网络摄像头的台式机视频

# Link desktop video stream to the "fake webcam"
ffmpeg -f x11grab -r 15 -s 1280x720 -i :0.0+0,0 -vcodec rawvideo -pix_fmt yuv420p -threads 0 -f v4l2 /dev/video0

最重要的是,它可同时用于Firefox和Chrome!因为它在内核级别伪造了网络摄像头。

在此处测试您的假冒网络摄像头:https://webcamtests.com/

Chrome测试(台式机Feed) enter image description here

Firefox测试(桌面供稿) enter image description here

禁用假网络摄像头

如果您需要禁用它...

# To disable the fake webcam, simply remove it from the kernel
sudo modprobe --remove v4l2loopback

无论如何,希望有人觉得这有用!

答案 1 :(得分:2)

Firefox仅具有这些功能, 浏览器名称, browserVersion, platformName, acceptInsecureCerts, pageLoadStrategy, 代理, setWindowRect, 超时, unhandledPromptBehavior

但是作为一种选择,下面的代码中有一个

  

options.addPreference(“ media.navigator.streams.fake”,true);

希望它可以帮助您解决这种情况。