Open t-mullen opened 6 years ago
I have also observed this. I have verified that these properties are set, but the generated SDP has no lines starting with 'b='.
Should the SDP messages change in response to changes to these properties? Or are they supposed to be used internally to manage the bitrates?
They are used internally
So if there is no effect on SDP offer generation, then how should we verify whether the methods are having an effect or not?
On 26. Oct 2018, at 09:25, Micael Gallego notifications@github.com<mailto:notifications@github.com> wrote:
They are used internally
— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/Kurento/bugtracker/issues/293#issuecomment-433313422, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AqaKcfTpYS0vdc-ZhsmoWU6JUciWGgPbks5uorjxgaJpZM4V-leg.
When you limit bandwidth, you can test it in webrtc-internals, for example.
I have checked there, and will check again. What would it take for this bug to be closed?
I have an urgent requirement for improved video quality. Would changing the defaults in the C/C++ code have an effect that we otherwise may not be seeing when changing the properties via API calls?
On 26. Oct 2018, at 10:13, Micael Gallego notifications@github.com<mailto:notifications@github.com> wrote:
When you limit bandwidth, you can test it in webrtc-internals, for example.
— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/Kurento/bugtracker/issues/293#issuecomment-433325985, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AqaKcWhGEP3xar7J5TUUlPt3vO97IgYrks5uosQtgaJpZM4V-leg.
What is exactly your problem? setMaxVideoSendBandwidth: sets maximum bitrate limits for video sent to remote peer. 0 is considered unconstrained.
If you want to restrict received video bandwidth you will need to change that in browser side, no?
As the original poster of this bug explained setMaxVideoSendBandwidth and related methods seem to have no effect on WebRtcEndpoint. This is my experience also.
I would like to configure a higher maximum bandwidth for sending and receiving than the default 500 kbit/s (e.g. 1000kbit/s) but not necessarily unconstrained (0).
On 26. Oct 2018, at 10:24, Micael Gallego notifications@github.com<mailto:notifications@github.com> wrote:
What is exactly your problem? setMaxVideoSendBandwidth: sets maximum bitrate limits for video sent to remote peer. 0 is considered unconstrained.
If you want to restrict received video bandwidth you will need to change that in browser side, no?
— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/Kurento/bugtracker/issues/293#issuecomment-433328981, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AqaKcVTXcsltQ7iW-y-C_qgOHdHBiC5Rks5uosbDgaJpZM4V-leg.
For me it works. I posted lately on this.
Sent from my iPhone
Am 26.10.2018 um 10:33 schrieb joe-at-siemens notifications@github.com:
As the original poster of this bug explained setMaxVideoSendBandwidth and related methods seem to have no effect on WebRtcEndpoint. This is my experience also.
I would like to configure a higher maximum bandwidth for sending and receiving than the default 500 kbit/s (e.g. 1000kbit/s) but not necessarily unconstrained (0).
On 26. Oct 2018, at 10:24, Micael Gallego notifications@github.com<mailto:notifications@github.com> wrote:
What is exactly your problem? setMaxVideoSendBandwidth: sets maximum bitrate limits for video sent to remote peer. 0 is considered unconstrained.
If you want to restrict received video bandwidth you will need to change that in browser side, no?
— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/Kurento/bugtracker/issues/293#issuecomment-433328981, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AqaKcVTXcsltQ7iW-y-C_qgOHdHBiC5Rks5uosbDgaJpZM4V-leg. — You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or mute the thread.
Thanks for hints. I am investigating.
Joe
From: neilyoung [mailto:notifications@github.com] Sent: 26 October 2018 12:08 To: Kurento/bugtracker Cc: Newman, Joseph (CT RDA SDT IPV-DE); Comment Subject: Re: [Kurento/bugtracker] setMaxVideoSendBandwidth and similar methods have no effect on receiving WebRtcEndpoint (#293)
For me it works. I posted lately on this.
Sent from my iPhone
Am 26.10.2018 um 10:33 schrieb joe-at-siemens notifications@github.com:
As the original poster of this bug explained setMaxVideoSendBandwidth and related methods seem to have no effect on WebRtcEndpoint. This is my experience also.
I would like to configure a higher maximum bandwidth for sending and receiving than the default 500 kbit/s (e.g. 1000kbit/s) but not necessarily unconstrained (0).
On 26. Oct 2018, at 10:24, Micael Gallego notifications@github.com<mailto:notifications@github.com> wrote:
What is exactly your problem? setMaxVideoSendBandwidth: sets maximum bitrate limits for video sent to remote peer. 0 is considered unconstrained.
If you want to restrict received video bandwidth you will need to change that in browser side, no?
— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/Kurento/bugtracker/issues/293#issuecomment-433328981, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AqaKcVTXcsltQ7iW-y-C_qgOHdHBiC5Rks5uosbDgaJpZM4V-leg. — You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or mute the thread.
— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/Kurento/bugtracker/issues/293#issuecomment-433358409, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AqaKcQZm5nMujWQZHyqOpwj2Tj3Uo4yAks5uot7mgaJpZM4V-leg.
I eventually worked around this by munging the b lines into the SDP myself, but I don't think that setMaxVideoRecvBandwidth
or setMinVideoRecvBandwidth
are behaving correctly or do anything at all for WebRTC endpoints.
I was even able to set ridiculously small values like endpoint.setMaxVideoRecvBandwidth(1)
(that's 1 kbps) and video still flowed as before, with identical quality.
After all I think I have to agree: Controlling the bandwidth used by the KMS transmitter seems to be not possible at all :(
EDIT: For sure not, if there is any kind of OpenCV filter involved.
Hmm, hitting similar issues here @t-mullen can you elaborate a bit more on this? Did you do this on the browsers SDP offer to kurento? Or the returned kurento offer to the browser?
The browser's SDP offer to Kurento. The offer has the m-lines for the media, so it gets the b-lines too.
It's a client-side bitrate limit, so could be bypassed if you don't validate SDP.
I have done a fresh round of testing and can verify that the methods
still have no discernible effect using
Kurento Media Server version: 6.10.0 Found modules: 'core' version 6.10.0 'elements' version 6.10.0 'filters' version 6.10.0
If fixing them is unlikely then it would be good to mark them as broken in the documentation.
KMS Version:
Other libraries versions:
Client libraries
Browsers tested
System description: KMS and TURN is on an AWS EC2 instance. Public STUN.
What steps will reproduce the problem?
What is the expected result? The bandwidth or bitrate change results in an SDP change, visual change, or any change.
What happens instead? Nothing changes. The SDP is the same, no visual change, no noticeable change in sniffed traffic or bandwidth usage. Methods appear to have no effect whatsoever.
Does it happen with one of the tutorials? Yes, I've tried this with multiple tutorials that involve the WebRTCEndpoint.
Please provide any additional information below. Manually changing the SDP to add b-lines on the client (the typical way to manipulate bitrate in WebRTC), also has no effect, suggesting Kurento is actively ignoring these lines in addition to refusing to add them to it's own SDP.
I am calling these methods immediately after the endpoint is created (in the callback like so):
The methods seem to be working as expected for RTPEndpoint.