Hello,
I am looking for a developer with experience in Python and multimedia on Linux.
I need a solution which will connect to a browser with WebRTC, receive its camera and microphone streams, and pipe them into virtual media devices on Linux: v4l2loopback (virtual webcam) and Pulseaudio virtual microphone.
For this, there is an existing solution with open source code that uses gstreamer’s WebRTC plugin:
https://aweirdimagination.net/2020/07/12/virtual-web-cam-using-gstreamer-and-v4l2loopback/
https://aweirdimagination.net/2020/07/19/virtual-microphone-using-gstreamer-and-pulseaudio/
https://git.aweirdimagination.net/perelman/minimal-webrtc-gstreamer
The solution has an issue, that the video received over WebRTC degrades into blocky blobs of color artifacts (I have attached a screenshot to the post). This happens even when the transmission goes over localhost.
This problem is most likely caused by incorrectly configured gstreamer parameters, because it is described in gstreamer’s issue tracker, where a developer says that the newest version of gstreamer allows using WebRTC without signal degradation artifacts, but unfortunately, the existing solution is still glitchy on the latest version.
https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1164
Technical requirements:
• Must work on Ubuntu 22.04
• Have no quality loss (at the level of quality expected from two browsers video calling over localhost)
• The number of concurrent streams and virtual webcams and microphones should not be hard limited by the solution itself, limitations caused by underlying software are acceptable
• The virtual webcam and microphone must be recognizable in Firefox and Google Chrome, and be usable as audio and video inputs
• Browser disconnections should be handled gracefully
The deliverable:
python3.10
minimal-webrtc-host.py %virtualcam% %virtualmic%
Result: the programm connects to the browser, and turns the browser’s video and audio streams into virtual media devices on the Linux system
If you are interested in this job, please contact me or write an offer, beginning your message with the phrase “I fully read the assignment,” so that I know you are not a robot
Thank you for your time and attention, and I look forward to hearing from you
Need a solution to turn a video stream from browsers into virtual input devices on Linux
Tags: Python, WebRTC, gstreamer, Linux
Delivery term: Not specified