BACK TO ARCHIVE
editorial opentimelineio otio electron vue pipeline usd shotgrid aaf

剪辑管线转换:Animal Logic 迁移至 OpenTimelineIO

08.07.2022 ADUCG RESEARCH

原文页面:https://animallogic.com/technology/publications/editorial-pipeline-conversion-animal-logics-transition-to-opentimelineio/
PDF:https://animallogic.com/wp-content/uploads/2023/06/Editorial-Pipeline-Conversion.pdf
DOI:https://doi.org/10.1145/3532836.3536278

论文信息

Editorial Pipeline Conversion: Animal Logic’s Transition to OpenTimelineIO
Tim Lehr(Animal Logic Vancouver, BC, Canada)tim.lehr@animallogic.ca
Barish Balachandran(Animal Logic Sydney, NSW, Australia)barishb@al.com.au
Oliver Dunn(Animal Logic Vancouver, BC, Canada)oliver.dunn@animallogic.ca
Nathan Lacey(Animal Logic Sydney, NSW, Australia)nathan.lacey@al.com.au

Figure 1

图 1:Editron 用户界面。使用 Electron.js 与 OpenTimelineIO 构建。

摘要(ABSTRACT)

随着 OpenTimelineIO(OTIO,https://github.com/PixarAnimationStudios/OpenTimelineIO)的发展、Animal Logic 的规模增长,以及我们迫切需要将代码库升级到 Python 3,是时候重新设计我们的剪辑(editorial)工具了。本次重构有两项关键需求:

  1. 剪辑工具的用户界面必须跨平台;开发者与 TD 主要在 Linux 上使用这些工具,而剪辑部门则运行在 Windows 或 Mac 上。
  2. 减少大量内部定制的 Python 代码,并去除对任何特定剪辑文件格式的依赖,从而在未来显著提升该领域的敏捷性与灵活性。

我们介绍了 Animal Logic 将剪辑管线从僵化且过度复杂的内部方案,重构为一种更现代、可扩展的方法:基于开源技术 OpenTimelineIO 与 Electron.js。升级后的设计相较于之前的尝试大幅提升了灵活性,使得跨平台用户采用成为可能,并进一步将工具与“所选用的剪辑软件”解耦。新管线已在我们近期的制作中落地,我们已经开始看到其可扩展性与易于排障所带来的收益。


1 引言(INTRODUCTION)

尽管 Animal Logic 的管线近年来经历了若干次重大重构——尤其是迁移到完全基于 Pixar™ Universal Scene Description(USD)的方案——但由于多种限制因素,剪辑(editorial)管线此前并未完成同等程度的升级。随着 OTIO 的成熟、公司规模的扩大,以及我们必须把代码库升级到 Python 3 的现实压力,我们决定对剪辑工具进行一次重新设计:既要满足跨平台使用,又要显著降低内部维护成本,并避免被某一种剪辑文件格式(或剪辑软件)锁死。


2 用户界面(USER INTERFACE)

在为用户界面选型时,我们需要权衡多个因素:Web 还是原生?在本项目里我们选择原生应用,以便更快速地处理用户上传的体量很大的文件;同时 Web 应用缺少我们所需的原生文件系统支持。Electron 还是 Qt/PySide-2?本项目选择 Electron 的原因是其跨平台可移植性。尽管 Qt 是 Animal Logic 开发者较熟悉的技术栈,但内部构建系统并非为跨平台而设计,因此升级到 Electron 是更优路径。

在调研了多个框架与部署技术后,我们最终决定开发一个“原生应用 + Web 前端”的混合方案:使用现代 Web 前端框架 Vue.js 搭配 Electron.js,从而能够“一次开发,多平台部署”。Editron(前端应用)从剪辑软件获取媒体文件,随后将剪辑数据转换为 OTIO,并与先前版本进行对比;最后 Editron 将文件打包并发送到后端执行发布(publishing)流程(见图 1)。


3 后端(BACKEND)

Editron 负责初始转换与资产打包,而管线的其余部分则在一台 Linux 服务器上执行,该服务器运行着我们自研的任务图(task graph)引擎。后端任务图包含:从已发布的资产包生成多种媒体代理(media proxies),以及生成一套 EDL 与 USD 文件。其概要与详细节点网络见图 2。

Figure 2

图 2:高层级的管线示意图与后端任务节点图(task node graph)。

3.1 对 OpenTimelineIO 的贡献与增强(OpenTimelineIO Contributions and Enhancements)

我们对 OTIO 的 AAF(Avid 的 Advanced Authoring Format)适配器做了一些补强,主要是增强对剪辑 marker 的支持。我们在内部使用 marker 来标记“关注的轨道(tracks of interest)”,并向媒体剪辑(media clips)附加元数据。这些改动已经合并回 OTIO 的公共仓库,我们也将继续投入资源回馈社区。

在内部对 OTIO 生态的扩展中,最重要的一项是引入 frame handle schema,用于适配不同部门之间的差异化需求。我们当前支持多种 frame handle 大小:它们以新的“通用规则 schema”的特化(specialization)形式实现;各部门可以共享一个“已配置规则池”,该规则池按项目(show)维度统一配置并复用。

3.2 USD 集成(USD Integration)

由于 Animal Logic 的整体管线以 USD 为核心构建,因此这次重构必须与现有的客户端应用套件无缝集成。尤其是 Animal Logic 的镜头搭建(shot building)应用 Forge [Baillet et al. 2018],会直接从 USD 文件读取镜头范围(shot range)信息。在发布阶段,管线的一个步骤会读取序列级 OTIO 文件,并为每个镜头向 scene description 写入我们自定义的帧范围 prim。该 prim 随后会被我们的工具读取,并且在渲染时也会被 Glimpse [Heckenberg et al. 2017] 读取,以标记渲染图像序列对应的范围。

3.3 资产解析(Asset Resolution)

为了能够在所有工作室站点访问已发布的媒体资产,我们要求所有媒体引用都符合我们自定义的 URI schema。在从 AAF 转换到 OTIO 的初始 Editron 阶段,这一步翻译由我们的 OTIO media linker 插件完成。

在后续对 OTIO 数据的访问过程中,我们的内部资产解析(asset resolver)Web 服务会将这些 URI 转换为本地化(localized)的文件路径。我们利用 OTIO 提供的 hook API 向 resolver service 发送请求,使其能够被位于任意工作室站点的客户端以一致方式消费。


4 结果与未来方向(RESULTS AND FUTURE DIRECTION)

重构后的新管线已经在我们近期的项目中全面落地:它让团队能够完全拥抱 Python 3,并使 TD 可以为每个项目快速、轻松地配置剪辑流程。它也显著改善了制作高压期的排障体验。我们此前在该领域的代码库超过 100,000 行,是其难以维护的主因;而现在得益于集成 OTIO 与 Electron,我们的内部代码量下降到约 5,000 行,使得维护与迭代更轻松。

尽管 OTIO 已经被整合进 Animal Logic 的管线,但我们仍有进一步优化与简化剪辑工具的工作要做。我们正在推进两项主要工作:

  1. 弃用我们的 USD 镜头范围(shot range)资产与内部 EDL 格式。它们增加了额外复杂度,却几乎没有收益。后续步骤将是逐步退役这些格式,让所有内部工具与第三方工具都直接读取 OTIO。
  2. 继续关注 Autodesk 将 OTIO 集成到 Shotgrid™ 的进展,未来有潜力直接从 OTIO 读取并呈现更丰富的 timing 信息。

我们未来的管线设计在高层级上如图 3 所示。

Figure 3

图 3:展示未来方向的管线示意图。

参考文献(REFERENCES)

Aloys Baillet, Eoin Murphy, Oliver Dunn, and Miguel Gao. 2018. Forging a New Animation Pipeline with USD. In ACM SIGGRAPH 2018 Talks (Vancouver, British Columbia, Canada) (SIGGRAPH ’18). Association for Computing Machinery, New York, NY, USA, Article 54, 2 pages. https://doi.org/10.1145/3214745.3214779

Daniel Heckenberg, Luke Emrose, Matthew Reid, Michael Balzer, Antoine Roille, and Max Liani. 2017. Rendering the Darkness: Glimpse on the LEGO Batman Movie. In ACM SIGGRAPH 2017 Talks (Los Angeles, California) (SIGGRAPH ’17). Association for Computing Machinery, New York, NY, USA, Article 8, 2 pages. https://doi.org/10.1145/3084363.3085090

本文采用 Creative Commons BY-NC-ND 4.0 协议进行授权。

BY-NC-ND: 署名-非商业性使用-禁止演绎

End of Article