Как я могу отправить выбранные композиции в After Effects в AME через extendscript? - PullRequest
1 голос
/ 03 апреля 2020

Я пытался выяснить это за последний день или два с минимальными результатами. По сути, я хочу отправить выбранные композиции в After Effects в Adobe Media Encoder с помощью скрипта и использовать информацию о них (подстроки их имени, ширины и т. Д. c - все, что я уже знал и понял ) и укажите соответствующую предустановку 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 для обхода вывода модуль / очередь рендеринга и go непосредственно в AME ... НО, который в основном включает в себя указание файла (а не выбранных в настоящий момент композиций) и требует ТОЛЬКО наличия единственной композиции (подлежащей визуализации) на уровне root проект: 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 часов, пытаясь прочесать инте rnet и различных ресурсов, но до сих пор не хватало. Заранее спасибо за помощь!

...