New issue
Advanced search Search tips

Issue 759537 link

Starred by 43 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug


Previous locations:
webrtc:8164


Sign in to add a comment

Why receiving constant PLI during a shared-desktop session?

Reported by uli.schm...@gmail.com, Aug 25 2017

Issue description

What 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

 
needless-pli.jpg
199 KB View Download
Project: chromium
Moved issue webrtc:8164 to now be issue chromium:759537.
Components: Blink>WebRTC>Video
It seems that the PLI's are only sent if we have shared-desktop active - not if normal video via camera is active.
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.
Cc: ilnik@chromium.org
Owner: sprang@chromium.org
Status: Assigned (was: Unconfirmed)
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?
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?

Comment 7 by sprang@chromium.org, 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.

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)
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...
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.

Thanks  ... 
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