繁体   English   中英

如何通过 NSTask/Process 执行 `aerender` 命令行工具?

[英]How to execute `aerender` command line tool via NSTask/Process?

我正在尝试通过 NSTask/Process 执行aerender命令行工具来构建概念验证 macOS 应用程序来渲染 Adob​​e After Effects 项目文件,但没有取得太大成功。

var task: Process = Process()

func render()

    let compPath = "/Users/Admin/Documents/test-proj.aep"

    task.launchPath = "/Applications/Adobe After Effects CC 2019/aerender"
    task.arguments = ["-project", compPath,
                      "-comp", "output"]

    do {
        try task.run()
    } catch let error {
        print(error)
    }
}

上面的代码在后台成功启动了 After Effects,但日志会产生以下输出:

aerender version 16.1.1x4
PROGRESS: Launching After Effects...
aerender ERROR -1701: AEGetParamPt failed at line 780

我还尝试将命令放入单独的 Shell 脚本中,然后从应用程序中执行该脚本,但这也会产生相同的结果。

我可以使用bashzsh直接在终端中成功运行相同的命令,并完美呈现视频。 所以我认为这是 NSTask/Process 而不是aerender的错误。

该应用程序具有:

  • 应用程序沙箱关闭
  • 完整的磁盘访问权限来读取和写入。

在这一点上,我对 Obj-C 或 Swift 中的所有想法和答案持开放态度!

您需要在 Mac 中安装 ESTK(ExtendScript Tool Kit)。 就我而言,我在安装时修复了它。

请参阅适用于 macOS 10.13.2 的 Adob​​e Extendscript Toolkit CC 下载

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM