OBS.COM.CN官网 OBS中文版官方分流下载欢迎您!
OBS直播推流软件中文站 OBS官网版本分流下载 OBS插件免费下载
收费技术咨询微信:
OBSStudio
OBS插件

光束xObsBeam 替代NDI传输OBS无损视频和声音信号

作者:OBS中文官网 日期:2024-11-02 人气:89
友情提示:
下载内容请先注册或登录

  Beam(技术项目名称 “xObsBeam”)是一个 OBS 插件,用于在 OBS 实例之间传输视频和音频馈送,无论是原始的还是无损或有损压缩的。用于 A/V 传输的 NDI 和 Teleport 的替代方案。Raw 传输和某些压缩选项具有 Alpha 通道和 HDR 支持。

设置输出信号名称:

添加输入信号:
1680640780652.png


先决条件

  • OBS 30.0.X+ 64 位
  • 窗户
    • 在 Windows 10 和 11 上测试
  • 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 文件解压到便携文件夹结构的根目录中即可。



将旧版本的插件更新到新版本的步骤是相同的,只是在文件提取期间,您还需要确认覆盖现有文件。

发件人配置

一个 OBS 实例将成为发送方,在此实例上转到 OBS 主菜单并选择工具 - > Beam 发送方输出。

1695050590092.png


将出现一个对话框,您可以在其中配置发送方标识符以及发送方如何接受接收方连接。命名管道连接是本地(在同一台计算机内)连接的推荐连接类型,因为它的开销最小,因此对资源的影响应该最小。如果需要连接来自不同计算机的接收器和发送器,则需要使用 TCP 套接字连接。压缩配置取决于设置和使用案例,请阅读上述部分以了解更多信息。

对于“从 OBS 渲染线程压缩”选项,经验法则是,只要您不在任何 OBS 实例中丢帧,就将其保持启用状态,如果这样做,则禁用该选项(您选择的压缩级别越高,就越有可能需要)。

1695050625237.png


如果您希望现在激活输出,请选中“Enable Beam Sender Output”框。按 OK 保存设置。

请注意,一旦输出处于活动状态,OBS 的资源使用量就会增加,因为 OBS 现在正在向此插件提供数据(无论插件此时是否正在对其进行某些操作)。此外,只要输出处于活动状态,某些视频和音频设置(例如视频分辨率、FPS 等)就会在 OBS 设置中被锁定。如果要更改这些设置,首先需要再次禁用 Beam 输出。

发件人的另一个选项是筛选器。为此,右键单击异步源,然后从上下文菜单中选择 Filters:

1695050635578.png


现在,在“音频/视频过滤器”部分,单击 + 按钮并选择其中一个光束过滤器:

1695050647423.png


创建过滤器后,发件人选项与输出的选项相同。

请注意,光束过滤器不适用于同步源,包括 Game Capture 或场景,它们没有“Audio/Video Filters”部分。目前没有添加此功能的计划,您可以在此处阅读有关原因的更多信息。

接收器配置

至少一个 OBS 实例将是接收器(多个接收器可以连接到一个发送器),在接收器实例上添加 Beam Receiver 类型的新源。

1695050672668.png


双击源以编辑其属性。

1695050682461.png


确保选择与之前为发送方选择的相同连接类型,然后您应该能够在可用的 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 规范通常提供此功能。


付款方式(目前只支持支付宝付款)
×