New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 824426 link

Starred by 3 users

Issue metadata

Status: Duplicate
Merged: issue webrtc:5788
Owner: ----
Closed: May 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 3
Type: Bug

Blocked on:
issue webrtc:5788



Sign in to add a comment

Chrome webRTC does not control the send bandwidth based on b=AS and b=TIAS proposed by remote SDP (video codec: H.264)

Reported by yinbao2...@gmail.com, Mar 21 2018

Issue description

UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.162 Safari/537.36

Steps to reproduce the problem:
webRTC client running on Chrome (developed using JSSIP) receives an incoming call with SDP specifying the following:
- session BW: 256kbps
- media audio BW: 64 kbps
- media video BW: 128 kbps

Below is setRemoteDescription copied from chrome://web-internals:

type: offer, sdp: v=0
o=- 554044268 554044268 IN IP4 172.21.1.100
s=Asterisk
c=IN IP4 172.21.1.100
b=AS:256
t=0 0
m=audio 10174 RTP/SAVPF 0 101
b=TIAS:64000
a=connection:new
a=setup:actpass
a=fingerprint:SHA-1 69:E8:5C:65:E4:E0:8F:32:9A:65:57:5D:FF:8D:30:93:5D:F2:8E:FA
a=ice-ufrag:4a0597123bf8bc2b06c15a17474ff9d2
a=ice-pwd:54e7001c63946625132138e12bd2a39e
a=candidate:Hac150164 1 UDP 2130706431 172.21.1.100 10174 typ host
a=candidate:S22c5e729 1 UDP 1694498815 34.197.231.41 10174 typ srflx raddr 172.21.1.100 rport 10174
a=candidate:Hac150164 2 UDP 2130706430 172.21.1.100 10175 typ host
a=candidate:S22c5e729 2 UDP 1694498814 34.197.231.41 10175 typ srflx raddr 172.21.1.100 rport 10175
a=rtpmap:0 PCMU/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=ptime:20
a=maxptime:150
a=sendrecv
a=rtcp-mux
m=video 16222 RTP/SAVPF 99
b=TIAS:128000
a=connection:new
a=setup:actpass
a=fingerprint:SHA-1 69:E8:5C:65:E4:E0:8F:32:9A:65:57:5D:FF:8D:30:93:5D:F2:8E:FA
a=ice-ufrag:7f7858002990484a656978c35bf19269
a=ice-pwd:01bd38c9107bf289070edf6620ace39d
a=candidate:Hac150164 1 UDP 2130706431 172.21.1.100 16222 typ host
a=candidate:S22c5e729 1 UDP 1694498815 34.197.231.41 16222 typ srflx raddr 172.21.1.100 rport 16222
a=candidate:Hac150164 2 UDP 2130706430 172.21.1.100 16223 typ host
a=candidate:S22c5e729 2 UDP 1694498814 34.197.231.41 16223 typ srflx raddr 172.21.1.100 rport 16223
a=rtpmap:99 H264/90000
a=fmtp:99 max-mbps=108000;packetization-mode=1;profile-level-id=42000B
a=sendrecv
a=rtcp-mux

What is the expected behavior?
webRTC should not send video frames with bit rate higher than what's specified in remote SDP. I expect the googTransmitBitate/googActualBitrate to be within 128-256kbps 

What went wrong?
actual googTransmitBitate/googActualBitrate is observed to be around 1.5Mbps, where googAvailableSendBandwidth is observed as high as 1.5-4Mbps.

I have attached the event log and webrtc-internal-dump.

Did this work before? N/A 

Does this work in other browsers? N/A

Chrome version: 65.0.3325.146 (Official Build) (64-bit)  Channel: n/a
OS Version: Mac OS X
Flash Version: 

The attached log is a short call. I have also ran the same on Win10 based Chrome and observed the same: even on long calls the send BW is around 1 - 1.5Mbps.

If there is another way I should use to control the BW used by webRTC app please let me know. Our downlink device is a mobile device that does poorly when flooded with high BW video traffic. Thanks!
 
webrtc_internals_dump.txt
1.1 MB View Download
event_log_20180321_1346_316_11.log
14.6 KB View Download
Cc: vamshi.kommuri@chromium.org
Labels: Triaged-ET Needs-Triage-M65 TE-NeedsTriageHelp
Thanks for filing the issue!

This issue seems to be out of scope for triaging from our end as it needs to run webRTC client on Chrome which is developed using JavaScript SIP, hence adding label "TE-NeedsTriageHelp" and requesting someone from Blink>WebRTC team to have a look into it and help in further triaging.

Comment 2 by guidou@chromium.org, Mar 22 2018

Components: -Blink>WebRTC Blink>WebRTC>Network
I have not seen recent update on this issue. Can you please let me know if there's any additional info needed? Thanks.
Blockedon: webrtc:5788
Labels: -Pri-2 -TE-NeedsTriageHelp Pri-3
Status: Available (was: Unconfirmed)
The session-level b=AS isn't implemented, and media-level b=TIAS isn't implemented either, so every bandwidth limit in your SDP is being ignored.

Here's a fiddle that can be used to test this: https://jsfiddle.net/emson7ap

Also, b=AS has some other issues... See https://bugs.chromium.org/p/chromium/issues/detail?id=803615
This may be a deviation from the original issue: are rtfp-fb supported by Chrome? Specifically the following 3:

a=rtcp-fb:* nack pli
a=rtcp-fb:* ccm tmmbr
a=rtcp-fb:* ccm fir

I have a low throughput downstream device and would like to configure webRTC in Chrome to either limit the BW or support flow control.

Appreciate any suggestion, thanks. 
Cc: holmer@chromium.org
PLI and FIR are supported and advertised in generated SDP. TMMBR appears to be supported, but doesn't appear in SDP, so maybe its implementation has caveats.

holmer@, can you summarize the status of TMMBR? Why don't we advertise support for it?

Here's a related bug: https://bugs.chromium.org/p/webrtc/issues/detail?id=7103
Mergedinto: webrtc:5788
Status: Duplicate (was: Available)
Going ahead and closing this as duplicate of bugs.webrtc.org/5788 (b=TIAS not implemented) and bugs.webrtc.org/9296 (b=AS not implemented at session level).

Sign in to add a comment