jamulus是一个实现远程低延迟语音的工具。jam是指几种乐器即兴合奏,可以是表演,也可以是乐手之间自娱自乐,jamulus自然是一个以这个为目的的工具。

github,官网

编译

首先看到大大的 Jamulus.pro 就知道,这玩意是个 qmake 项目。

gentoo明面上是调不到qmake,结果找半天才发现在 /usr/lib64/qt/bin 这个地方

qmake 然后 make 就完事了

运行

./Jamulus 就行了,会运行一个小小的客户端。

./Jamulus -s 会运行服务器。

运行依赖于jack系统,所以需要jack服务运行。

这客户端太小了,只有有限的几个功能。服务器稍微好点,好不到哪去。

代码

整体只有5000行头文件和15000行代码,挺小的,包括了服务器和qt客户端,好像这个没什么复杂的。

所有代码都在 src 文件夹里。 libs 里放着两个三方库 opus 和 ~oboe~。

这个软件真的就光录音和转发,其他功能特别有限,和c++实现有关。一个文件是一个系统的adapter,基本就是闭着眼睛用,设置也挺少的,而且很傻瓜。

音频输入,音频流转发,服务发现,房间系统,界面和多语言。基本就这几样了。