Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.6k views
in Technique[技术] by (71.8m points)

google chrome - How can I pass a fake media stream to firefox from command line?

I am developing a java/selenium based application and need to pass media i.e. audio and/or video files to the browser.

I have been able to successfully do this in Chrome using the below code snippet:

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);

Are there similar options available in Firefox 33.1 to achieve the same capability?

If not, how can this be done?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

Fake Webcam (Chrome & Firefox)

Here's a way setup a fake webcam from the command-line on Linux.

Dependencies

  • Linux (I'm using Ubuntu)
  • FFMpeg (video streaming tool)
  • v4l2loopback (enables a fake video device)

Installing v4l2loopback (Fake Webcam)

# 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

Video File (Looped) as Fake Webcam

# 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

Desktop Video as Fake Webcam

# 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

The great part about this is that it works for both Firefox and Chrome! As it fakes the webcam at the kernel level.

Test your fake webcam here: https://webcamtests.com/

Chrome Test (Desktop Feed) enter image description here

Firefox Test (Desktop Feed) enter image description here

Disable Fake Webcam

If you need to disable it...

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

Anyway, hope someone finds this useful!


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...