UCS Studio

UCS Studio GUI 使您能够通过在图表画布上进行拖放操作,以更友好的用户方式创建和构建 UCS 应用程序。

远程访问

UCS Studio 仅支持通过一种流媒体选项进行远程访问。

  1. Omniverse Streaming Client

  2. WebRTC

可用选项的比较

技术

设备

优势

Omniverse Streaming Client

Windows 和 Linux

原生桌面应用程序。

支持高达 4K 分辨率和 60 帧/秒的流媒体。

WebRTC

Web 浏览器(所有设备)

易于分发。

跨设备和平台具有强大的支持。

Omniverse Streaming Client

Omniverse Streaming Client 是一个轻量级应用程序,允许用户连接到部署在网络上或 Internet 上的 Omniverse 应用程序。

该应用程序使得即使从不满足最低要求的设备访问各种 Omniverse 应用程序成为可能。 其中一些工作流程包括

  1. 从低功耗设备或超极本访问 Omniverse 应用程序。

  2. 促进通过网络或 Internet 共享资源,允许用户连接到 IT 资源提供的 Omniverse 应用程序。

安装和使用

要在用户机器上安装 Omniverse Streaming Client

  1. 从 Omniverse Launcher 中,从顶层菜单栏中选择 Exchange。

  2. 从那里,单击左侧 Apps 边栏中的 Omniverse Streaming Client。

  3. 在 Omniverse Streaming Client 的详细信息页面中,单击 Install 按钮。

下载完成后,并且 Omniverse Streaming Client 安装完毕,单击 Launch 按钮以启动客户端。

Omniverse Streaming Client Launcher

当提示时,输入正在广播的远程机器的 IP 地址或 URL 以与远程会话进行交互

Omniverse Streaming Client Launcher

配置

服务器

要使用 Omniverse Streaming Client 启动 UCS Studio,请运行以下命令

ucf_studio --enable-streaming ov-streaming

如果主机位于第三方云提供商的基础架构上,则可能还需要打开以下端口,并允许防火墙规则允许入站和出站流量

TCP: 4799548012

TCP: 4900049007

TCP: 49100

UDP: 4799548012

UDP: 4900049007

客户端

在 Linux 上,客户端安装的机器上可能需要以下软件包:libavcodeclibavformatlibavutil。 可以使用以下命令安装这些软件包

sudo apt-get install libavcodec57 libavformat57 libavutil55

Windows 环境不需要任何其他依赖项或配置,只需确保防火墙规则不限制对上述端口的访问即可。

WebRTC 流媒体

通过利用新的 WebRTC 实时流媒体,现在可以将 UCS Studio 流式传输到 Web 浏览器。

WebRTC Streaming

使用 WebRTC 实时流媒体是一个简单的过程

  1. 在命令提示符或终端中,运行命令:ucf_studio --enable-streaming webrtc

  2. 在本地网络上查找托管 UCS Studio 应用程序的机器的 IP 地址

  3. 在您喜欢的 Web 浏览器中导航到流页面:http://<服务器 IP 地址>:8011/streaming/webrtc-client?server=<服务器 IP 地址

  4. 单击“播放”按钮开始流式传输您的应用程序

注意

有时上述 URL 不可访问,因为端口 8011 可能已被占用,在这种情况下,我们需要将 8011 替换为控制台中显示的正确 HTTP 端口号。

例如,在以下日志中,服务器在端口 8010 而不是 8011 上启动

[omni.services.transport.server.http.server] http server was meant to start on 8011 but port is taken, starting on port 8010 instead.

当前限制:

  1. 为了获得最佳用户体验,建议一次只允许一个用户使用鼠标或键盘控制,而其他用户保持观察者模式。

  2. WebRTC 流媒体仅在 RTX GPU 上受支持。

  3. 尚不支持复制/粘贴。

Repo 同步

在打开现有图表或创建新图表之前,您必须始终确保本地注册表数据是最新的。 将本地注册表与来自 NGC 的远程存储库同步将更新本地注册表数据。 要执行同步,您始终需要通过“注册表”菜单中的“Repo Setup”复制和粘贴 API 密钥来设置存储库。

可以通过“注册表”菜单中的“Repo Sync”或“Fast Repo Sync”触发注册表同步(后者花费的时间较少,因为它仅获取服务的最新版本,而不是所有可用版本),并且系统将提示您选择一个远程存储库以完成同步

Repo Sync Window

同步过程可能需要几分钟。 完成后,左侧的目录列表将自动更新

Repo Sync done

创建新图表

您可以通过起始页面的“创建图表”按钮或“文件”菜单中的“新建图表”(Ctrl + N)来创建新图表,可以在创建图表之前为图表指定自定义名称。

Create a New Graph

添加和删除微服务

完成 repo 同步后,注册表中的所有可用服务将列在图表画布左侧的目录中,要将服务添加到图表中,用户可以从列表中搜索所需的服务,然后将其拖放到画布上。

在添加服务之前,您可能想了解该服务的规范详细信息,一旦从服务列表中选择服务,这些信息将显示在“详细信息”面板中。

Service Details

将服务添加到图表画布后,通过双击名称字段来更改服务节点的名称。

Renaming a Service

要从图表中删除服务节点,请单击它并按“DEL”键。 也可以通过“编辑”菜单完成删除。

多选

通过鼠标和键盘支持多选。

通过在画布上拖动矩形来选择节点,或者在按住“CTRL”键的同时单击节点来逐个选择节点。

连接和断开微服务

通过从一个节点的端口拖动并放到另一个节点的端口来连接两个服务节点

Connecting Services

可以通过右键单击服务节点左侧的入口端口触发的上下文菜单来完成断开连接

Disconnecting Services

复制/剪切/粘贴服务

为了方便图表的编辑过程,支持复制/剪切/粘贴。 您可以从“编辑”菜单触发该过程,或者直接使用“Ctrl + C”进行复制,“Ctrl + X”进行剪切,以及“Ctrl + V”进行粘贴。

复制/剪切的服务节点将存储在剪贴板中,并且将在后续的“粘贴”操作中创建服务节点的精确克隆。

撤销和重做

为正在编辑的图表维护撤销/重做管道。 您可以选择撤销和重做包括以下内容的编辑

  • 添加服务

  • 删除服务

  • 连接服务

  • 断开服务

  • 重命名服务

  • 剪切服务

  • 粘贴服务

画布平移和缩放

使用鼠标中键平移画布,他/她还可以通过鼠标滚轮放大/缩小画布。

节点折叠和展开

图表画布上的节点有三种具有不同视图的状态,您可以通过单击节点右上角的小点在它们之间切换

  • 展开视图

Expanded View of a Service Node
  • 最小化视图

Minimized View of a Service Node
  • 折叠视图

Collapsed View of a Service Node

您还可以通过工具栏中的按钮一起切换图表画布上所有节点的视图。

图表布局和焦点

支持自动布局以排列当前图表上的节点,使其在视觉上更清晰,您也可以通过移动节点手动排列它们。

在编辑相对复杂的图表时,您可以随时将焦点更改为特定节点或整个图表。

画布上下文菜单或工具栏支持所有上述操作。

检查和更改服务属性

选择服务节点后,其详细信息将显示在详细信息面板中,其中包括其基本信息和属性。 属性在那里是可编辑的,因此您可以随时更改其值

Collapsed View of a Service Node

保存和加载图表

在编辑图表时,随时将其另存为 YAML 文件,以便您可以通过再次打开它们来继续编辑。

可以从“文件”菜单或使用“Ctrl”+“S”完成图表保存。 您可以选择文件系统上的位置来保存图表文件

Save a Graph

同样,您也可以从“文件”菜单或使用热键,或从起始页打开现有图表。

导入和导出参数

虽然服务实例的属性可以与图表一起保存,但它们也可以导出到单独的文件,然后可以导入该文件以覆盖图表中的这些值。 在导出参数之前,您必须在节点中找到参数,并选中相应参数右侧的复选框

Export Parameters

您还可以从参数文件导入参数,这将覆盖当前图表中相应参数的值。

画布上下文菜单支持导入和导出参数

Graph Context Menu

构建应用程序并生成 Helm Charts

完成图表后,您可以从“文件”菜单(Ctrl + B)或工具栏启动构建过程,这将要求在文件系统中提供输出文件夹并在那里生成 helm charts

Build the Application