Evaluating bids

Bugfix an existing solution to wrap Webrtc into a virtual webcam and microphone

Published on the May 20, 2022 in IT & Programming

About this project

Open

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

Project overview

Need a solution to turn a video stream from browsers into virtual input devices on Linux Tags: Python, WebRTC, gstreamer, Linux

Category IT & Programming
Subcategory Desktop apps
What is the scope of the project? Medium-sized change
Is this a project or a position? Project
I currently have I have specifications
Required availability As needed
Required platforms Linux / Unix

Delivery term: Not specified

Skills needed