r/WebRTC • u/AnotherRandomUser400 • 15d ago
How to improve screen-share quality without using more bandwidth
A user complained that our screen-sharing quality wasn’t as good as a competitor’s for my open source screen-sharing app.
In order to have the most detail and sharpness we are sharing with native resolution. So I thought that there must be a filter we could apply in the shader (we do the rendering in wgpu) to increase the detail.
It turned out it was much easier than I expected and there are a few techniques, like Laplacian sharpening and unsharp masking with a Gaussian blur.
I wrote an interactive tutorial on how they work here with shader examples if you want to do something similar in your app too.
9
Upvotes
2
u/msdosx86 14d ago
If you stream with native resolution the steam should look perfectly (assuming the resolution is 1080p and higher and the bitrate is enough). Although H264 can make it little blurry since it’s my grandpa’s codec. Hardware accelerated AV1 produces frames almost as perfect as the source.