Bad video quality on Android

Hi. We are having issues with quality of video on android devices.
We’re using latest mobile Jitsi Meet SDK version 3.10.2.

On server we have following setup:

  • docker image that was latest on date 7.11.21
    (including:
    ii jitsi-meet-prosody 1.0.4614-1 all Prosody configuration for Jitsi Meet
    ii jitsi-meet-tokens 1.0.4614-1 all Prosody token authentication plugin for Jitsi Meet
    ii jitsi-meet-web 1.0.4614-1 all WebRTC JavaScript video conferences
    ii jitsi-videobridge2 2.1-415-gbc53883e-1 all WebRTC compatible Selective Forwarding Unit
    (SFU))
  • Default resolution is 720p
  • no resolution constraints defined

Communication always take place between web and android/iOS client.
Video quality is almost always pretty bad in both directions. Except when using iOS.
On iOS it is quite good.

When checking video info on android we are getting approximately these stats (may vary):
Connection: Good
BitRate: Down 132 up 603 kbps
Packet Loss: down 0% up 0%
Bit rate: 360x640@16fps

Is there a way to improve video quality using mobile SDK. We’ve tried following:

  • set feature flag on “resolution” to 720 on default converence options

val defaultOptions = JitsiMeetConferenceOptions.Builder()
.setServerURL(conferenceUrl)
.setAudioMuted(false)
.setVideoMuted(false)
.setAudioOnly(false)
.setFeatureFlag(“resolution”, 720)
.setWelcomePageEnabled(false)
.build()

JitsiMeet.setDefaultConferenceOptions(defaultOptions)

Also we have tested with “HD_RESOLUTION” instead of 720 (.setFeatureFlag(“resolution”, “HD_RESOLUTION”)) , there is an info about this
here: jitsi_meet - Dart API docs

None of them are working, and we’re getting the same results as before.

Also, when communicating web → mobile (portarit mode), web receives image in portrait mode and it is shown with vertical blurred stripes on each sides.
Android receives malformed image, cut off from sides. It does not scale properly landscape video sent from web to portrait mode on mobile

Thanks for your help

I can’t give you much help because I don’t use much Android myself, but since nobody answers I’ll just point that there is no way that you can get 1280x720 with this bandwidth.
Now, low bandwidth can be explained because the processor is too weak to push so much data. You say that on IOS it works better, but Apple has a different appreciation of ‘low-end’ than Android phone shops so I’d expect that your Apple devices are more powerful. If you use VP9, counter to intuition, you could get lower resolution because VP9 is more complex and a limited processor will compress less video. That’s why some are still sticking to H264 (there is hardware compression on even old phones)

There are other possibilities (well, a bug somewhere in old Jitsi or SDK code, or just plain crappy network), but I won’t comment on that.

We will try it. Thank you.