Beam (技术项目名称 “xObsBeam”)是一个 OBS 插件,用于在 OBS 实例之间传输视频和音频馈送,无论是原始的还是无损或有损压缩的。用于 A/V 传输的 NDI 和 Teleport 的替代方案。Raw 传输和某些压缩选项具有 Alpha 通道和 HDR 支持。
设置输出信号名称:
添加输入信号:
先决条件 OBS 30.0.X+ 64 位 窗户 Linux的偶尔检查,但不是定期检查 在 Ubuntu 20.04 WSL 环境中创建的二进制版本,因此与 glibc 2.31 相关联 概述 此插件将视频和音频源从一个 OBS 实例传输到另一个 OBS 实例。视频源可以是有损压缩或无损 压缩的,甚至可以以原始方式传输,完全不增加压缩 CPU 使用率,但以牺牲极端的带宽需求为代价。 最常见的情况是将音频和视频源从游戏 PC 上的 OBS 传输到流式 PC 上的 OBS,另一种情况是在同一台 PC 上运行两个 OBS 实例,一个用于以更高的质量设置进行录制,然后将视频源传输到第二个 OBS 实例以较低的质量进行流式传输。 它仅为流添加一些面板、警报、动画和其他效果,这些效果在录制中不应该可见(其他实现此目的的解决方案目前似乎并不真正稳定)。 比较 NDI 和 Teleport 都只能使用有损压缩来传输其视频源(尽管公平地说,在视觉上几乎是无损的)。Teleport 使用的 JPEG 压缩在 Beam 中也可用,但具有仅压缩一定百分比的帧的附加选项,从而可以精细控制 CPU 使用率与带宽使用率的权衡。使用它可以实现比 NDI 更低的带宽和 CPU 使用率,但这可能取决于内容和其他因素。 Beam 还提供无损压缩选项,包括一些支持 Alpha 通道和 HDR 的选项,这些选项在 NDI 或 Teleport 中都不可用。此外,只有 Beam 在接收器上提供帧缓冲区,能够补偿网络抖动和数据包丢失,这在某些情况下可能是一个很大的优势,尤其是当尝试在 Wifi 等不稳定网络上使用它时(请注意,仍然不建议使用 Wifi 进行此类传输,应尽可能避免)。(可选)可以配置发送方和接收方之间的固定延迟,这在外部音频或视频源需要与传输的源同步时非常有用。 Beam 基本上旨在提供更多选择、灵活性和稳定性,但是,最终没有解决方案是好是坏的,它只是在 CPU/GPU 使用、带宽需求、质量、易用性和兼容性方面进行了不同的权衡。在给定场景中效果最佳的方法取决于(除其他因素外)特定用例和可用资源。对于任何给定的设置,也很难预测任何解决方案的性能,因此最好对其进行测试并尝试设置。 压缩选项 如果您位于同一台计算机中(Named Pipe connection 设置),则要选择原始传输(根本不选择任何压缩),因为在这种情况下,可用带宽不是问题,您可以节省 CPU 使用率。如果您只传输低分辨率和/或低 FPS 的馈送,或者如果您使用的是 5G 或 10G 网络,也可能是可行的。 如果您使用的是标准 1G 网络,则可能需要使用压缩来控制带宽需求。尝试使用 QOY 保持无损,如果这不起作用,您可以随时选择 JPEG,它大部分在视觉上仍然是无损的。 有关可用压缩选项和原始带宽使用情况的更多详细信息,请参阅此处。 用法 将相同版本的插件(不同版本永远不能保证彼此兼容)安装到要在其之间传输视频/音频源的所有 OBS 实例中。 安装 安装前请确保 OBS 未运行。 对于常规 OBS 安装,请参阅下面的操作系统特定说明。对于便携模式,只需将 .7z 文件解压到便携文件夹结构的根目录中即可。 剧透:Windows
剧透:Linux
将旧版本的插件更新到新版本的步骤是相同的,只是在文件提取期间,您还需要确认覆盖现有文件。发件人配置 一个 OBS 实例将成为发送方,在此实例上转到 OBS 主菜单并选择工具 - > Beam 发送方输出。 将出现一个对话框,您可以在其中配置发送方标识符以及发送方如何接受接收方连接。命名管道连接是本地(在同一台计算机内)连接的推荐连接类型,因为它的开销最小,因此对资源的影响应该最小。如果需要连接来自不同计算机的接收器和发送器,则需要使用 TCP 套接字连接。压缩配置取决于设置和使用案例,请阅读上述部分以了解更多信息。 对于“从 OBS 渲染线程压缩”选项,经验法则是,只要您不在任何 OBS 实例中丢帧,就将其保持启用状态,如果这样做,则禁用该选项(您选择的压缩级别越高,就越有可能需要)。 如果您希望现在激活输出,请选中“Enable Beam Sender Output”框。按 OK 保存设置。 请注意,一旦输出处于活动状态,OBS 的资源使用量就会增加,因为 OBS 现在正在向此插件提供数据(无论插件此时是否正在对其进行某些操作)。此外,只要输出处于活动状态,某些视频和音频设置(例如视频分辨率、FPS 等)就会在 OBS 设置中被锁定。如果要更改这些设置,首先需要再次禁用 Beam 输出。 发件人的另一个选项是筛选器。为此,右键单击异步源,然后从上下文菜单中选择 Filters: 现在,在“音频/视频过滤器”部分,单击 + 按钮并选择其中一个光束过滤器: 创建过滤器后,发件人选项与输出的选项相同。 请注意,光束过滤器不适用于同步源,包括 Game Capture 或场景,它们没有“Audio/Video Filters”部分。目前没有添加此功能的计划,您可以在此处阅读有关原因的更多信息。 接收器配置 至少一个 OBS 实例将是接收器(多个接收器可以连接到一个发送器),在接收器实例上添加 Beam Receiver 类型的新源。 双击源以编辑其属性。 确保选择与之前为发送方选择的相同连接类型,然后您应该能够在可用的 Beam 源列表(在本例中为“BeamSender”的输出)中找到发送方。按 OK 保存设置。 现在,您可以显示新的 Beam 源(单击它旁边的眼睛图标),它应该连接到发送方并开始接收数据。随心所欲地使用其他选项,渲染延迟限制可以确保你的源被重新连接(再次将延迟重置为较低的水平),如果它变得太高,可以使用帧缓冲区来补偿网络中断或其他滞后,或者在发送方和接收方之间获得固定的延迟, 通过自动增加或减少缓冲区来抵消 OBS 中延迟的任何变化。 故障 排除 请参阅 Wiki 以获取故障排除帮助。 常见问题 Q : 为什么插件文件比其他插件大得这么大,会不会引起问题?答 :与其他插件不同,它不是直接用 C++ 编写的,而是使用 .NET 和 NativeAOT 用 C# 编写的(有关更多详细信息,请阅读开发人员部分)。这会在实际的插件文件中产生一些开销,但是,对于此插件的功能至关重要的代码应该与直接用 C++ 编写的代码一样高效和快速,因此没有理由担心系统的性能。Q : 会有 MacOS 版本吗?A :NativeAOT 不支持交叉编译,我也没有 Mac,所以目前无法编译,更别说测试了。欢迎对此的任何帮助。Q : 这个插件会有 32 位版本吗?答 :不可以。请随意尝试自己为 x86 目标编译它,上次我检查它时 NativeAAT 并不完全支持它。问 :这是否适用于所有颜色格式和色彩空间,包括 HDR?答 :当不对每个可用的 OBS 颜色格式/空间设置(包括 HDR)使用压缩时,它应该可以正常工作,因为 OBS 数据只是 1:1 传输的。使用 LZ4 或 Density 压缩时也是如此。但是,QOI 和 QOIR 压缩支持 Alpha,但仅适用于 RGB(A),而 QOY 专为 YUV 格式(如 NV12 OBS 默认或 I420)而设计,它也不支持 Alpha。Beam 中的当前 JPEG 实现也不支持 HDR 格式或 Alpha 通道,即使 JPEG 规范通常提供此功能。