Quantcast
Channel: Adobe Community : Popular Discussions - Premiere Pro SDK
Viewing all 53010 articles
Browse latest View live

cep_node context

$
0
0

Hi everyone,

I'm trying to get the basic PPRO Panel example work with the following addition:

Download a file and import into premiere's source monitor.

I'll be discussing the Download part of this task, as I'm failing with it.

I've see some discussions here and I've noticed that

require('http')

or

cep_node.require('http')

is being used.

As a new user of this product, I couldn't find a resource or documentation on where is that code can exists?

I've tried to include it in the .js file which is loaded first (ext.js in this example) but chrome debugger complains:

Uncaught ReferenceError: cep_node is not defined

What am I doing wrong?

 

Thanks!

 

EDIT:

Looks like the `<CEFCommandLine>` node in the manifest wasn't at its right place. 

I've just realized that maybe a validation of the manifest structure is something that would help investigate and save some time. 

If someone could direct me, I'll be happy to contribute.


Timeline Clip Properties inPoint and outPoint give inaccurate results when clip speed / duration not 100%

$
0
0

To recreate this issue, define a clip using the following extendScript

 

ThisClip=app.project.activeSequence.videoTracks[0].clips[0];
//i.e. the first video clip on the first video track of the active sequence.
Output={  name:ThisClip.name,  start:ThisClip.start.seconds,  end:ThisClip.end.seconds,  inPoint:ThisClip.inPoint.seconds,  outPoint:ThisClip.outPoint.seconds,  duration:ThisClip.duration.seconds
};

 

Then take a clip, called "TestClip", 0:00:00:00 and a TRT of more than 6 seconds.

For clarity's sake make the Active Timeline an even frame rate (24, 25 or 30fps, not 29.97 or 23.976)

Take a 4-second stretch of "TestClip" from source 0:00:02:00 and edit into the Active Sequence starting at 10 seconds, clip speed / duration at 100%

So you'll effectively:

     Source from 0:00:02:00 to 0:00:06:00

     in the timeline from 0:00:10:00 to 0:00:14:00

There is nothing else in this timeline.

 

If you run the above ExtendScript

 

the variable "Output" above will populate as follows, exactly as expected.

namestartendinPointoutPointduration
TestClip1014264

All is well and right with the world

 

 

Now apply a clips speed of 200% to the clip in the timeline and run the same ExtendScript above.

The results will show inaccuracies for inPoint and outPoint

namestartendinPointoutPointduration
TestClip1012

1

3

2

Consider that in the timeline the source content has not changed, only its speed.

The expected result for inPoint and outPoint should be the SAME as the Output for 100%, starting at 2, ending at 6, representing 4 seconds of source even though it accounts for only 2 seconds of TRT in the timeline.  It runs the footage faster, but uses the same source In and Source Out.  But our Output is falsely reporting we're starting source at source sec 1, ending at source sec 3 which is not true. You can verify by looking at your footage, and of course, if you match frame from the first frame of source in the timeline, indeed you pull up second 2 in the source monitor, not second 1.

 

Same issue with the clip slowed down to 50% though in this case the inPoint is at 4, ending at 12, when, again is should show from second 2 to second 6.

namestartendinPointoutPointduration
TestClip1012

4

12

8

Am I missing something or is this a bug in the ExtendScript API?

yuv32 and transform world

$
0
0

Hi everyone

 

  I made a plugin for AE and updated it for Premiere. It uses a transform_world and an iteration. In argb 8/32 bits ans yuv8 everything World fine. But in YUV32 the transform world make an aberration. It s configured like the ARGB 32 bits transform world.

 

Has someone got a similar problem?

Premiere to media encoder with extendscript

$
0
0

Hi Guys,

 

Since I'm new to extendscript, I'm still having some trouble with it, maybe you guys can help. I have a sequence with a lot of short clips in it and I want to export the clips separately. Up till now I've always nested all the clips after editing them and then exported the nested sequences. But since it's for a recurring client, I've been trying to automate this proces with a script to make it easier.

 

What I'm doing: I made a script that sets the in/out point of the sequence and sends it to media encoder. It iterates through all the clips in the sequence and does this for every one of them, so essentially I'm exporting the same sequence, but with different in/out points. Everything appears to work just fine, I get a bunch of clips in my render queue with the right names. The problem is, that the in/out point for every clip is the same.

 

This is what I got so far:

 

app.enableQE();
var actSeq = app.project.activeSequence;


if (actSeq) {
    var seqName = actSeq.name;    var actTrack = actSeq.videoTracks[0];    var clipCount = actTrack.clips.numItems;    //app.encoder.launchEncoder();        var outPreset = new File(outputPresetPath);    var outputPresetPath = "~/Documents/Adobe/Adobe%20Media%20Encoder/12.0/Presets/480x270%2016-9%20LowRes.epr";    var outputPath = Folder.selectDialog("Kies Export Folder");    var activeSequence = qe.project.getActiveSequence();    var i;    for (i=0; i<clipCount; i++){        var actClip = actTrack.clips[i];        var clipInPoint = actClip.start;        var clipOutPoint = actClip.end;        actSeq.setInPoint(clipInPoint);        actSeq.setOutPoint(clipOutPoint);        var clipName = actClip.name.split(".").shift();        var outputFormatExtension = activeSequence.getExportFileExtension(outPreset.fsName);        var fullPathToFile = outputPath.fsName + "/" + clipName + "." + outputFormatExtension;        var outFileTest = new File(fullPathToFile);            var jobID = app.encoder.encodeSequence(actSeq,  fullPathToFile, outPreset.fsName, 1, 1);    };    outPreset.close();
} else {    alert("Geen actieve sequence. Selecteer er eerst één.")    }

 

I can't figure out why it's going wrong, since everything else is working correctly.

 

Thanks!

 

[EDIT] BTW: if I iterate manually, by just changing the i variable into a number, it works perfectly fine.

Applying a scale change through scripting

$
0
0

Hi,

 

I'm trying to get to grips with JavaScripting on Premiere Pro CC 12 and my first task is to apply a scale change to a series of videos which runs for the first second scaling from 100 to 200 and then for another second scaling from 200 to 300. It seems as though everything is being correctly set when debugging the script but in the project window the keys I've made are not showing up and the final scaling is applied from time 0 so the end effect is that it's full size from the outset.

 

what am I missing?

 

TIA

Richard

 

var proj = app.project;

var seq = proj.activeSequence;

 

var time = seq.getPlayerPosition();         // CTI = Current Time Indicator.

var time2 = seq.getPlayerPosition();

var time3 = seq.getPlayerPosition();

time2.seconds += 1;

time3.seconds += 2;

 

 

var videoTracks = seq.videoTracks;

for (var i = 0; i < videoTracks.numTracks; i++) {

var track = videoTracks[i];

for (var j = 0; j < track.clips.numItems; j++) {

var clip = track.clips[j];

 

if (clip.name == "Rectangle 720 576.png") {

for (var k = 0; k < clip.components.numItems; k++) {

var component = clip.components[k];

if (component.displayName == "Trajectoire") {       // Trajectory

 

for (var l = 0; l < component.properties.numItems; l++) {

var property = component.properties[l];

if (property.displayName == "Echelle") {        // Scale

if (!property.isTimeVarying()) {

property.setTimeVarying(true);

}

property.addKey(time);

property.addKey(time2);

property.addKey(time3);

var k = property.getKeys();

if (property.areKeyframesSupported() == true) {

var result = property.getValueAtKey(time);

property.setValueAtKey(time, 100, true);

property.setValueAtKey(time2, 200, true);

property.setValueAtKey(time3, 300, true);

}

}

}

 

}

}

 

}

}

}

Applying a scale change through scripting

$
0
0

Hi,

 

I'm trying to get to grips with JavaScripting on Premiere Pro CC 12 and my first task is to apply a scale change to a series of videos which runs for the first second scaling from 100 to 200 and then for another second scaling from 200 to 300. It seems as though everything is being correctly set when debugging the script but in the project window the keys I've made are not showing up and the final scaling is applied from time 0 so the end effect is that it's full size from the outset.

 

what am I missing?

 

TIA

Richard

 

var proj = app.project;

var seq = proj.activeSequence;

 

var time = seq.getPlayerPosition();         // CTI = Current Time Indicator.

var time2 = seq.getPlayerPosition();

var time3 = seq.getPlayerPosition();

time2.seconds += 1;

time3.seconds += 2;

 

 

var videoTracks = seq.videoTracks;

for (var i = 0; i < videoTracks.numTracks; i++) {

var track = videoTracks[i];

for (var j = 0; j < track.clips.numItems; j++) {

var clip = track.clips[j];

 

if (clip.name == "Rectangle 720 576.png") {

for (var k = 0; k < clip.components.numItems; k++) {

var component = clip.components[k];

if (component.displayName == "Trajectoire") {       // Trajectory

 

for (var l = 0; l < component.properties.numItems; l++) {

var property = component.properties[l];

if (property.displayName == "Echelle") {        // Scale

if (!property.isTimeVarying()) {

property.setTimeVarying(true);

}

property.addKey(time);

property.addKey(time2);

property.addKey(time3);

var k = property.getKeys();

if (property.areKeyframesSupported() == true) {

var result = property.getValueAtKey(time);

property.setValueAtKey(time, 100, true);

property.setValueAtKey(time2, 200, true);

property.setValueAtKey(time3, 300, true);

}

}

}

 

}

}

 

}

}

}

C++ plug-in – problem rendering audio waveforms for a growing clip

$
0
0

Hi,


I’m writing a C++ plug-in for Premiere Pro CC.


I’ve based the plug-in on the example project SDK_Custom_Import, which is provided with the plug-in SDK.


In my plug-in, I’ve set the flags:


importInfo->canProvidePeakAudio = kPrTrue;

importInfo->avoidAudioConform = kPrTrue;


and


fileInfo8->accessModes |= kRandomAccessImport


This allows me to manually render the waveforms on-demand via the imGetPeakAudio case-statement.


In Premiere’s setting: Edit > Preferences > Media > Automatically refresh growing files. I have set the minimum refresh rate of 10 seconds.


I would like to import a growing, 20 minute clip with uncompressed audio at 48KHz. In my importer, I’m adding a 20 minute clip to the timeline, and back-filling video and audio as the clip grows (i.e. I’ve created a static length clip which is being slowly populated).


I can hear the audio as it is added, and I can render the waveforms correctly. My only problem is that the waveforms are not being updated/redrawn on the timeline. I was hoping that by setting the growing file refresh to 10 seconds (Edit > Preferences > Media > Automatically refresh growing files), that the timeline would automatically redraw every 10 seconds.


If I manually resize the timeline at 10 second intervals to coincide with the growing file refresh, it forces the latest audio waveforms to be redrawn, which renders the latest audio waveform growth.


Is there any code flag, or menu setting, to schedule an automatic timeline redraw at the 10 second growing file refresh interval?


Or can I amend my plug-in to force a timeline redraw at regular intervals?


Any help you can provide is much appreciated.


Many thanks, Andy.

 

[Here is the list of all Adobe forums... https://forums.adobe.com/welcome]

[Moved... you need to ask programming questions in the programming forum... Mod]

How to call render when specific event happens?

$
0
0

Hi, All.

I am developing a plugin by Premiere pro and After Effects SDK.

By the way I have a question.

Now render function is called only when parameters are changed or rendering is in process...etc.

..................

Problem:

I added a thread in the plugin and it is running in every 10 seconds.

I want to call render function by emitting certain event in the thread even though rendering is not in process.

Is it possible?

 

Regards,

Anthonie.


background is not transparent on transition.

$
0
0

Hi, All.

I am creating a transition plugin from SDK_CrossDissolve.

By the way, I have a strange issue.

I set all pixel of output to {0,0,0,0} on plugin code, but the background is not transparent and layer image.

How can I set transparent background?

//code

...

PF_LayerDef* dest = output;

char* destData = (char*)dest->data;

...

for (int y = 0; y < output->height; y++)

{

     for (int x = 0; x < output->width; x++)

     {

          ((float*)destData)[(y * dest->rowbytes) / 4 + x * 4 + 0] = 0;

          ((float*)destData)[(y * dest->rowbytes) / 4 + x * 4 + 1] = 0;

          ((float*)destData)[(y * dest->rowbytes) / 4 + x * 4 + 2] = 0;

          ((float*)destData)[(y * dest->rowbytes) / 4 + x * 4 + 3] = 0;

     }

}

.....

 

//result

New Sequence from Clip using Premiere Pro SDK

$
0
0

Is there any way to either:

- Create a new sequence using the dimensions of a clip

- Change the frameSizeHorizontal and frameSizeVertical properties of a sequence within Premiere Pro, through the use of Extendscript / Javascript?

 

 

I am unable to directly change the frameSizeHorizontal and frameSizeVertical properties of the sequence since they are read-only I feel like one approach may be to create a temporary custom sequence preset using the desired dimensions of the sequence (is dependent on the clip in question, so cannot be hard-coded or created into a template). However this approach already seems far too involved for what should be a simple task. Any ideas?

apply an effect on a clip with script

$
0
0

Hi,

tried to apply an effect to a clip, I could get the list of effects with QE object, but I couldn't find a function such as applyEffect for premiere pro. do you have any idea on how to apply an effect on a clip with the script?

 

Best Regards,

Daniel

Is everything possible in SDK?

$
0
0

Hejhej,

 

first, I've no clue what exactly Adob's SDK (API) can do.

I'm a MotionDesigner and not a Developer.

And I also don't know where to find people capable helping me out with  simple questions about Adobe's SDK

and  also where to find people to work together with on the following task:

 

For my client I'm doing a (in my opinion) complex text overlay template for Premiere via AfterEffects and this EssentialGraficsPanel.

This EGP is good and it's getting better with the new update (CC2019) but it's by far not perfect.

If you want to put many functionalities in one template it will become quite confusing for the client to use.

In my case a drop down menu would do the job.

But the even bigger problem is, that my client probably has to stick with the CC2018 version a long time for security reasons.

 

So I asked myself if there are other ways to achieve the best and handy solution for the client.

Here are a few parameters:

The client produces a lot of video content for the internet and there  are video editors for that using premiere.

In this tool it shoult be possible to

• type text in different styles, sizes, alignments, colors

• with different textbars

• different styles of animation

• defferent effects

 

I know how to do  that stuff in AE with expressions (of course with a lot of help from different communities)

Befor the EGP I did a version with the dynamic link thingy where the editors had to put in various defined commands in invisible text fields .

So the there were not that many text fields and you had a good overview - but you always had to have the list with the commands besides.

 

I hope you developer guys got the point.

Is it possible to develop such a tool for premiere?

If yes, will it work like the EGP with the use of AfterEffects or stand-alone and most relevant intependently from the CC-Version.

If yes, are there freelancer out there specialized on this (german based would be perfect)?

 

Any other suggestions because of the fact that I'm thinking completely wrong?

insertClip() moves clips out of sync

$
0
0

Hey guys, quick question about the insertClip() function.

 

Does anyone know of a simple way to keep tracks in sync when using insertClip()? I'm inserting a clip at the beginning of my sequence on V1. Everything works as expected except clips on the higher tracks do not move down the timeline with the V1 clips.

 

Sync locks are on, so assuming it's an ExtendScript issue. Any help is greatly appreciated—thanks!

How can I change "Input LUT" in Lumetri color using Extendscript for several videos?

$
0
0

I made a script, which has to set LUT from the file. I add my .cube file in default folder (C:\Program Files\Adobe\Adobe Premiere Pro CC 2019\Lumetri\LUTs\Creative) and after use the line:

app.project.activeSequence.videoTracks[1].clips[0].components[2].properties[30].setValue(1 4, true);

But when I select other sequence, "Input LUT" stays the same (or [Custom], but not my settings). How can I fix it?

P.S. If I execute "app.project.activeSequence.videoTracks[1].clips[0].components[2].properties[30].setValue(1 4, true)" not in the loop - Everything works fine.

Exporting from Adobe Premiere using extendscript

$
0
0

Hi!

 

I'm trying to figure out how the exportTimeline() function works.  So far, I have managed to import files and add them to a sequence.  Now I want to export the sequence as a Quicktime movie.  Eventually, I want to be able to set start and end points for an export (i.e. export a work area, export a clip from the timeline, etc.).

 

I did try to use the function by passing in a path to a file name:

 

exportTimeline("somepath.mov")

 

I didn't get an error message, which is good.  I got a 'result:7' (not sure what that means).  I did not see any new files exported to the path though.

 

Thanks!


Anyway to script opening a panel?

$
0
0

Is there anyway to script opening an extension panel from js?

 

I'm currently developing a panel acting as a toolbox.

I'd like for the toolbox to be able to open Modal dialogs.

Looking through the Samples project I found the HTML Test Modal dialog which looks like what I want.

I just need a way to trigger the dialog to open.

 

I also would like to script closing the panel as well.

 

Any ideas?

 

 

Thanks,

Brennan

adding support for FFV1 and Matroska

$
0
0

Hi all,

 

I'm working as part of the IETF Working Group, CELLAR, which focuses on lossless audiovisual formats and is standardizing a lossless video encoding, FFV1, and an audiovisual container format, Matroska. The IETF working group charter, timeline, deliverable list and other info can be found the CELLAR working group page. Because of the level of work going into these standards and the small but steadily growing number of users, I wanted to start researching ways about increasing implementations through a mix of either volunteering and/or sponsorship.

 

From an initial look at the Adobe Import SDK, it seems that FFmpeg could bind with the Adobe SDK to allow import of both formats. I'm looking for advice or resources about developing Adobe plugins for the import/export of these video formats. I would also love to discuss this in more detail with anyone who may have familiarity with both the FFmpeg API and the Adobe SDK in order to get a sense of the level of effort involved.


Thanks much,
Dave Rice

How to invoke JavaScript/ExtendScript for Premiere Pro CC in Mac OS

$
0
0

Looking for a way to run JavaScript aka ExtendScript in Premiere Pro CC

 

Here's what I've got for other Adobe Apps, using AppleScript:

 

tell application "Adobe After Effects CC 2015"  activate  set SomeExtendScript to "ThisVariable='Runs This Js Code';"  DoScript SomeExtendScript
end tell


tell application "Adobe Photoshop CC 2015.5"
  activate  set SomeExtendScript to "ThisVariable='Runs This Js Code';"  do javascript SomeExtendScript
end tell


tell application "Adobe Illustrator"
  activate  set SomeExtendScript to "ThisVariable='Runs This Js Code';"  do javascript SomeExtendScript
end tell

 

But so far nothing for Premiere.

tell application "Adobe Premiere Pro CC 2015"  activate  set SomeExtendScript to "ThisVariable='Runs This Js Code';"  -- Does not work: DoScript SomeExtendScript  -- Does not work: do javascript SomeExtendScript  -- Does not work: do script SomeExtendScript
end tell

Looking to Activate Custom Panels via Keyboard Shortcut + Keyboard Listeners when Panel is Active

$
0
0

This may well a couple of feature requests, but looking forward to getting some feedback...

 

In the interest of building more robust and flexible custom HTML panels, we were looking for ways to achieve the following:

1 - Activate and give focus to a custom panel via keyboard shortcut.

2 - Once activated and in focus that custom panel's key listeners (keystroke, keyup, keydown) can be coded to either take precedent over PPro's keyboard shortcuts or not.

 

The goal is to get the above two to work in concert so as to create workflows that would allow 100% keyboard driven functionalities, along the lines of:

- Call the Custom Panel via PPro shortcut

- Run the Panel's function (or suite of functionalities) via keystrokes

- Release control back to PPro and Return to regular PPro kb by exiting Panel focus

Imagine rapid fire: keystroke to activate, use, and release.

 

So far we've been unable to do this.

Reasons:

A - Haven't found a way or workaround to assign the ability to open & give focus to a custom panel via keyboard shortcut

B - Haven't found a way to make custom panel key listeners reliably detect keystrokes even when they are in focus..

 

So far we've tried by way of the CSInterface binding listed here:

https://forums.adobe.com/thread/2250292

and via standard HTML5/JS bindings

document.body.addEventListener / document.addEventListener.

 

Occasionally they work, but not reliably.

 

We're on Mac OS

Passing information from jsx to js.

$
0
0

Hello Community,

I have a problem with passing information from jsx to js file.

 

my jsx file:

$.extendScript = {  test : function() {    return "string";  },
}

 

my js file.

(function () {    var cs = new CSInterface();    var variable = "";    cs.evalScript('$.extendScript.test()', function(result) {       variable = result;       alert("variable in evalScript =" + variable);     });    alert("variable in outside = " + variable);    
}());

 

In evalScript function the variable get's the string from jsx function but when I want to use it outside I get empty string again.

Also I get the alert outside evalScript first in order. Why this happens?

 

 

Does anyone know why this happens and how to fix this?

Best Regards

Viewing all 53010 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>