Why receiving constant PLI during a shared-desktop session?
Reported by
uli.schm...@gmail.com,
Aug 25 2017
|
|||
Issue descriptionWhat steps will reproduce the problem? 1.One Chrome is sharing its screen via WebRTC 2.The 2nd. user also using Chrome is watching the screen - so that is a direct WebRTC stream between the 2 Chromes 3. Looking now on the webRTC internals of Chrome1 shows a huge amount of PLI-requests coming from the 2nd. chrome, even packetLoss rate is 0. This constant PLI requests coming from the 2nd. watching chrome is causing an increase of needed bandwidth. And since we built a MCU with video-relaying capabilities, this effect is even much higher, when 100 or even 1000 Chromes are watching a presentation and all do send so many PLI's What is the expected result? Would not expect constant PLI requests in well working LAN environment What do you see instead? Constant increasing PLI numbers in chrome://webrtc-internals Sometimes it the watcher does not send PLIs and suddenly it starts it again every couple of seconds. What version of the product are you using? On what operating system? Chrome 60.0.3112.101 on Windows; and Chrome 60.0.3112.101 on macOS Please provide any additional information below. >> see the screen-shot attached
,
Aug 28 2017
,
Aug 28 2017
It seems that the PLI's are only sent if we have shared-desktop active - not if normal video via camera is active.
,
Aug 29 2017
The number of PLI's is much higher if the presenter has x-google-max-bitrate = 100, x-google-start-bitrate = 60 and x-google-max-quantization = 20 -> that were the defaults in our application-settings. If I leave them out to defaults, I get less PLI's. But do still get them .. If I use Firefox for the "viewer-session" I don't see any PLI at all.
,
Aug 29 2017
uli: Do you know if this is a regression? Do you have some test webapp that we could use to repro? Erik: is this something you recognize?
,
Aug 29 2017
That is our own WebRTC application. As lower we set the bandwidth as more PLI's I do get - even with setting x-google-xyz to defaults. I tried to reproduce it with https://appr.tc/ .. but this app does not support Shared-Desktop (SD). And with Video I don't see it at all. Can you recommend another public test-app with SD feature?
,
Aug 29 2017
Don't think I've seen this before, but I can venture a guess. I think your settings are a bit contradictory. A max qp of 20 sounds excessive. You are aware that lower qp means higher quality, right? If you're aiming for a low-bitrate stream, I'd set it to something like 56. A qp of < 20 will result in quite high quality images, and if the desktop has a high resolution then the resulting encoded frames will probably be very large. If the target bitrate is set to something low like 100kbps, the encoder will need to drop loads of frames in order to meet the bitrate target, on average. If it drops enough frames so that the receiver is not able to decode a new frame in three seconds, it will request a key frame. Can you look at the native logs for the receive side? It should log if it's sending keyframe requests.
,
Aug 29 2017
Thanks .. I'll have to verify that with our client-guys in more details. I am working on backend-side and have just a few screws to change (and no qp setting)
,
Aug 29 2017
Some other questions: - Can that "three second" timer on receiver/decode side be configured somehow? - Can you recommend some shared-desktop profiles? so a low-quality/bandwidth profile; a medium and a high-end one? Which qp, max-bandwidth, frame-rate would you recommend for each such profile? .. just a quick guess ... Thanks a lot...
,
Aug 30 2017
1) No. 2) Hard to recommend hard values. Try setting QP to 54-58 region and check if it looks good enough. I think you'll have to experiment yourself to find settings that works for you.
,
Aug 30 2017
Thanks ...
,
Aug 30 2017
To 1 a last question about the hardcoded PLI-timeout value of 3seconds: Would it be possible to make it for apps somehow configurable - i.e. by introducing another x-chrome-xxxx property? |
|||
►
Sign in to add a comment |
|||
Comment 1 by kjellander@chromium.org
, Aug 28 2017