发布与策略
控制 Vision 帧如何传递到后端。涵盖发布策略、帧率和比特率配置,以及手动发布控制。
最后更新于
这有帮助吗?
控制 Vision 帧如何传递到后端。涵盖发布策略、帧率和比特率配置,以及手动发布控制。
ConvaiVisionPublisher 是连接帧源和 Convai 后端的组件。它管理 WebRTC 视频轨道的生命周期——在房间连接事件发生时启动、保持和停止流——并提供一组策略和覆盖项,用于调优传输特性。本页解释每个 Inspector 字段,描述每种发布策略,并展示如何通过脚本手动控制发布。
帧源组件
MonoBehaviour
(自动解析)
该 IVisionFrameSource 实现以进行发布。留空可自动发现场景中第一个可用的帧源。如果存在多个帧源,请在此明确指定。
发布策略
VisionPublishPolicy
AutoCompatible
控制客户端帧率和比特率。请参见下方策略表。
视频轨道名称
string
"unity-scene"
发布到房间的 WebRTC 视频轨道名称。Convai 后端使用此名称将视频流与会话关联起来。仅当你有特定的多轨道配置时才更改它。
发布帧率覆盖
int (0–30)
0
覆盖发布策略中指定的帧率。 0 表示“使用策略默认值”。
发布比特率覆盖
int
0
覆盖发布策略中指定的最大比特率(每秒比特数)。 0 表示“使用策略默认值”。
VisionPublishPolicy 是客户端传输设置。它控制帧采样的激进程度以及分配多少带宽。它不会 不是 决定后端由哪个 AI 模型或视觉提供方处理该流。
AutoCompatible
0
10 fps
750 000 bps
通用用途——一个平衡的默认值,适用于大多数后端配置
高响应
1
15 fps
1 000 000 bps
实时多模态交互,角色需要快速响应视觉变化
低开销
2
5 fps
350 000 bps
大规模部署、对成本敏感的会话,或快照比运动更重要的场景
Manual
3
—
—
对何时开始和停止发布进行显式控制;在启用时使用 AutoCompatible 速率
VisionPublishPolicy 仅描述 客户端传输 ——即通过网络发送的帧率和比特率。它不会暴露或控制后端 AI 模型、视觉提供方或处理延迟。不要将其用作后端行为的代理指标。
当你需要一个介于各策略之间的特定值时,请使用覆盖字段:
发布帧率覆盖 接受从 1 到 30的值。设置 0 可恢复策略默认值。
发布比特率覆盖 接受任意正整数,单位为每秒比特数。设置 0 可恢复策略默认值。
例如: AutoCompatible 采用 12 fps 覆盖的策略会以 750 000 bps 输出 12 fps。
在 WebGL 上,帧率会被限制为最高 15 fps ,无论策略或覆盖值为何。这是由 canvas.captureStream().
默认情况下(除 Manual之外的任何策略),发布会遵循房间连接:
房间连接并且 连接类型 = 视频 → 自动开始发布。
房间断开连接或模块停止 → 发布停止,视频轨道取消发布。
组件被禁用 → 发布停止。
当房间已连接时,组件重新启用 → 发布恢复。
你无需调用任何方法来触发此行为。
设置 发布策略 到 Manual 当你需要显式控制时使用——例如,仅在用户执行某个操作时开始发布,或在训练模块之间暂停流。
SetPublishPolicy 会立即生效。如果发布处于活动状态,当前轨道会取消发布,并使用更新后的配置启动新轨道。
在 WebGL 上, ConvaiVisionPublisher 通过 canvas.captureStream() 捕获可见的 Unity 浏览器画布,而不是从帧源组件读取。对于 WebGL 构建,你无需在场景中添加帧源组件。
发布策略选择仍然适用——对于注重性能的 WebGL 部署,请使用 低开销 。无论策略或覆盖值如何,WebGL 构建的帧率都被限制为 15 fps。
最后更新于
这有帮助吗?
这有帮助吗?
using Convai.Modules.Vision;
ConvaiVisionPublisher publisher = GetComponent<ConvaiVisionPublisher>();
// 开始发布(使用 AutoCompatible 速率)
publisher.EnablePublishing(true);
// 停止发布,但不断开房间连接
publisher.EnablePublishing(false);// 在会话中途切换到 HighResponsiveness
publisher.SetPublishPolicy(VisionPublishPolicy.HighResponsiveness);