Adobe Media Encoder (AME) 是否可编写脚本?我听说人们提到它是“官方可编写脚本的”,但我找不到对其可编写脚本对象集的任何引用。
有没有人有任何编写AME脚本的经验?
Adobe Media Encoder (AME) 是否可编写脚本?我听说人们提到它是“官方可编写脚本的”,但我找不到对其可编写脚本对象集的任何引用。
有没有人有任何编写AME脚本的经验?
Adobe 媒体编码器“官方”不可编写脚本,但我们可以使用扩展脚本 API 编写 AME 脚本。以下功能可通过扩展脚本获得
1.添加文件到批处理
编码进度
host = App.GetEncoderHost ();
enc = EHost.CreateEncoderForFormat ( "QuickTime");
flag = Enc.LoadPreset ( "HD 1080i 29.97, H.264, AAC 48 kHz");
an if (flag) {
f = enc.encodeEncodeProgress
= function (progress) {
$ .writeln (progress);
}
eHost. enc.encode ("/ Users / test / Desktop / 00000.MTS", "/Users/test/Desktop/0.mov");
} else {
alert ("The preset could not be loaded ");
}
编码结束
ehost = App.GetEncoderHost ();
enc = EHost.CreateEncoderForFormat ( "QuickTime");
flag = Enc.LoadPreset ( "HD 1080i 29.97, H.264, AAC 48 kHz");
an if (flag) {
f = enc.onEncodeFinished
= function (success) {
if (success) {
alert ("Successfully encoding has ended ");
} Else {
Alert (" failed to encode ");
}
}
EHost.RunBatch ();
} Else {
Alert (" preset could not be read ");
}
2.开始批处理
eHost = app.getEncoderHost ();
eHost.runBatch ();
3.停止批次
eHost = app.getEncoderHost ();
eHost.stopBatch ();
4.暂停批处理
eHost = app.getEncoderHost ();
eHost.pauseBatch ();
5.获取预设格式
EHost = App.GetEncoderHost ();
List = EHost.GetFormatList ();
6.获取预设
eHost = app.getEncoderHost ();
enc = eHost.createEncoderForFormat ("QuickTime");
list = enc.getPresetList ();
还有很多...
我发现的最接近的信息是: http ://www.openspc2.org/book/MediaEncoderCC/
后面的资源其实还不错,如果你能看懂日文,或者至少使用Chrome自带的翻译功能,那么你可以看到它有这样的资源:
http://www.openspc2.org/book/MediaEncoderCC/easy/encodeHost/009/index.html
我们可以通过脚本执行几乎所有的基本功能。
我有一个关于Soundbooth的类似问题。. 虽然我没有尝试编写 Adobe Media Encoder 脚本,但它没有出现在我可能连接到的应用程序列表中,并使用 ExtendScript Toolkit 编写脚本。
如果您使用的是 Windows,我确实发现这篇文章可能会派上用场。我想使用 AppleScript 编写的类似内容可以在 OSX 上完成这项工作。我没试过,但这个Sikuli的东西看起来不错,也许它可以帮助完成这项工作。
Adobe Media Encoder 似乎无法编写脚本。我想知道,对于批量转换,你可以使用ffmpeg吗?如果你在谷歌上搜索ffmpeg batch flv ,似乎有一些脚本可以解决这个问题。
HTH,乔治
目前官方的立场是“不”,但是如果你打开 Adobe Extend Script Toolkit,并将目标应用程序设置为 Media Encoder,你会在数据浏览器中看到一些对象和方法已经暴露在应用程序对象中,如 app.getFrontend()、app.getEncoderHost() 等。虽然没有官方文档,也没有支持,所以你可以自由地尝试它们,风险自负。
您可以像这样使用 ExtendScript 反射接口:
a = app.getFrontend()
a.reflect.properties
a.reflect.methods
a.reflect.find("addItemToBatch").description
但据我所知,除了方法和属性列表之外,无法通过这种方式找到有意义的信息。
更多关于 ExtendScript 反射接口的信息可以在JavaScript 工具指南 CC文档中找到。
2021 年
是的,AME 可以在 ExtendScript 中编写脚本。AME API 文档可以在 https://ame-scripting.docsforadobe.dev/index.html找到。API 方法可以在 AME 内部本地调用,也可以通过 BridgeTalk 远程调用。
app.getFrontend().addCompToBatch(project, preset, destination);
该方法要求对项目进行结构化,以便 1 个且只有 1 个 comp 位于项目的根目录。
var encoder = app.getEncoderHost().createEncoderForFormat(encoderFormat);
var res = encoder.loadPreset(encoderPreset);
if(res){
encoder.encode(project, destination); // error: encode is not a function
}
根据报告问题的帖子https://community.adobe.com/t5/adobe-media-encoder-discussions/media-encoder-automation-system-with-using-,该方法似乎已在 AME 2017.1 中删除扩展脚本/td-p/9344018
似乎不是。有一些参考表明它通过使用 FCP XML 在某种程度上是可编写脚本的,但它在接受的形式中不是“可编写脚本的”。
编辑,看起来他们终于伸出了手指,让我可以编写脚本:https ://stackoverflow.com/a/69203537/432987
在“ extendscript adobe media encoder ”的duckduckgo结果中获得第二名之后,我来到了这里。首先是 Adobe 论坛上的一个帖子,其中一位 adobe 员工写道:
Adobe Media Encoder 中的脚本不是受支持的功能。
并且,只是为了向任何寻求使用 adobe 平台为 adobe 用户开发解决方案的人提供帮助:
此外,这是一个用户对用户的论坛,而不是 Adobe 人员支持的官方渠道。
我认为答案是“Adobe 说不”