Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix vp9 temporal layers count in flexibale mode #2198

Conversation

splinehip
Copy link

In flexible mode (chrome version 125+) if we have only one temporal layer with id=0, received client rendering video stream in 8 fps only.

@jitsi-jenkins
Copy link

Hi, thanks for your contribution!
If you haven't already done so, could you please make sure you sign our CLA (https://jitsi.org/icla for individuals and https://jitsi.org/ccla for corporations)? We would unfortunately be unable to merge your patch unless we have that piece :(.

@splinehip
Copy link
Author

splinehip commented Jul 22, 2024

@splinehip splinehip force-pushed the fix-vp9-temporal-layers-in-flexibale-mode branch from bcc93cd to 8a00678 Compare July 22, 2024 12:59
@splinehip splinehip changed the title fix vp9 temporal layers count in flexibal mode fix vp9 temporal layers count in flexibale mode Jul 22, 2024
@splinehip splinehip force-pushed the fix-vp9-temporal-layers-in-flexibale-mode branch from 8a00678 to afd485f Compare July 22, 2024 13:08
@JonathanLennox
Copy link
Member

Can you describe how the browser is set to generate this encoding mode, so I can test? Thanks!

@splinehip
Copy link
Author

Before join to conference set this config in browser debug console: config.videoQuality = ['VP9']

@jallamsetty1
Copy link
Member

Before join to conference set this config in browser debug console: config.videoQuality = ['VP9']

@splinehip How are you forcing the browser to send only one temporal layer? We always configure 3 temporal layers for VP9 both in simulcast and full SVC mode.

@jallamsetty1
Copy link
Member

jallamsetty1 commented Jul 22, 2024

Even when I force the client to encode a single temporal layer by setting L1T1 (currently not configurable through config.js settings) as the scalability mode, I see 30 fps being sent and received for a JVB call.

Screenshot 2024-07-22 at 3 37 54 PM
Screenshot 2024-07-22 at 3 38 27 PM

@sunduev
Copy link

sunduev commented Jul 23, 2024

@jallamsetty1 @JonathanLennox Hi! Please try Chromium 125+ (which enabled flexible mode for encoding by default)
And you have to use vp9 for encoding, no more configuration should be required (if L3T3 is used by default, L1T1 probably might work as it is), then you should watch for low fps (around 7-9) on viewers side.

@splinehip
Copy link
Author

splinehip commented Jul 23, 2024

Before join to conference set this config in browser debug console: config.videoQuality = ['VP9']

@splinehip How are you forcing the browser to send only one temporal layer? We always configure 3 temporal layers for VP9 both in simulcast and full SVC mode.

Just use chrome 125+ and set VP9 codec by client side:
Частота кадров == Frame rate
Снимок экрана 2024-07-23 в 10 24 49

@splinehip
Copy link
Author

Снимок экрана 2024-07-23 в 11 47 56

@jallamsetty1
Copy link
Member

@splinehip Thanks, I am seeing it on meet.jit.si now but not on my lonely.

@splinehip
Copy link
Author

splinehip commented Jul 23, 2024

@splinehip Thanks, I am seeing it on meet.jit.si now but not on my lonely.

Could you try on yours site use 3 participants in conference, when only 2 participants - clients work through p2p not bridge?
Or set boths clients: config.p2p = false

@jallamsetty1
Copy link
Member

@splinehip Thanks, I am seeing it on meet.jit.si now but not on my lonely.

Could you try on yours site use 3 participants in conference, when only 2 participants - clients work through p2p not bridge? Or set boths clients: config.p2p = false

Yes, I do understand that. My lonely was running a bridge version which is slightly older than the current meet.jit.si version.

@splinehip
Copy link
Author

@splinehip Thanks, I am seeing it on meet.jit.si now but not on my lonely.

Could you try on yours site use 3 participants in conference, when only 2 participants - clients work through p2p not bridge? Or set boths clients: config.p2p = false

Yes, I do understand that. My lonely was running a bridge version which is slightly older than the current meet.jit.si version.

It is reproduced on next version to:
docker-jitsi-meet:

  • master
  • stable-9584-1
  • stable-9584

@Toumassa
Copy link

Hello, i can confirm this issue exists with VP9 falling to 7-8 fps.
Can AV1 be concerned with flexible mode ?
I thought setting videoQuality.vp9.useKSVC and / or videoQuality.vp9.scalabilityModeEnabled to false should correct this issue ? But actually it doesn't ...

@jallamsetty1
Copy link
Member

Hello, i can confirm this issue exists with VP9 falling to 7-8 fps. Can AV1 be concerned with flexible mode ? I thought setting videoQuality.vp9.useKSVC and / or videoQuality.vp9.scalabilityModeEnabled to false should correct this issue ? But actually it doesn't ...

This shouldn't affect AV1. Setting videoQuality.vp9.scalabilityModeEnabled=false will force the client to use the old K-SVC mode for VP9 but it is still VP9.

@Toumassa
Copy link

This shouldn't affect AV1. Setting videoQuality.vp9.scalabilityModeEnabled=false will force the client to use the old K-SVC mode for VP9 but it is still VP9.

I've set disableSimulcast to true and i get 30fps. However no scalability between filmstrip and large video. Can be a workaround waiting this to be merged.

@JonathanLennox
Copy link
Member

I have a more general solution (that doesn't hard-code the assumption that there will be three temporal layers) at #2199. Would you be able to test this?

@splinehip
Copy link
Author

I have a more general solution (that doesn't hard-code the assumption that there will be three temporal layers) at #2199. Would you be able to test this?

@JonathanLennox Hi! I tested your fix - work fine, thank you!

@JonathanLennox
Copy link
Member

@splinehip - I pushed some more changes to #2199 which should make it more efficient on the server-side - can you test again so we can be sure? Thanks!

@splinehip
Copy link
Author

@JonathanLennox HI! Tested, work fine. Thanks!

@splinehip splinehip closed this Jul 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants