最近和伙伴一起调研并试用了 Jamulus,体验丝滑。从此足不出户,就可以一起写段子、Jam 和排练了。
Jamulus 介绍
Jamulus 让您的朋友、乐队或您在网上找到的任何人一起演奏、排练或即兴演奏。用普通宽带连接上提供高品质、低延迟的声音,可以轻松地远程及时地一起演奏。
Jamulus 附带了一个类似 “大厅” 的目录服务器,甚至可以根据流派找到公共服务器,加入并和陌生人一起 jam。
最主要的是,Jamulus 是 GPL 许可的开放软件!怎么会有人不喜欢 self-hosted 的服务呢。
本文主要是介绍私有服务器的搭建方式和体验分享。
服务端搭建
Jamulus 提供了 Windows、Linux、MacOS 的支持。为了保证远距离的朋友每个人都能开心低延迟地 jam,笔者建议搭建公网服务器。
经过笔者试用,随意选择公有云的最低实例机器即可。最重要的是,服务器要距离每个乐手尽量近。
无 GUI 的安装过程主要主要参考 https://jamulus.io/zh-CN/wiki/Running-a-Server。
本文以 Debian/Ubuntu 发行版为例
1 下载脚本
curl https://raw.githubusercontent.com/jamulussoftware/jamulus/main/linux/setup_repo.sh > setup_repo.sh
2 给与可执行权限
chmod +x setup_repo.sh
3 运行脚本安装服务器
sudo ./setup_repo.sh && sudo apt install jamulus-headless
4 启用服务
sudo systemctl enable jamulus-headless
5 编辑启动选项
sudo systemctl edit --full jamulus-headless
完整的启动命令参考
Jamulus 启动参数
笔者的启动参数如下
root@iZbp16e6r7t8sikqsh1trpZ:~# cat /etc/systemd/system/jamulus-headless.service
[Unit]
Description=Jamulus headless server
After=network.target
StartLimitIntervalSec=0
[Service]
Type=simple
User=jamulus
Group=nogroup
NoNewPrivileges=true
ProtectSystem=true
ProtectHome=true
Nice=-20
IOSchedulingClass=realtime
IOSchedulingPriority=0
#### Change this to publish this server, set genre, location and other parameters.
#### See https://jamulus.io/wiki/Command-Line-Options ####
ExecStart=/bin/sh -c 'exec /usr/bin/jamulus-headless -s -n -f -T'
Restart=on-failure
RestartSec=30
StandardOutput=journal
StandardError=inherit
SyslogIdentifier=jamulus
[Install]
WantedBy=multi-user.target
备注: 在默认基础上增加了
-F
启动小型网络缓冲区-T
启用多线程支持
有兴趣的读者可以研究下,甚至可以自动录音、配置 html 格式的欢迎公告等。
注意:如果你使用的是公有云,记得开放 UDP 端口 22124
。
6 重新加载 systemd 并启动服务器
sudo systemctl daemon-reload && sudo systemctl restart jamulus-headless
接入设备
笔者使用的是 Windows 平台客户端。理论上本地的 asio 设备都可以接入。需要注意的是,笔者发现只能接入 48Khz
采样率的 asio 驱动。强行 44.1Khz
转 48Khz
可能导致缓冲区变大,声音延迟。
如果你有附带 asio 驱动的声卡是最好不过的。否则可能需要 asio4all 或者 FlexASIO 等通用 asio 设备。
笔者使用的是 Focusrite 2i2 Gen3,是完全没有问题的。
Focusrite 的声卡在海鲜市场上保有量巨大,价格非常实惠。
实际体验
Jamulus 运行的非常丝滑。为了延迟,音质码率可能不会太高。笔者和服务器的 Ping 为 30ms,在 Jamulus 监听自己声音延迟为 50ms,是完全可以接受的,几乎感受不到延迟。
笔者的开放了位于杭州的公益服务器给大家使用,希望您和伙伴能一起玩得开心。