用户指南

Tracker

把播放器连接到生产 tracker,从中读取播放列表,并把审阅的备注发布回去:先是 Bernard Engine,然后是 Kitsu、ftrack 和 Flow Production Tracking。

生产 tracker 保存一部影片的镜头、版本和任务清单。Bernard Review 可以从中读取要审阅的播放列表,然后逐个镜头把备注和带标注的帧发送回去。没有任何操作会自动运行:每一次交互都是一次单击,或脚本的一条命令。

Bernard Engine

Bernard Engine 是 AArts Lab 的生产 tracker,AArts Lab 也是 Bernard Review 的发行方;它是一个独立的产品,单独销售,即将以开源方式推出。

在此版本中,Bernard Engine (coming soon) 列在 Review Notes 选项卡的 Tracker 列表的最前面,但目前还不能选择:直接发布到 Bernard Engine 即将推出。在此期间,连接了 Bernard Engine 的流水线通过脚本与播放器交换数据:

  • 播放列表传入,格式为 .bpl 文件,每个片段带有 tracker 的标识符(x_tracking 块);
  • 备注传出,通过备注导出完成;其 JSON 文件会逐个片段返回这些标识符:每条备注无需比对文件名就能找到它所属的版本。

详情参见集成。

Kitsu、ftrack 和 Flow Production Tracking

File > Tracker... 打开 Tracker 窗口。它起初是浮动的,可以像其他面板一样停靠。对 tracker 的调用在后台独立运行:播放器从不等待网络,Cancel 会停止正在进行的调用。

Tracker 窗口,正在编辑一个 Kitsu 站点:地址、电子邮件、Remember 和一条路径规则。

添加站点

站点指一个 tracker 以及您在其中的账户。Add 会先询问类型,然后是:

类型字段
Kitsu站点地址、您的电子邮件、您的密码
ftrack站点地址、API 用户、API 密钥
Flow站点地址、脚本名称、脚本密钥

每个字段上的工具提示会说明到哪里去找它:对 Flow,是 Admin > Scripts > + Script(密钥只在创建脚本时显示一次:请当时复制);对 ftrack,是 My Account > API key;对 Kitsu,是您登录该站点所用的电子邮件和密码。

技术细节 代理、路径和状态映射、地址和机密信息

所有类型都有:代理、供自建证书颁发机构的工作室使用的证书颁发机构文件、Path map(工作室路径,以及它在 Windows、Linux 和 macOS 上对应的路径)和 Status map(播放器的状态 pending、approved 和 not approved,以及各自对应的 tracker 状态)。

地址必须以 https:// 开头;http:// 仅在指向本机(localhost)时才被接受,例如通向测试 tracker 的 SSH 隧道。

机密信息。 密码或密钥字段是遮盖显示的。勾选 Remember 后,机密信息会存入系统的凭据存储(Windows 凭据管理器、Linux 上的 Secret Service、macOS 钥匙串),并且只在 tracker 接受之后才存入。没有凭据存储时,面板会显示 stored without encryption:机密信息会保存到您配置文件夹中一个仅您可读的文件里。流水线也可以通过 BERNARD_TRACKER_<ID>_SECRET 变量提供它(站点名称用大写),该变量优先:此时面板会显示 secret from the environment。站点文件 trackers.json 从不保存机密信息。

Save & Test 保存站点并连接;Test 再次连接,并显示 tracker 所识别的用户,或错误信息;Forget 删除站点及其机密信息。

载入播放列表

选择项目,然后选择播放列表;筛选框可以缩小列表范围。预览会针对每个片段说明它的媒体在哪里:local(tracker 给出的路径)、mapped(该路径经过 Path map 转换后的结果)或 not local。Replace 替换播放列表,Append 添加到其后。

媒体不在这台机器上的片段,会连同它的标识符一起保留,并且仍可发布;但它绝不会被打开、导出或发送给会话的来宾,播放时会跳过它。

预览。 载入时不会下载任何内容。当有些镜头不在这台机器上时,载入之后会出现一个问题:3 shots are not on this machine (4.5 MB). Download All 按播放列表的顺序逐个获取它们,仅在没有播放时进行,每个镜头一到就可以播放;Later 则什么也不下载。当 Kitsu、ftrack 或 Flow 托管媒体时,Download preview 按钮也可以把一个镜头获取到您的配置文件夹中,默认保留 7 天(Edit > Preferences... > Cache & Performance > Keep downloaded previews (days))。大于 2 GB 的预览会被拒绝。对于 Flow,使用的是上传到 Version 的视频(其 Uploaded Movie 字段,sg_uploaded_movie;可用站点的 uploaded_movie 字段键设置其他名称):只有当该 Version 的路径(Path to Movie、Path to Frames,经过 Path map 转换)不在这台机器上时才会使用它。

从 Flow 中用 Bernard Review 打开

安装程序会注册 bernardreview:// 链接(Windows:注册在该安装自己的 Software\Classes 之下,卸载时随之删除;Linux:播放器桌面条目的 x-scheme-handler/bernardreview 类型)。Flow 管理员只需在 Flow 中添加一次该条目:Admin > Action Menu Items,新建一项,URL 为 bernardreview://flow,Entity Types 为 Version 和 Playlist,标题为 Open in Bernard Review(Flow 会在地址后附加它自己的数据;无需再设置其他内容)。之后在版本或播放列表上单击右键,就会显示该条目;浏览器会询问一次是否允许打开 Bernard Review。

  • 单击了一个版本:页面上显示的版本会按其顺序打开,并定位到被单击的那个。选中了多个:只打开选中的。一个播放列表:整个播放列表。
  • 该链接会打开播放器,或交给已经打开的播放器。该站点必须是在这里设置过的站点(File > Tracker...,地址相同):来自其他站点的链接会连同站点名称一起被拒绝,并且不会向任何地方发送任何内容。版本由您自己的连接重新读取,使用已保存的机密信息;若没有,播放器会提示您先在 File > Tracker... 中连接一次。
  • 播放列表为空时,片段会立即载入。否则 Tracker 窗口会像在其中选择的播放列表一样显示它们,并提供 Replace 和 Append(Replace 会对您手动打开的片段发出警告)。媒体不在这台机器上的片段会提供 Download preview,同上。
  • 地址中只保留站点、实体类型和 id;您的 Flow 登录信息以及来源页面绝不会写入任何地方。

从 Kitsu。 Kitsu 的入口是一个*自定义操作*(管理员菜单的 Custom Actions 页面),只有在选中了任务时才会显示(Shots、Assets 等页面),在 Playlists 页面上不会显示。Kitsu 把选择内容作为隐藏表单发送,而 bernardreview:// 地址无法承载表单:因此自定义操作的 URL 是一个小型中转页面,它把表单转换为 bernardreview://kitsu?entity_type=Task&selected_ids=<the tasks>&project_id=<the project>&server_hostname=<your Kitsu's host>,并且不保留任何内容(它应当丢弃 Kitsu 附加的电子邮件)。每个选中的任务都以其最新预览的形式打开,按选择的顺序排列,并定位到第一个;其余与 Flow 相同(在这里设置了 Kitsu 站点、Replace / Append、Download preview)。中转页面:Bernard Review 的中继服务器将提供一个;想自己托管的工作室可以使用 tools/kitsu_relay.py(单个文件,Python 标准库):把它(其 application)放在任意 WSGI 服务器后面,使用您的 HTTPS 地址运行,或单独运行以便试用(python kitsu_relay.py --host 127.0.0.1 --port 8765)。它会看到 Kitsu 提交的电子邮件和任务 id,但不保留也不记录其中任何一个,会把每个 id 当作 Kitsu id、把服务器当作站点名称进行校验,并立即用链接作答。然后,在 Kitsu 中新建一个自定义操作:Name 为 Open in Bernard Review,URL 为该页面的 https 地址,Entity type 为 All,AJAX 不勾选。

从 ftrack。 ftrack 的操作不是一个地址:当您在选中内容上打开 Actions 菜单时,ftrack 会询问在您电脑上运行的一个程序,看它能提供什么。这个程序就是 tools/ftrack_action.py(单个文件):不需要管理员权限,也不会向 ftrack 站点添加任何内容,但该条目只出现在您自己的 Actions 菜单中,并且只在该程序运行时才有。可以用 ftrack Connect 运行它(作为单独的插件 bernard-review/hook/ftrack_action.py,放在 Connect 的插件文件夹或 FTRACK_CONNECT_PLUGIN_PATH 所列出的某个文件夹中,然后重启 Connect),也可以单独运行:python ftrack_action.py,并设置好 FTRACK_SERVER、FTRACK_API_USER(您的 ftrack 用户名,与 File > Tracker... 中的相同)和 FTRACK_API_KEY(您的个人 API 密钥),同时安装 ftrack Python API(ftrack-python-api)。此后,Open in Bernard Review 会出现在版本上(一个或多个:只打开选中的,按选择的顺序排列,并定位到第一个),以及某个版本列表或某个审阅会话上(整个列表或会话,相当于在 Tracker 窗口中选择的一个播放列表)。单击后会在这台电脑上打开 bernardreview://ftrack?entity_type=Version&selected_ids=<the versions>&server_hostname=<your ftrack's host>;其余与 Flow 相同(在这里设置了 ftrack 站点、Replace / Append、Download preview)。该程序不保留也不记录任何内容,会把每个 id 当作 ftrack id、把服务器当作站点名称进行校验,并且不会把您的用户名或密钥放进链接。ftrack 只发送选中的内容,从不发送周围显示的版本:单击一个版本,就只打开这一个。

Linux,.sh 安装程序。 DEB 和 RPM 软件包会被桌面环境立即识别。安装 .sh 之后,请运行一次:update-desktop-database ~/.local/share/applications(桌面条目已复制到该处),然后运行 xdg-mime default bernardplayer.desktop x-scheme-handler/bernardreview。

发布备注

Publish 区域(File > Publish Notes to Tracker... 也会打开它)列出有备注或至少有一条绘制内容的片段。只有从已连接站点载入的片段才能被勾选。

  • 每条备注以 Reviewer: 和您的姓名开头,接着是片段的备注,然后为每个有标注的帧附上一个 [f1042] 00:00:43:10 标记,其编号和时间与 Review Notes 选项卡所显示的一致(没有时间码时只有 [f1042])。Note text 会在发送之前显示这段准确的文字。
  • 每个有标注的帧都作为 PNG 附上,带有片段的调色和绘制内容。
  • Publish status 还会通过 Status map 更新每个片段的状态;默认关闭。测试站点时(Save & Test、Test Again),播放器会读取该站点的版本所接受的状态;空的 Status map 随后会据此填充(pending -> Pending Review,approved -> Approved,not approved -> 站点若有拒绝类状态则为该状态),您可以在 Edit 下更改。站点上没有的状态绝不会被发送:备注仍会发送,报告会说明缺少哪个状态,以及到哪里去选择或创建它。
  • Dry Run 显示请求,但不写入任何内容。
  • Publish... 先请求确认,然后逐个片段报告:已发布、已跳过或失败,并附原因。已发布且未更改的备注会被跳过,并带有 Already published 标记:重复发布绝不会产生第二条备注。

Publish (N) 与 Finish review

在 Review Notes 选项卡顶部(在 Essential 中,则在 tracker 标签旁边),连接了 tracker 时会显示 Publish (N):N 是尚未发送的内容,即带绘制内容的备注或单独更改的状态。它会在勾选了 Publish status 的状态下打开 Publish 窗口;N 为 0 时呈灰色。

  • 单独发送状态。 有决定但没有备注或绘制内容的镜头,只发送它的状态,绝不发送空备注,而且只发送一次:只有当它的状态再次改变时才会再发送。对已发布备注更改的状态也单独发送。
  • Finish Review 在每个镜头都是 Approved 或 Not Approved 之后才会显示。在 Essential 中,Next Shot 在最后一个镜头上变为 Finish Review,并且在设定最后一个决定时就会出现横幅提议。在 Complete 中,它位于 Publish (N) 旁边,呈灰色,并显示仍未做决定的镜头数。
  • 它会保存播放列表,发布已做出决定的镜头及其状态,然后说明发送了什么(Review published: N notes, M statuses),并提供 Close Player(默认)和 Keep Working。
  • 如果 tracker 拒绝或无法连接,不会关闭任何内容,一切都已保存:窗口会说明哪里出了问题,并提供 Retry。已经发送的内容不会被重复发送。
  • 没有 tracker 时,Finish review 会保存,然后提供备注导出:HTML 或 Not Now。

脚本也有对应的命令(tracker-sites、tracker-connect、tracker-publish 等):参见 Python API 与 IPC。这些命令不传输任何机密信息。

进一步了解:完整手册的第 6.6 部分(Help > User Guide)。