Skip to content
This repository has been archived by the owner on Jul 12, 2023. It is now read-only.

setRembOnConnect not working #610

Open
3 tasks done
thekwonster opened this issue Sep 2, 2021 · 3 comments
Open
3 tasks done

setRembOnConnect not working #610

thekwonster opened this issue Sep 2, 2021 · 3 comments
Projects

Comments

@thekwonster
Copy link

thekwonster commented Sep 2, 2021

Prerequisites

These are MANDATORY, otherwise the issue will be automatically closed.

Issue description

The video encoding bitrate always start from around 100kbps even though setting the initial REMB value to some bigger value by calling setRembOnConnect API.
(All the test server and client is set in the private local network. so there is no network bandwidth problem)

https://doc-kurento.readthedocs.io/en/latest/_static/client-javadoc/org/kurento/client/RembParams.html#setRembOnConnect-java.lang.Integer-

Context

What i am trying to accomplish is a one to many SFU video call with a start encoding/transmit bitrate larger than default value.
I want to send FHD resolution. So if it begins with 100kbps, it takes more than a minute till it gets to bitrate that is enough for the FHD.

Also I don't want to change a min bitrate. I know that changing the min bitrate by adding x-google-min-bitrate in the SDP would
change the default value i want. However it could lead to other problem.

Adding a x-google-start-bitrate in the answer SDP does not work.
However in the P2P, adding x-google-start-bitrate in the answer SDP works fine.

How to reproduce?

With the"kurento-tutorial-java-master\kurento-one2many-call" example, I changed CallHandler.presenter like below.

private synchronized void presenter(final WebSocketSession session, JsonObject jsonMessage) throws IOException {
if (presenterUserSession == null) {
presenterUserSession = new UserSession(session);
pipeline = kurento.createMediaPipeline();
presenterUserSession.setWebRtcEndpoint(new WebRtcEndpoint.Builder(pipeline).build());
WebRtcEndpoint presenterWebRtc = presenterUserSession.getWebRtcEndpoint();

// the below is what I added to change default value to 4mbps
RembParams rembParams = presenterWebRtc.getRembParams();
rembParams.setRembOnConnect(new Integer(4000*1000));
presenterWebRtc.setRembParams(rembParams);

Expected & current behavior

  1. Expected
    googActualEncBitrate, googTransmitBitrate value begins with the value i set above (4mbps)

  2. what happens instead
    no difference. (same as without calling setRembOnConnect)

(Optional) Possible solution

Info about your environment

About Kurento Media Server

About your Application Server

  • Programming Language: java
  • Kurento Client version: 6.16

About end-user clients

  • Device(s): pc
  • OS(es): windows 10
  • Browser(s): chrome 92
@github-actions
Copy link

github-actions bot commented Sep 2, 2021

Hello @thekwonster! 👋 we're sorry you found a bug... so first of all, thank you very much for reporting it.

To know about progress, check in Triage. All issues are considered Backlog Candidates until work priorities align and the issue is selected for development. It will then become part of our official Backlog.

@j1elo j1elo added this to Backlog Candidates in Triage Sep 2, 2021
@j1elo
Copy link
Member

j1elo commented Sep 3, 2021

Please check the Debug Logging page in order to enable the REMB debug category.

In essence, you can set the environment var like this:

export GST_DEBUG="2,KurentoBaseRtpEndpointImpl:5,basertpendpoint:5,kmsremb:5"

Then attach the logs or upload them somewhere and share the link here; we're especially interested in these messages:

  • BaseRtpEndpoint:

    New 'remb-on-connect' value NNN
    
  • basertpendpoint: one of

    Set to already created RembLocal and RembRemote
    Set to aux structure
    
  • KmsRemb:

    Recv REMB, not probed yet! Use 'rembOnConnect': NNN
    

@thekwonster
Copy link
Author

thekwonster commented Sep 6, 2021

2021-09-06T031613.00000.pid1.log

The log file is attached. The below messages were found in the log file.
The test result was same. Which means the encoding bitrate starts from around 0.1~0.3 Mbps not 4Mbps.

2021-09-06T03:16:13,215657 1 0x00007f080b22f700 debug KurentoBaseRtpEndpointImpl BaseRtpEndpointImpl.cpp:370 setRembParams() New 'remb-on-connect' value 4000000
2021-09-06T03:16:13,215891 1 0x00007f080b22f700 debug basertpendpoint kmsbasertpendpoint.c:2429 kms_base_rtp_endpoint_set_property() Set to aux structure

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
Triage
Backlog Candidates
Development

No branches or pull requests

2 participants