【问题标题】:How to execute `aerender` command line tool via NSTask/Process?如何通过 NSTask/Process 执行 `aerender` 命令行工具?
【发布时间】:2019-04-21 20:58:13
【问题描述】:

我正在尝试构建一个概念验证 macOS 应用程序,以通过 NSTask/Process 执行 aerender 命令行工具来渲染 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 中的所有想法和答案持开放态度!

【问题讨论】:

  • 也许你的shell有你的Process缺少的环境变量设置。

标签: objective-c swift nstask


【解决方案1】:

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

参考Adobe Extendscript Toolkit CC download for macOS 10.13.2

【讨论】:

    猜你喜欢
    • 2011-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-24
    • 1970-01-01
    • 1970-01-01
    • 2014-08-10
    • 1970-01-01
    相关资源
    最近更新 更多