Docker 7439 jitsi-videobridge deployment problem

  • I found that the JitSI-media-Transform project was updated to JVB. The branch of my JVB project is Stable/JitSI-Meet_7439
vagrant@m2:~/ws/meet-build-workspace/github.com/jitsi-videobridge$ docker ps -a
CONTAINER ID   IMAGE                       COMMAND   CREATED          STATUS          PORTS                                                NAMES
b9e4e75a18b7   jitsi/jvb:stable-7439       "/init"   37 minutes ago   Up 37 minutes   127.0.0.1:8080->8080/tcp, 0.0.0.0:10000->10000/udp   docker-jitsi-meet-stable_jvb_1
43e72375255d   jitsi/jicofo:stable-7439    "/init"   5 hours ago      Up 4 hours                                                           docker-jitsi-meet-stable_jicofo_1
510d91694a4a   jitsi/web:stable-7439       "/init"   2 weeks ago      Up 4 hours      0.0.0.0:443->443/tcp, 0.0.0.0:18000->80/tcp          docker-jitsi-meet-stable_web_1
4e60bc90b9bf   jitsi/prosody:stable-7439   "/init"   2 weeks ago      Up 4 hours      5222/tcp, 5280/tcp, 5347/tcp                         docker-jitsi-meet-stable_prosody_1

My steps:

  • 1 . build jvb.
    mvn install -Dmaven.test.skip=true -Dspotbugs.skip=true -o

    1. modify the docker-compose.yaml file.
jvb: 
    volumes:
        - ${CONFIG}/jvb:/config:Z
        - ${CONFIG}/jvb/defaults/jvb.conf:/defaults/jvb.conf
        - /home/vagrant/ws/meet-build-workspace/github.com/jitsi-videobridge/jvb/target/jitsi-videobridge-2.1-SNAPSHOT.jar:/usr/share/jitsi-videobridge/jitsi-videobridge.jar
        - /home/vagrant/ws/meet-build-workspace/github.com/jitsi-videobridge/rtp/target/rtp-2.1-SNAPSHOT.jar:/usr/share/jitsi-videobridge/lib/rtp-2.2-9-g8cded16e.jar
        - /home/vagrant/ws/meet-build-workspace/github.com/jitsi-videobridge/jitsi-media-transform/target/jitsi-media-transform-2.1-SNAPSHOT.jar:/usr/share/jitsi-videobridge/lib/jitsi-media-transform-2    .2-9-g8cded16e.jar

But:

An error message is displayed when a second participant joins.

jvb log:

{"log":"JVB 2022-09-19 14:11:17.281 WARNING: [50] [confId=46003d6fb4565750 conf_name=800800@muc.meet.jitsi] Conference.lambda$new$0#265: Failed to handle colibri request: \n","stream":"stderr","time":"2022-09-19T14:11:17.282059408Z"}
{"log":"java.lang.NoSuchMethodError: 'java.util.List java.util.stream.Stream.toList()'\n","stream":"stderr","time":"2022-09-19T14:11:17.282083172Z"}
{"log":"\u0009at org.jitsi.nlj.transform.node.DemuxerNode.getChildren(Node.kt:518)\n","stream":"stderr","time":"2022-09-19T14:11:17.282085427Z"}
{"log":"\u0009at org.jitsi.nlj.transform.NodeVisitor.visit(NodeVisitor.kt:27)\n","stream":"stderr","time":"2022-09-19T14:11:17.282087121Z"}
{"log":"\u0009at org.jitsi.nlj.transform.NodeVisitor.visit(NodeVisitor.kt:27)\n","stream":"stderr","time":"2022-09-19T14:11:17.282088684Z"}
{"log":"\u0009at org.jitsi.nlj.RtpReceiverImpl.handleEvent(RtpReceiverImpl.kt:305)\n","stream":"stderr","time":"2022-09-19T14:11:17.282090169Z"}
{"log":"\u0009at org.jitsi.nlj.Transceiver.setLocalSsrc(Transceiver.kt:210)\n","stream":"stderr","time":"2022-09-19T14:11:17.282091672Z"}
{"log":"\u0009at org.jitsi.videobridge.Endpoint.\u003cinit\u003e(Endpoint.kt:271)\n","stream":"stderr","time":"2022-09-19T14:11:17.28209309Z"}
{"log":"\u0009at org.jitsi.videobridge.Endpoint.\u003cinit\u003e(Endpoint.kt:100)\n","stream":"stderr","time":"2022-09-19T14:11:17.282094714Z"}
{"log":"\u0009at org.jitsi.videobridge.Endpoint.\u003cinit\u003e(Endpoint.kt)\n","stream":"stderr","time":"2022-09-19T14:11:17.282096191Z"}
{"log":"\u0009at org.jitsi.videobridge.Conference.createLocalEndpoint(Conference.java:755)\n","stream":"stderr","time":"2022-09-19T14:11:17.282097663Z"}
{"log":"\u0009at org.jitsi.videobridge.colibri2.Colibri2ConferenceHandler.handleColibri2Endpoint(Colibri2ConferenceHandler.kt:175)\n","stream":"stderr","time":"2022-09-19T14:11:17.282099141Z"}
{"log":"\u0009at org.jitsi.videobridge.colibri2.Colibri2ConferenceHandler.handleConferenceModifyIQ(Colibri2ConferenceHandler.kt:74)\n","stream":"stderr","time":"2022-09-19T14:11:17.2821007Z"}
{"log":"\u0009at org.jitsi.videobridge.Conference.lambda$new$0(Conference.java:242)\n","stream":"stderr","time":"2022-09-19T14:11:17.282102263Z"}
{"log":"\u0009at org.jitsi.utils.queue.PacketQueue$HandlerAdapter.handleItem(PacketQueue.java:416)\n","stream":"stderr","time":"2022-09-19T14:11:17.282103737Z"}
{"log":"\u0009at org.jitsi.utils.queue.AsyncQueueHandler$1.run(AsyncQueueHandler.java:136)\n","stream":"stderr","time":"2022-09-19T14:11:17.282105209Z"}
{"log":"\u0009at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)\n","stream":"stderr","time":"2022-09-19T14:11:17.282106613Z"}
{"log":"\u0009at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)\n","stream":"stderr","time":"2022-09-19T14:11:17.282108014Z"}
{"log":"\u0009at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)\n","stream":"stderr","time":"2022-09-19T14:11:17.282109393Z"}
{"log":"\u0009at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)\n","stream":"stderr","time":"2022-09-19T14:11:17.282110802Z"}
{"log":"\u0009at java.base/java.lang.Thread.run(Thread.java:829)\n","stream":"stderr","time":"2022-09-19T14:11:17.282112331Z"}
{"log":"JVB 2022-09-19 14:11:17.287 INFO: [50] [confId=46003d6fb4565750 conf_name=800800@muc.meet.jitsi] Colibri2ConferenceHandler.handleConferenceModifyIQ#69: Received request to expire conference.\n","stream":"stderr","time":"2022-09-19T14:11:17.288124528Z"}
{"log":"JVB 2022-09-19 14:11:17.288 INFO: [50] [confId=46003d6fb4565750 conf_name=800800@muc.meet.jitsi] Colibri2ConferenceHandler.handleConferenceModifyIQ#98: All endpoints and relays removed, expiring.\n","stream":"stderr","time":"2022-09-19T14:11:17.288793962Z"}
{"log":"JVB 2022-09-19 14:11:17.290 INFO: [50] [confId=46003d6fb4565750 conf_name=800800@muc.meet.jitsi] Conference.expire#614: Expiring.\n","stream":"stderr","time":"2022-09-19T14:11:17.290252727Z"}
{"log":"JVB 2022-09-19 14:11:17.290 INFO: [50] [confId=46003d6fb4565750 conf_name=800800@muc.meet.jitsi] EndpointConnectionStatusMonitor.stop#65: Stopped\n","stream":"stderr","time":"2022-09-19T14:11:17.290432384Z"}

--------------------------------------------------------------------------------------------------------------

I think it is the version mismatch of jtsi-media-transform, because updating only jitsi-videobridge.jar will not be a problem.

How do I get the correct jitsi-media-transform branch?

I found that the Jitsi-media-Transform project on Github had been removed and could not find the corresponding version.

Please comment.

Why do you need to update just media-transform? Generally speaking those are developed in conjunction, so trying to use the latest version of media-transform in an old JVB won’t work out of the box.

Your best bet is probably to update the whole setup to a release which includes the commit you are interested in.

It was found that H264 always sent the lowest stream when Simulcast was enabled.

Found a piece of code in media-transform, suspected to be related to it.

val primarySSRC: Long
        get() = rtpEncodings[0].primarySSRC

I hope it can adjust itself. Any other suggestions?

Jitsi-media-transform has been migrated to Jitsi-Videobridge. I think that if you compile Jitsi-Videobridge, then the corresponding version of media-transform should also apply.