过去一两天,我一直在努力解决这个问题,但收效甚微。本质上,我想做的是通过脚本将After Effects中的选定伴奏通过脚本发送到Adobe Media Encoder,并使用有关它们的信息(其伴奏名称,宽度等的子字符串-我已经知道并确定了所有这些信息),以及根据满足的条件指定适当的AME预设。我发现的当前两种方法不适用于我要尝试执行的操作:
https://www.youtube.com/watch?v=K8_KWS3Gs80
https://blogs.adobe.com/creativecloud/new-changed-after-effects-cc-2014/?segment=dva
这两个选项或多或少都依赖于输出模块/渲染队列(第一个选项允许在不指定预设的情况下将其发送到AME),至少就我所知,这不允许h.264文件-类型不再可用(除非您可以在将队列推送到AME之前以某种方式使用一组已创建的设置来欺骗渲染队列?)。
我发现的另一个选项涉及使用Bridgetalk绕过输出模块/渲染队列并直接转到AME ... BUT,这主要涉及指定文件(而不是当前选择的comp),并且只需要具有在项目的根目录级别:https://community.adobe.com/t5/after-effects/app-project-renderqueue-queueiname-true/td-p/10551189?page=1
就代码而言,这是相关的非工作代码部分:
function render_comps(){
var mySelectedItems = [];
for (var i = 1; i <= app.project.numItems; i++){
if (app.project.item(i).selected)
mySelectedItems[mySelectedItems.length] = app.project.item(i);
}
for (var i = 0; i < mySelectedItems.length; i++){
var mySelection = mySelectedItems[i];
//~ front = app.getFrontend();
//~ front.addItemToBatch(mySelection);
//~ enc = eHost.createEncoderForFormat("H.264");
//~ flag = enc.loadPreset("HD 1080i 25");
//app.getFrontend().addItemToBatch(mySelection);
var bt = new Bridgetalk();
bt.appName = "ame";
bt.target = "ame";
//var message = "alert('Hello')";
//bt.body = message;
bt.body="app.getFrontend().addCompToBatch(mySelection)";
bt.send();
}
}
其中包含了许多不同的尝试和我尝试过的东西。
我花了大约4到5个小时来搜索互联网和各种资源,但到目前为止还很短。预先感谢您的帮助!