0

我以前使用 安装了 Jicofo sudo apt install jitsi-meet,但现在我想更改一些东西,所以我尝试从源代码编译 Jicofo。

我做到了mvn clean compile package -DskipTests,它创建了一个 JAR 文件。然后我用这个文件替换 /usr/share/jicofo/jicofo.jar 并运行sudo service jicofo restart,但是现在当我尝试在浏览器中加入房间时,视频永远不会连接。我的 jicofo.log 文件中出现错误:

Jicofo 2017-09-18 04:58:59.972 INFO: [36] org.jitsi.impl.protocol.xmpp.OperationSetJingleImpl.processPacket().148 Error while handling incoming Jingle packet:
java.lang.NoSuchMethodError: net.java.sip.communicator.impl.protocol.jabber.extensions.colibri.SourcePacketExtension.hasSSRC()Z
        at org.jitsi.jicofo.SSRCValidator.tryAddSourcesAndGroups(SSRCValidator.java:132)
        at org.jitsi.jicofo.Participant.addSourcesAndGroupsFromContent(Participant.java:541)
        at org.jitsi.jicofo.JitsiMeetConferenceImpl.onSessionAccept(JitsiMeetConferenceImpl.java:1174)
        at org.jitsi.protocol.xmpp.AbstractOperationSetJingle.processJingleIQ(AbstractOperationSetJingle.java:297)
        at org.jitsi.impl.protocol.xmpp.OperationSetJingleImpl.processPacket(OperationSetJingleImpl.java:135)
        at org.jivesoftware.smack.Connection$ListenerWrapper.notifyListener(Connection.java:867)
        at org.jivesoftware.smack.PacketReader$ListenerNotification.run(PacketReader.java:457)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)

为了确保我没有遇到 XY 问题,我将快速解释一些背景知识。我正在尝试让 Jitsi Meet 在 Raspberry Pi 上运行,但 Raspberry Pi 仅支持 h264 的硬件加速,而不支持 VP8。当我在 Jitsi Meet 的设置中设置 preferH264 时,它可以工作,但我不能再在 Google Chrome 中使用 Jitsi。看来这可能是由区分大小写的问题引起的,所以我正在尝试应用此处找到的补丁(https://github.com/jitsi/jitsi-meet/issues/877#issuecomment-269054479)。这就是我尝试从源代码编译的原因。

我没有使用 Java 的经验,所以如果我遗漏了一些明显的东西,我深表歉意。

4

1 回答 1

0

我从 Jitsi 用户邮件列表中获得了一些帮助。问题是过时的依赖项。解决方案是使用以下行来构建它:

mvn -U clean compile package -DskipTests -Dassembly.skipAssembly=false

然后解压生成的 zip 文件并将所有内容复制到 /usr/share/jicofo 中。

于 2017-09-19T01:43:20.280 回答