Russian  English  All projects

Finalize the solution that converts WebRTC to virt. webcam and microphone



Hello

Im looking for a developer with experience with Python, WebRTC, and Multimedia on Linux to refine and fix bugs in an existing project.

You need a solution that will establish a connection with the browser via WebRTC, receive a stream from its webcam and microphone, and direct these streams to the virtual media device v4l2loopback (webcam) and the virtual microphone Pulseaudio.

To do this, there is already a developed open source solution using the WebRTC plugin gstreamer:

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 disadvantage of this solution is the degradation of the image signal to an illegible "porridge" (I attach the screenshot to the post), despite the fact that the connection between the browser and the desktop passes through the localhost. This problem is most likely caused by incorrectly configured gstreamer parameters, because it is described in the gstreamer tracker, where in the latest comments the developer says that with the new update you can do everything without degrading the signal, but alas, the existing solution is buggy on the newest version.

https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1164

Technical requirements:

The solution should work on Ubuntu 22.04Without no loss of quality (at the expected level of quality of communication between two browsers on localhost)The number of supported streams and virtual cameras and microphones should not be limited by the solution itself (how many processes you run, so many will be). Irreparable limitations emanating from the system software are acceptableVirtual microphone and camera should be recognized and work as sources of video and audio in Chrome and FirefoxConnection to the browser should be adequately handled by the programHow the final product should look:

python3.10 minimal-webrtc-host.py %virtual camera%%virtual-microphone%

The result: the program connects to the browser and turns browser audio and video into virtual media devices on the OS

Term of execution of the order: 1-1.5 weeks after agreeing on the conditions.


If you are interested in this work, contact or write a request starting with the message with the phrase "I have fully read the task" so that I know that you are not a robot

Thank you for your time and attention, and I hope we will work together.
20.05.2022 18:51



 Answers freelancers