Videoquality always limited to 180x320

I’m currently running Jitsi in a docker container using version stable-4857 (cannot use stable-5076 for some reasons, maybe someone can help here, too? GitIssue).

My current setup always limits the clients to stream their video with a resolution of 180x320 no matter what I do - it just looks horrible. After finding this threads here Low Image Quality I tried disabling simulcast and than it worked! But I once had a setup where simulcast wasn’t disabled and it correctly negotiated a good resultion! Any idea where something could be configured wrong?

Do you see any errors in the JS console? It could be due to the bridge channel not being operational.

SOLUTION: I was running some kind of “hybrid configuration” after upgrading to 5076 and reverting to 4857. My client config still had config.openBridgeChannel = 'websocket'; and so it tried to use websocket that surely failed. Eventhough there was no console output with errors, removing this line worker for me with version 4857.

For anyone finding this thread with version >= 5076 - this is no solution! Websocket has become default communication and should be used!

I can’t see any errors (but that e2eping not working, but it never did?). Here is my console output:

Logger.js:154 2020-10-14T11:16:10.519Z [modules/xmpp/SDPUtil.js] <Object.candidateToJingle>: not translating “ufrag” = “ryv2”
Logger.js:154 2020-10-14T11:16:10.519Z [modules/xmpp/SDPUtil.js] <Object.candidateToJingle>: not translating “network-id” = “1”
Logger.js:154 2020-10-14T11:16:10.519Z [modules/xmpp/SDPUtil.js] <Object.candidateToJingle>: not translating “network-cost” = “50”
Logger.js:154 2020-10-14T11:16:10.519Z [modules/xmpp/SDPUtil.js] <Object.candidateToJingle>: not translating “ufrag” = “ryv2”
Logger.js:154 2020-10-14T11:16:10.520Z [modules/xmpp/SDPUtil.js] <Object.candidateToJingle>: not translating “network-id” = “3”
Logger.js:154 2020-10-14T11:16:10.520Z [modules/xmpp/SDPUtil.js] <Object.candidateToJingle>: not translating “ufrag” = “ryv2”
Logger.js:154 2020-10-14T11:16:10.520Z [modules/xmpp/SDPUtil.js] <Object.candidateToJingle>: not translating “network-id” = “2”
Logger.js:154 2020-10-14T11:16:10.520Z [modules/xmpp/SDPUtil.js] <Object.candidateToJingle>: not translating “network-cost” = “10”
Logger.js:154 2020-10-14T11:16:10.677Z [modules/xmpp/JingleSessionPC.js] <R.setReceiverVideoConstraint>: JingleSessionPC[p2p=false,initiator=false,sid=5l00ia843kq12] setReceiverVideoConstraint - max frame height: 720
Logger.js:154 2020-10-14T11:16:10.678Z [modules/RTC/TraceablePeerConnection.js] <R.setSenderVideoDegradationPreference>: Setting video sender degradation preference on TPC[1,p2p:false] to maintain-framerate
2
Logger.js:154 2020-10-14T11:16:10.679Z [modules/RTC/TraceablePeerConnection.js] <R.setSenderVideoDegradationPreference>: Setting video sender degradation preference on TPC[1,p2p:false] to maintain-framerate
Logger.js:154 2020-10-14T11:16:10.680Z [modules/xmpp/JingleSessionPC.js] <R.setSenderVideoConstraint>: JingleSessionPC[p2p=false,initiator=false,sid=5l00ia843kq12] setSenderVideoConstraint: 720
Logger.js:154 2020-10-14T11:16:10.967Z [modules/xmpp/JingleSessionPC.js] <R.peerconnection.oniceconnectionstatechange>: (TIME) ICE connected P2P? false: 64642.43000000715
Logger.js:154 2020-10-14T11:16:11.340Z [modules/xmpp/strophe.jingle.js] <g.onJingle>: on jingle source-add from testadmin@muc.jitsi.vc-cc.de/focus
Logger.js:154 2020-10-14T11:16:11.349Z [modules/xmpp/JingleSessionPC.js] Processing addRemoteStream
Logger.js:154 2020-10-14T11:16:11.350Z [modules/xmpp/JingleSessionPC.js] ICE connection state: connected
index.js:159 Imploding SIM group: 3406091653 1021087586 2501381987
Logger.js:154 2020-10-14T11:16:11.394Z [modules/RTC/TraceablePeerConnection.js] <R._remoteTrackAdded>: TPC[1,p2p:false] remote track added: ec1efc2b-8984-4c74-9b18-ef66bd3eef46-1 audio
Logger.js:154 2020-10-14T11:16:11.395Z [modules/RTC/TraceablePeerConnection.js] <R._remoteTrackAdded>: TPC[1,p2p:false] associated ssrc a28def09 2124272871
Logger.js:154 2020-10-14T11:16:11.421Z [modules/RTC/TraceablePeerConnection.js] <R._remoteTrackAdded>: TPC[1,p2p:false] remote track added: 463e8e6e-1284-4785-9e1e-f9ac355813ef-1 video
Logger.js:154 2020-10-14T11:16:11.423Z [modules/RTC/TraceablePeerConnection.js] <R._remoteTrackAdded>: TPC[1,p2p:false] associated ssrc a28def09 3406091653
Logger.js:154 2020-10-14T11:16:11.456Z [modules/UI/videolayout/LargeVideoManager.js] hover in a28def09
Logger.js:154 2020-10-14T11:16:11.528Z [modules/xmpp/SdpConsistency.js] <o.makeVideoPrimarySsrcsConsistent>: TPC[1,p2p:false] sdp-consistency replacing new ssrc1774444235 with cached 1774444235
JitsiRemoteTrack.js:212 (TIME) Render audio: 65229.38499995507
JitsiRemoteTrack.js:231 (TIME) TTFM audio: 6142.764999880455
Logger.js:154 2020-10-14T11:16:11.572Z [modules/xmpp/JingleSessionPC.js] addRemoteStream - OK, SDPs: ss
Logger.js:154 2020-10-14T11:16:11.574Z [modules/xmpp/JingleSessionPC.js] <R.notifyMySSRCUpdate>: removal not necessary
Logger.js:154 2020-10-14T11:16:11.575Z [modules/xmpp/JingleSessionPC.js] <R.notifyMySSRCUpdate>: addition not necessary
Logger.js:154 2020-10-14T11:16:11.589Z [modules/UI/videolayout/VideoLayout.js] <Object.remoteVideoActive>: a28def09 video is now active
JitsiRemoteTrack.js:212 (TIME) Render video: 65267.94000004884
JitsiRemoteTrack.js:231 (TIME) TTFM video: 6181.319999974221
Logger.js:154 2020-10-14T11:16:11.765Z [modules/UI/videolayout/LargeVideoManager.js] hover in a28def09
Logger.js:154 2020-10-14T11:16:19.797Z [JitsiConference.js] <u.sendMessage>: Failed to send E2E ping request or response. undefined
Logger.js:154 2020-10-14T11:16:29.796Z [JitsiConference.js] <u.sendMessage>: Failed to send E2E ping request or response. undefined
Logger.js:154 2020-10-14T11:16:39.796Z [JitsiConference.js] <u.sendMessage>: Failed to send E2E ping request or response. undefined
Logger.js:154 2020-10-14T11:16:49.796Z [JitsiConference.js] <u.sendMessage>: Failed to send E2E ping request or response. undefined
Logger.js:154 2020-10-14T11:16:59.797Z [JitsiConference.js] <u.sendMessage>: Failed to send E2E ping request or response. undefined
Logger.js:154 2020-10-14T11:17:09.796Z [JitsiConference.js] <u.sendMessage>: Failed to send E2E ping request or response. undefined
Logger.js:154

BUT: Bitrate and loss is shown as “N/A” for other participants. I only see their resolution (180x320).

Thank you for your help! :slight_smile:

EDIT: Found the issue! Don’t put too much effort in it, will write the change immediatelly.

I have the same problem. Really strange … you have the solution?

What version are you using? Docker or native setup? For me it was uncommenting config.openBridgeChannel but as I told: that is not a real solution!

My problem in fact was, that communication via WebSocket doesn’t seam to work - or doesn’t work at all?

I’m unsing the latest docker version - set up according to the specifications on the homepage.

In which file did you uncomment the openBridgeChannel? (i will install an older version)

This doesn’t work for the latest version. Onlything you could do is disabling simulcast (check the settings, easy to find) but that just disabled the ability of scaling at all! Guess you have a problem with your WebSocket but disabling simulcast should help for now.

Ah okay, but how do I turn off simulcast? It’s in the config.js file, right? If I change this file, Jitsi creates a new file the next time I start Docker-Jits and overwrites this change.

Welcome to my life! :slight_smile: Remember me saying:

cannot use stable-5076 for some reasons

That’s why: https://github.com/jitsi/docker-jitsi-meet/issues/773

This is the “container native” way of doing things

I need to wait for all env. variables being configurable - what probably won’t happen too soon since there are thousands! And you need to rely on the developers know what property to use in what case (https://github.com/jitsi/docker-jitsi-meet/issues/780).

Guess the best is to edit the files that gets copied on each boot so you are able to make your changes persistent. Mount it from outside the container.

I guess the best would be jitsi to support EnvVariables by default: Is variable set use it, else use config. That would be a solution. Rewriting the config on boot is a horrible workaround in my opinion.

EDIT: Feel lucky! There is a property for simulcast already: ENABLE_SIMULCAST

And I am still hoping for help here:

Separate post, since only two links per post.

Maybe you should check this topic, too: URGENT - Low image quality after update