gpt4 book ai didi

shell - 渲染完成后运行 shell 命令(After Effects)

转载 作者:行者123 更新时间:2023-12-01 10:36:07 25 4
gpt4 key购买 nike

在 Adob​​e After Effects 中完成渲染后,是否可以通过编程方式运行 shell 命令?

最佳答案

从 After Effects 执行命令行

您可以使用 sysmte.callSystem(cmdLineToExecute) 函数执行命令行。去看看After Effects Scripting Guide页面180部分系统调用System()方法

这是一个带有 echo 命令的示例:(callSystem 返回命令行返回的):

var commandOutput = system.callSystem("cmd.exe /c echo hi ");
alert(commandOutput);

这将输出

hi

/c后面是cmd中要执行的命令。

脚本指南中获取系统时间的更复杂示例:

var timeStr = system.callSystem("cmd.exe /c \"time /t\"");
alert("Current time is " + timeStr);

这将输出

Curent time is 11:28

从 After Effects 打开命令行

现在,如果您想在另一个窗口中打开命令行,则必须像在命令行中一样设置 cmdLineToExecute

在 Windows 上,如果你想在另一个窗口中打开命令行,你必须这样做:

start cmd.exe

所以如果你想从After开始

system.callSystem("cmd.exe /c start cmd.exe ");

在 After Effects 中完成渲染后打开命令行

这是与@fabiantheblind 的回答的混合。

// Create a comp with a solid
var comp = app.project.items.addComp('test', 100, 100, 1, 1, 12);
comp.layers.addSolid([0.5, 0.5, 0.5], 'solid', 100, 100, 1, 1);
// Add the comp to the render queue
var rq_item = app.project.renderQueue.items.add(comp);
rq_item.outputModule(1).file = File('~/Desktop/out.mov');
rq_item.render = true;
// Set a function which will be called every frame when the comp will be rendering
// A boolean to be sure that the function called at the end is called once
var called = false;
rq_item.onStatusChanged = function() {
while (rq_item.status === RQItemStatus.RENDERING) {
// Is rendering...
$.writeln('Rendering');

}

// When the render is finished
if (!called && rq_item.status === RQItemStatus.DONE) {
called = true;
system.callSystem("cmd.exe /c start cmd.exe ");
}

};
// Launch the render
app.project.renderQueue.render();

// If something goes wrong
app.onError = function(err) {
$.writeln('ERROR ' + err);
};

关于shell - 渲染完成后运行 shell 命令(After Effects),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35143705/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com