Передача параметров из Python в ExtendScript

Я работаю в команде видеоредакторов и пытаюсь создать инструмент, который автоматизирует некоторые части нашего конвейера. Основная часть этого инструмента - небольшая программа, написанная на Python с PyQt, которая создает каталог проекта и файлы проекта Premiere на основе правильного соглашения об именах, которое мы используем в нашем конвейере.

Главное, чего сейчас не хватает - это возможность использовать одно и то же имя для последовательностей внутри проекта. Я хотел бы, чтобы это также было автоматизировано, чтобы избежать ошибок оператора, если редакторы сами отвечали за ввод названия последовательности.

У меня проблема в том, что я не уверен, как передать имя из Python скрипту *.jsx, который создает последовательности и переименовывает их.

Одна из моих идей заключалась в том, чтобы использовать пакетный скрипт, который запускает файл jsx с использованием ExtendScript Toolkit.exe. Внутри jsx я запускал скрипт Python с использованием system.callSystem, а затем передавал выходные данные функции, отвечающей за создание и переименование последовательностей. Однако есть две проблемы с этой идеей:

  1. Это означает, что мне придется пройти через After Effects, поскольку в Premiere нет системного модуля.

  2. Мне нужно будет получить путь к скрипту jsx и оттуда запустить скрипт Python, который будет находиться в некотором относительном пути. Я знаю, как получить путь к скрипту jsx, но проблема, с которой я столкнулся сейчас, заключается в следующем: если я попытаюсь запустить скрипт jsx с помощью этой команды ExtendScript Toolkit.exe -run script.jsxпуть к сценарию кажется временным, что означает, что путь к сценарию Python неверен. Если я использую ExtendScript Toolkit.exe -cmd script.jsx, он получает правильный путь к сценарию, но тогда ничего не происходит.

Чтобы дать вам представление о том, что я пытался сделать, вот сценарии, которые я пытался использовать.

python.py

print("Hello World!")

script.jsx

#target aftereffect

var path = (new Folder(new File($.fileName)).parent).fsName + "\\python.py"

var cmd = 'python.exe ' + path

var stdout = system.callSystem(cmd)

alert(stdout)

Как я уже сказал, с -run включите командную строку, это в основном работает, и я получаю окно с предупреждением, в котором говорится, что Python не может найти указанный файл, что имеет смысл, поскольку путь к файлу jsx является временным путем. С -cmd переключатель, я не получаю окно предупреждения, но я не получаю никаких ошибок в командной строке. Это просто выходит, как будто ничего не случилось.

Я делаю что-то неправильно? Есть ли способ, которым я могу достичь того, что я хочу сделать?

0 ответов

Другие вопросы по тегам