Premiere Script
Premiere Script
app.enableQE();
function readFile(filePath){
file = new File(filePath);
file.open("r", "TEXT");
var fileString = "";
while (!file.eof){
var line = file.readln();
if (fileString.indexOf(line) == -1){
fileString += line;
}
}
return fileString;
}
function readTextFile(filePath) {
var file = new File(filePath);
if (file.exists) {
file.open('r'); // Открыть файл для чтения
var content = file.read(); // Чтение содержимого файла
file.close(); // Закрыть файл
return content;
} else {
alert("Файл не найден: " + filePath);
return null;
}
}
function get_item_size(aaa_item){
start_string = ".Intrinsic.VideoInfo>"
full_string = aaa_item.getProjectMetadata()
start_index = full_string.indexOf(start_string) + start_string.length
number_substring = full_string.slice(start_index)
x_size = parseInt(number_substring, 10)
start_string = ' x '
start_index = number_substring.indexOf(start_string) + start_string.length
number_substring = number_substring.slice(start_index)
y_size = parseInt(number_substring, 10)
return [x_size, y_size]
}
function getSizeFromFile(folder){
var sizesX = readTextFile(folder + "/" + "sizeX.txt");
var sizesY = readTextFile(folder + "/" + "sizeY.txt");
return [sizesX, sizesY];
}
function getRealSize(sizesRaw){
sizesRaw = sizesRaw.replace("[", '');
sizesRaw = sizesRaw.replace("]", '');
sizes = sizesRaw.split(',');
return sizes;
}
function get_shotname(path) {
var parts = path.split("\\");
const fileNameWithExtension = parts[parts.length - 1];
const fileName = fileNameWithExtension.split('.')[0];
return fileName;
}
if (cur_isBack == true) {
var importFolder = Folder(processed_media_root.toString()+"\\backgrounds")
var filez = importFolder.getFiles();
back_files = select_by_ext_list(filez, PICTURE_FORMATS).sort(compareNames);
}
if(is_logo == true) {
var importFolder = Folder(processed_media_root.toString()+"\\logo")
var filez = importFolder.getFiles();
logo_files = select_by_ext_list(filez, PICTURE_FORMATS).sort(compareNames);
}
if (is_ftg == true) {
var importFolder = Folder(settingz.root + "\\Футаж")
var ftg_video = importFolder.getFiles();
app.project.importFiles(ftg_video[0].toString())
app.project.rootItem.children[app.project.rootItem.children.length-
1].setScaleToFrameSize();
}
// CHECK app
if (typeof app === "undefined" || !app || !app.project || !app.project.rootItem) {
$.writeln("ERROR: Проект не доступен или отсутствует rootItem");
throw new Error("Проект не доступен");
}
clips = []
for (var c = 0; c < app.project.rootItem.children.length; c++) {
clips.push(app.project.rootItem.children[c])
}
n = app.project.rootItem.children.length
// BACKGROUND
if (cur_isBack == true) app.project.createNewSequenceFromClips("newSequence",
app.project.rootItem.children[(audio_files.length*2)]);
if (cur_isBack == false) app.project.createNewSequenceFromClips("newSequence",
app.project.rootItem.children[n-2]);
previous_end_moment = '0'
videotrack.insertClip(clips[c+audio_files.length], previous_end_moment, 0,
0); // insert
videoclip
if (cur_isBack == true) if(c!=0) back_videotrack.insertClip(clips[c+
(audio_files.length*2)], previous_end_moment, 0, 0); // insert background img
//if (is_ftg == true) ftg_track.insertClip(clips[clips.length-1],
previous_end_moment, 0, 0); // insert background img
videotrack.clips[c].start = previous_end_moment;
previous_end_moment = app.project.sequences[0].audioTracks[1].clips[c].end;
// update time end
audioclip
previous_end_moment.seconds = previous_end_moment.seconds + AUDIO_PAUSE
//$.writeln(previous_end_moment)
videotrack.clips[c].end = previous_end_moment;
//if (is_ftg) {
// var blendProp = ftg_track.clips[0].components[0].properties[1];
// 5 - разница
// 14 - добавить
// blendProp.setValue(14);
// }
aaaaclcl = app.project.sequences[0].videoTracks[1].clips[c]
aaa_scl_prop = aaaaclcl.components[1].properties[1]
aaa_scl_prop.setValue(DESIRED_SCALE*100)
function timeToMilliseconds(time) {
var totalMilliseconds = (time.seconds * 1000) + (time.minutes * 60 * 1000) +
(time.hours * 3600 * 1000);
return totalMilliseconds;
}
if (cur_isBack == false) {
add_back_clip(app.project.sequences[0].audioTracks[2],
app.project.rootItem.children[n-1], 0, 0)
add_back_clip(app.project.sequences[0].videoTracks[0],
app.project.rootItem.children[n-2], 0, 0)
app.project.sequences[0].audioTracks[0].clips[app.project.sequences[0].audioTracks[
0].clips.length-1].end =
app.project.sequences[0].videoTracks[0].clips[app.project.sequences[0].videoTracks[
0].clips.length-1].end
}
if(is_logo == true){
var logo_start = app.project.sequences[0].audioTracks[1].clips[0].start;
var logo_end = videotrack.clips[videotrack.clips.length-1].end
var lX = posX/aa.videoFrameWidth
var lY = posY/aa.videoFrameHeight
//setKey(logo_posProp, 0, [0,0]);
logo_posProp.setValue([lY, lY]);
logo_scaleProp.setValue(logo_size);
}
for (var c = 0; c < app.project.sequences[0].videoTracks[1].clips.length; c++) {
vid_clip = app.project.sequences[0].videoTracks[1].clips[c]
var x = sizez[0];
var y = sizez[1];
back_scaleProp.setValue(scale);
}
}
if (is_ftg == true) {
var QEseq = qe.project.getActiveSequence();
QEseq.addTracks(1, 3, 0, 0, 0, 0, 0);
var project = app.project;
var sequence = project.activeSequence;
var tracks = sequence.videoTracks;
var QEtrack3 = QEseq.getVideoTrackAt(3);
tracks[3].insertClip(clips[clips.length - 1], '0', 0, 0, 0);
var lastClip =
app.project.sequences[0].videoTracks[0].clips[app.project.sequences[0].videoTracks[
0].clips.length - 1];
var durG = lastClip.end.seconds;
ftg_track = app.project.sequences[0].videoTracks[3];
if (ftg_track.clips.length > 0) {
ftg_track.clips[ftg_track.clips.length - 1].end = durG;
// alert(durG + "\n" + ftg_track.clips[ftg_track.clips.length - 1].end);
}
//$.writeln("SAVE_FILENAME");
//res = app.project.sequences[0].exportAsMediaDirect(CUR_FILENAME,
settingz.presetPath, 0)
//$.writeln(CUR_FILENAME);
//$.writeln(res);
app.project.closeDocument(1, 0)
$.writeln("stage1");
file = new File(rootPath + '\\stage1'); // signal finish
file.open("w");
file.write('stage1')
file.close()