我以前使用 安装了 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 的经验,所以如果我遗漏了一些明显的东西,我深表歉意。