Flagship VP9 Support: Notes and Discussion

@tafkaz
The “preferredCodec” line has a trailing comma ‘,’, which violates the JSON format.

Delete the trailing comma and it should be working fine…

Hi,
no that didn’t help:

// Provides a way to set the video codec preference on the p2p connection. Acceptable
// codec values are 'VP8', 'VP9' and 'H264'.
preferredCodec: 'VP9'

same grey login screen.

Also i think we need the trailing comma, as this is exactly the same here:

videoQuality: {
preferredCodec: ‘VP9’,

any more clues?
thanks
Sascha

@tafkaz It needs to be enabled inside the p2p block; you’re enabling it outside.

p2p: {
enabled: true,
preferredCodec: ‘VP9’,
},

Hi @Freddie

as i thought i had everything in the p2p block:

p2p: {
    enabled: true,
    useStunTurn: true,
    stunServers: [
        { urls: 'stun.1und1.de:3478' },
        { urls: 'stun.t-online.de:3478' },
        { urls: 'stun.nextcloud.com:443' },
    ]
   preferredCodec: 'VP9',
},

i was not sure.
But yes…actually changing it to:

p2p: {
    enabled: true,
    preferredCodec: 'VP9',
    useStunTurn: true,
    stunServers: [
        { urls: 'stun.1und1.de:3478' },
        { urls: 'stun.t-online.de:3478' },
        { urls: 'stun.nextcloud.com:443' },
    ]
},

did the job, thanks a ton!

cheers Sascha

Last issue then:

I hoped for a relief, after getting VP9 for p2p running, but unfortunately, this problem persists.
Is this a known bug in the latest Android App Version maybe, i can’t find anything about it.

thanks
Sascha

We have not tested VP9 support on mobile yet.

@saghul i see, but:

  • Shouldn’t it fall back to VP8 if it fails with VP9, and
  • Why would the penultimate version (20.6.2) work splendidly (with VP9) then?

The latest App version would simply not let you in at all here.

thanks
Sascha

Hard to tell without any logs. adb logact would help here.

Hi @saghul
must admit, i am not very familiar with adb.
I tried with “Android Terminal Emulator” by Jack Palevich, opened it and typed “logcat”.
the log starts to run.
Now i try to enter a room via the jitsi app, but although i get a time out message after around 30 seconds, the logs don’t show anything in the meantime.
It looks like logcat only responds to my selections on the display, not on anything in the app.
If you maybe could point me to some parameters for that command or tell me what else i could try, i would be very keen to send you some logs.

thanks
Sascha

The simplest is to use this: GitHub - JakeWharton/pidcat: Colored logcat script which only shows log entries for a specific application package. and run it as follows: pidcat org.jitsi.meet

That will filter the output to just Jitsi Meet.

Hi @saghul and others,

problem solved here:

Sorry, but since we have a historically grown instance, we seemed to have missed that one.
Thanks for your help
Sascha

Good to hear!

In addition to an extra comma after preferredCodec, you lack one after the stun array.

More precisely:
The bandwidth estimation seems to be broken (for all codecs) when you disable COLIBRI_WEBSOCKET. Don’t do this!
I had done so, because I could not possibly get XMPP_WEBSOCKET to work.
The good news is that those two are truely independent and COLIBRI_WEBSOCKET seems painless.
See Broken bandwidth estimation in stable-5765-1 (websockets disabled) - #3 by garloff .

hm, don’t get you, the only thing i could think of, is, that i am not lacking a comma after stun, but maybe could have one too many:

p2p: {
    enabled: true,
    preferredCodec: 'VP9',
    useStunTurn: true,
    stunServers: [
        { urls: 'stun.1und1.de:3478' },
        { urls: 'stun.t-online.de:3478' },
        { urls: 'stun.nextcloud.com:443' }**,**
    ]
},

If i have a look at the example at /usr/share/jitsi-meet-web-config/config.js it looks as if the comma after the last stun url is not needed?
Or am i missing something now?

The bandwidth estimation seems to be broken (for all codecs) when you disable COLIBRI_WEBSOCKET. Don’t do this!

Now where would i disable COLIBRI_WEBSOCKET then?
Haven’t really found where this could be done.
thanks
Sascha

It was the missing comma after stunServers (with preferredCodec on the last line) that broke it. It should be fixed in the master now.

The posted config reply 200 (Flagship VP9 Support: Notes and Discussion - #200 by tafkaz) lacked a comma after the closing bracket behind stunServers, while it had one too much after the preferredCodec. Most JSON parsers do not ignore the extra commas, so that would result in a parse error. The lacking one is certainly resulting in an error.

Just enabled VP9 and it’s all looking spankingly good! :muscle:t4:

One issue I’ve noticed is that desktopSharingFrameRate min/max config no longer takes effect, and screenshare frame rate does not budge from 5 even if I’m sharing a teeny tiny application window.

Works as expected if I disable VP9 and change nothing else.

Am I missing something?

For testing purposes I’ve set:

    desktopSharingFrameRate: {
        min: 10,
        max: 20
    },

and I’ve tried with capScreenshareBitrate at both 0 and 1 with not effect.

Installed from scratch using jitsi-meet=2.0.5765-1.

hi,

I just enable VP9 by changing config.js (p2p and videoQuality parts). I see vp9 is prefered successfully. :smiley:

However when i join conference with safari, i can not see anybody. :frowning:

I read before that if any participants do not support vp9, all participants fall back to vp8. However, it did not happened for me?

do i missing any config? is Just config.js changes is not sufficient?

I use stable 5390 version of jitsi-meet.

Thank you

Is preferredCodec set to VP9 under videoQuality in config.js ? Is V8 and Vp9 enabled in jicofo.conf?

// Specify the settings for video quality optimizations on the client.
            videoQuality: {
            //    // Provides a way to prevent a video codec from being negotiated on the JVB connection. The codec specified
            //    // here will be removed from the list of codecs present in the SDP answer generated by the client. If the
            //    // same codec is specified for both the disabled and preferred option, the disable settings will prevail.
            //    // Note that 'VP8' cannot be disabled since it's a mandatory codec, the setting will be ignored in this case.
            //    disabledCodec: 'H264',
            //
            //    // Provides a way to set a preferred video codec for the JVB connection. If 'H264' is specified here,
            //    // simulcast will be automatically disabled since JVB doesn't support H264 simulcast yet. This will only
            //    // rearrange the the preference order of the codecs in the SDP answer generated by the browser only if the
            //    // preferred codec specified here is present. Please ensure that the JVB offers the specified codec for this
            //    // to take effect.
            preferredCodec: 'VP9',
            //
            //    // Provides a way to configure the maximum bitrates that will be enforced on the simulcast streams for
            //    // video tracks. The keys in the object represent the type of the stream (LD, SD or HD) and the values
            //    // are the max.bitrates to be set on that particular type of stream. The actual send may vary based on
            //    // the available bandwidth calculated by the browser, but it will be capped by the values specified here.
            //    // This is currently not implemented on app based clients on mobile.
                maxBitratesVideo: {
                    low: 200000,
                    standard: 500000,
                    high: 1500000
                },
            //