I was playing around with VP9 support for screen sharing. I was not able to successfully produce the captured screen share stream video using VP9 with L3T3 in my localhost. It works using VP9 with L1T3 for screen share. I am able to successfully produce my local camera using VP9 with L3T3 in both my localhost as well as v3demo application. But VP9 screenshare doesn’t seem to work on v3demo as well. For the screen-share producer, it shows in the info that screen is being produced with VP9 but it doesn’t show the stream parameter which usually contains the ssrc and score. On the consumer side, it shows resolution as 0x0 and current spatial-temporal layers as undefined:undefined. Here is the link I am using to force v3demo to use VP9 for both webcam stream and screen share stream. Please suggest if I am missing something here. https://v3demo.mediasoup.org/?info=true&forceVP9=true&webcamScalabilityMode=L3T3&sharingScalabilityMode=L3T3
There is little we can do if Chrome doesn’t support those VP9 settings for screen sharing.
That’s intended browser and WebRTC behavior, Mediasoup cannot fix that.
VP9 with L3T3 doesn’t work for screen sharing because the browser’s VP9 encoder can’t properly generate spatial layers for screen content. Unlike camera video, where VP9 SVC is implemented, screensharing ends up producing invalid streams, which is why you see 0x0 resolution and undefined layers. This isn’t a mediasoup problem but a WebRTC/browser limitation. The only stable options are VP9 with L1T3 (temporal only) or switching to VP8 simulcast, which is what most apps use for screen sharing.
Screenshare dynamic resolution does create some issues here as well other features. Don’t count on it being fixed or standardized.