这个项目能做什么

polyemesis 是一款自托管的转播服务器,其主打差异化功能是针对每个目的地的多声道音频路由。单个上传流会被分发到操作员配置的任意数量的目的地,且每个目的地都会接收一个由编码器发送的音频轨道汇总而成的独立立体声混音。视频则被原样复制,无需重新编码。 它针对的使用场景是:一个具有分离音频轨道的 OBS 会话,其中轨道一包含版权音乐的完整混音,轨道二是纯净馈送,轨道三是麦克风。由于直播平台通常只接受一对立体声,因此必须使用单一混音服务于所有人,或者需要多个编码器和上传流。polyemesis 允许用户为每个目的地选择哪些轨道被汇总到该目的地的立体声馈送中。路由配置可以通过“每轨道复选框”的简单模式,或具有单格增益的“通道到输出”混音矩阵来实现。 输入端支持 SRT 多轨道(描述为最多 32 个 AAC 轨道,通过单个端口上的 token 寻址),并提供 RTMP 作为单轨道备选方案(通过流密钥在单个端口上寻址)。软件为每个轨道的每个通道提供实时音频电平表,旨在在直播前验证纯净轨道。视频渲染版本可以在需要较低层级的目的地之间共享:一个编码版本采用引用计数,因此未使用的层级不产生成本,且渲染仅重新编码视频,保留每个目的地的音频路由。渲染版本上的叠加层包括图像水印和一行烧录文本,其位置和大小按帧的百分比设定。 目的地可以是 RTMP(S)、SRT 或本地文件,每个目的地均可独立启动,并支持自动重连和指数退避。软件提供 YouTube、Twitch、Facebook 和 Kick 的平台登录,在 API 允许的情况下支持聊天和元数据推送,并支持跨这四个平台的聊天管理(包括删除、封禁、禁言),以及一个汇总单个用户跨平台消息的管理卡片。其他操作功能包括:带有备用输入的故障转移、生成的静态画面和源选择器;Prometheus 指标和带有 Webhook 交付的进程内告警规则;流和目的地状态转换时的签名生命周期 Webhook;带有 Home Assistant 发现功能的保留 MQTT 遥测;以及通过 Let's Encrypt 或本地 CA 实现的自配置 TLS。后期制作组涵盖了带有保留机制的分段多轨道录制、作业队列、支持全文搜索的 Whisper 转录以及剪辑器。许多设置可以在不中断流的情况下生效,保存操作会指示哪些设置已生效。 该软件以单个静态二进制文件形式交付,内置 UI,采用纯 Go 版本的 SQLite 且无 cgo,要求 FFmpeg 6.0 或更高版本(且需构建 libsrt)。如果 FFmpeg 版本低于 6.0,软件将拒绝启动;如果缺失 SRT,则会发出警告。官方发布了 Docker 镜像。从克隆版本构建时,需要 Go 1.27.0+、Node 20.19+/22.12+ 和 FFmpeg。 README 明确列出了限制:该项目处于预发布阶段,只有一名维护者且不承诺兼容性;RTMP 多轨道并非主运行路径;没有每源端口;仅支持单个用户,没有角色或每目的地权限;Instagram Live 被列为不支持;源视频的适用性由操作员负责。平台成熟度有所不同,Linux 和 Docker 被描述为主平台,Windows 则未经充分验证(包括一个关于服务停止时录制截断的已知未解决缺陷)。对比表将其与 datarhei/Restreamer 和 restream.io 进行比较,README 指出,在不需要每平台不同音频的情况下,Restreamer 更为成熟。许可协议为 MIT。