Я работаю в команде видеоредакторов и пытаюсь создать инструмент, который автоматизирует некоторые части нашего конвейера. Основная часть этого инструмента - небольшая программа, написанная на Python с PyQt, которая создает каталог проекта и файлы проекта Premiere на основе правильного соглашения об именах, которое мы используем в нашем конвейере.
Главное, чего сейчас не хватает, - это возможность использовать одно и то же имя для последовательностей внутри проекта. Я хотел бы, чтобы это также было автоматизировано, чтобы избежать ошибок оператора, если редакторы сами ответственны за ввод названия последовательности.
У меня проблема в том, что я не уверен, как передать имя из Python скрипту * .jsx, который создает последовательности и переименовывает их.
Одной из идей, которые у меня были, было использование пакетного скрипта, который запускает файл jsx с использованием ExtendScript Toolkit.exe. Внутри jsx я запускал скрипт Python с использованием system.callSystem, а затем передавал выходные данные функции, отвечающей за создание и переименование последовательностей. Однако есть две проблемы с этой идеей:
Это означает, что мне придется пройти через After Effects, поскольку в Premiere нет системного модуля.
Мне нужно будет получить путь к скрипту 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
я не получаю окно с предупреждением, но я не получаю никаких ошибок в командной строке. Он просто выходит, как будто ничего не случилось.
Я что-то не так делаю? Есть ли способ, которым я могу достичь того, что я хочу сделать?