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

ExtendScripts JSON object is suddenly undefined?

$
0
0

I've been passing data pretty fluently back and forth between a custom HTML5 panel and ExtendScript, making use of JSON.stringify

 

All of a sudden, today the JSON object is coming up as undefined in the ExtendScript context.

I know it has worked, and now it doesn't.  Why on earth?!


Lock / Unlock audio or video track

$
0
0

I was surprised after searching the forum that this question hasn't already come up.

 

I checked the sample and reflections but could not find any methods that would allow me to lock or unlock specific tracks, much like the setMute() / isMuted() code in the sample.

 

Do we have this capability? Would be a huge help.

exmancmd /install panel.zxp getting -411

$
0
0

Hi All,

 

When we try to install panel in a specific environment in all the systems we are getting -411 error, which denotes compatible app not found

We can still open the Premiere pro in the same machine.

We tried to install the panel for 2017.0.1 and 2017.0.2 both are not working in this specific environment with windows os.

 

On further checking we found

that when we try the /list all command its not showing all the products name in the command prompt

exmancmd /list all

0 extension installed for others

status     extension name version

------------------------------------------

 

but in other environments we get

 

0 extension installed for Photoshop cc 2017 64

status     extension name version

------------------------------------------

0 extension installed for Premiere Pro CC 2017

status     extension name version

------------------------------------------

 

 

Can someone give a solution for this

Thanks and Regards,

Anoop NR

Importing images as a sequence in Adobe Premiere Pro using extendscript

$
0
0

So I've been looking around and trying to find a way of importing image sequences in Adobe Premiere Pro using extendscript.

I can import separate single files using: app.project.importFiles(new Folder(folder_path));

But I can't give an option of importing these images as a sequence.

I tried using opts = new ImportOptions(new File("path_to_image")); opts.sequence = true; and calling this within app.project.importFiles(opts) but Premiere doesn't seem to support ImportOptions, I keep getting an error stating "Import Options does not have a constructor"....

I'm assuming Premiere Pro doesn't support ImportOptions?

Is there any other way of importing an image sequence using app.project.importFiles?

Thanks!

Premiere Pro extension to read/write an external file system?

$
0
0

I'm an experienced developer but a complete newbie to Premiere Pro so forgive my ignorance on PP specifics. I've been asked to look at the options for integrating Premiere Pro with an in-house video repository which exists outside of the local file system. We have a REST API for querying metadata and video references, and in practice the physical video files reside in AWS S3 buckets. Many of the video files are into the hundred of MBs, sometimes GBs, so it would be prohibitively slow to download a file from S3 before opening a local copy (or to upload it after saving). What I'm hoping is that it might be possible to write a Premiere Pro extension which would allow us to pass video data to and from S3 as required rather than dealing only with the local file system. For example if Premiere Pro is playing a 1GB video and the user moves the play position to the halfway mark than I would hope that the application might be able to request the extension to read data from file offset = 500MB, allowing the extension to set the S3 stream offset to the same point in the remote file.

 

Is such a thing possible using either the plug-in SDK or with a CEP panel?

 

From what I've read in the two SDKs so far:

  • As a plug-in it looks like this would be an importer type, and I can see that it should be possible to have an importer which supports the video formats we're using (in practice likely to be mpeg4/h264). However it looks like an importer really works at the frame level, which we don't want to get into. We'd really want the plug-in to act as a sort of proxy layer for the file system, with Premiere Pro calling the plug-in to read or write data, but the data being in an existing known format which the plug-in doesn't want to be decoding or encoding. However that doesn't seem to be an option for an importer.
  • I can see that a CEP panel could provide the means to query our external repository and then pull a video into Premiere Pro. This sample code does something a bit similar, querying Flickr then loading a selected image into Photoshop. However that code pulls the whole image down from Flickr to the local file system then pushes an openDocument request into Photoshop. That's not going to be an option for us with such large video files in S3 and when the application may be used in satellite locations with limited bandwidth.

 

Have I missed something in either API which would allow this sort of "data redirection"? Or does anyone have an alternative approach to the problem?

 

Thanks for any help.

evalScript taking some time to give back the control to the caller being asynchronous

$
0
0

Hi,

 

I'am calling csInterface.evalScript() which in turns calls a synchronous function inside a c++ library and i logged the time before and after  calling the  csInterface.evalScript() and also on getting the result, following is my observation:

 

Screen Shot 2018-01-22 at 11.49.35 AM.png

There is a delay of 211 milliseconds before and after calling the evalScript, being asynchronous isn't it supposed to give the control back immediately?My understanding of evalScript was that it should give the control back immediately and give the result whenever it is available but in this case it is happening the other way round, it is taking some time to give the control back along with the result(like a synchronous function).

 

Audio Units in Premiere Pro

$
0
0

Hi all,

 

I'm not sure if this is the right forum or not, but I didn't find a more relevant one. If you know, then please suggest.

 

I developed an Audio Unit. The processing introduces a latency. The latency support assumes a host (Premiere Pro) provides some extra sound data at the end of a  stream to pop-out all the delayed audio from a plugin. If a plugin introduces a latency of 4096 samples then it expects to get 4096 extra samples at the end.

 

This works fine in Premiere Pro when sequence's and clip's samplerates are the same. Once I put a 44100 Hz clip in a sequence and change sequence settings to 48000 Hz then Premiere Pro starts handling the latency incorrectly. It does output just 44100/48000 = 0,91875 of the required extra samples at the end.

 

The things get bad is we split a clip somewhere in the middle. The continuity of a clip gets broken because of the issue.

 

I did lot of tests and I believe there is a bug in Premiere Pro. Audio Units return latency in seconds and I believe the returned value by mistake gets multiplied by the coefficient mentioned above.

 

I hope this message will get delivered to Premiere Pro developers team and they could fix this.

 

 

Thanks,

Roman

Event Chaining

$
0
0

Hi community,

 

I need to understand what I'm conceptually doing wrong or what I'm confusing here.

This experiment is to test the chaining of events, so basically Event1 shall trigger Event2, which is split, so Event2 shall trigger Event3 and then finish. Sounds a bit weird when describing it that way, so here's the basic code:

 

index.html:

<html>  <head>    <meta charset="utf-8">    <script src="./lib/CSInterface.js"></script>    <script src="./lib/jquery.js"></script>    <script>    $(document).ready(function() {         $("#EventChain").on("click", function(e){            e.preventDefault();             var cs = new CSInterface();            var message = "Event Listeners created.\nLet's go!\n\n";            cs.addEventListener("Test.Event1", function(evt) {                message += evt.data + "\n\nEvent 2 to occur...\n\n";                $("#textarea").text(message);                // console.log(evt.data);                cs.evalScript('$._ext_ed.e_chain2("This is Event 2.")');            });            cs.addEventListener("Test.Event2", function(evt) {                message += evt.data + "\n\nEvent 3 to occur...\n\n";                $("#textarea").text(message);                // console.log(evt.data);                cs.evalScript('$._ext_ed.e_chain3("This is Event 3.")');            });            cs.addEventListener("Test.Event3", function(evt) {                message += evt.data + "\n\n";                $("#textarea").text(message);                // console.log(evt.data);                cs.removeEventListener("Test.Event1");                cs.removeEventListener("Test.Event2");                cs.removeEventListener("Test.Event3");            });            $("#textarea").text(message);            cs.evalScript('$._ext_ed.e_chain1("This is Event 1.")');        });    });    </script></head><body><header></header><section>  <button id="EventChain">EventChain</button><br/>  <textarea id="textarea" placeholder="Click the EventChain button!"></textarea></section><footer></footer></body></html>

 

JSX:

try {    var xLib = new ExternalObject("lib:\PlugPlugExternalObject");
} catch (e) {    alert(e);
}

$._ext_ed={ 
    dispatchEventCEP : function (_type, _payload) {        if (xLib) {            var eventObj = new CSXSEvent();            eventObj.type = _type;            eventObj.data = _payload;            eventObj.dispatch();        } else {            alert ("PlugPlugExternalObject not loaded.", true);                    }    },        e_chain1 : function (msg) {        alert ("Message \""+msg+"\" received.", false)        var eventType = "Test.Event1";        $._ext_ed.dispatchEventCEP(eventType, msg)    },        e_chain2 : function (msg) {        var eventType = "Test.Event2";        $._ext_ed.dispatchEventCEP(eventType, msg + "part one");        $.sleep(5000);        $._ext_ed.dispatchEventCEP(eventType, msg + "part two");    },        e_chain3 : function (msg) {        var eventType = "Test.Event3";        $._ext_ed.dispatchEventCEP(eventType, msg)    }
}

 

 

expected test result:

Event Listeners created.

Let's go!

 

This is Event 1.

 

Event 2 to occur...

 

This is Event 2.part one

 

Event 3 to occur...

 

This is Event 3.

 

This is Event 2.part two

 

Event 3 to occur...

 

This is Event 3.

 

 

actual test result:

Event Listeners created.

Let's go!

 

This is Event 1.

 

Event 2 to occur...

 

This is Event 2.part one

 

Event 3 to occur...

 

This is Event 2.part two

 

Event 3 to occur...

 

This is Event 3.

 

This is Event 3.

 

 

What's going on? Why is Event 3 not completely dispatched when Event 2 part one is obviously finished?

 

It gets even worse when I click the button once more:

Event Listeners created.

Let's go!

 

This is Event 1.

 

Event 2 to occur...

 

This is Event 2.part one

 

Event 3 to occur...

 

This is Event 2.part two

 

Event 3 to occur...

 

This is Event 2.part one

 

Event 3 to occur...

 

This is Event 2.part two

 

Event 3 to occur...

 

This is Event 3.

 

This is Event 3.

 

This is Event 3.

 

This is Event 3.

 

This is Event 3.

 

This is Event 3.

 

This is Event 3.

 

This is Event 3.

 

I'll try to find some useful reading on this myself but I'd appreciate useful comments!

 

Cheers,

e.d.


Link Media dialog when re-linking files trough code.

$
0
0

Hi,

 

We are integrating  adobe into our workflow automation and are running into what appears to be a bug in the program.

When renaming files to facilitate automatic upload and synchronisation, a dialog shows after the file is re-named and re-linked by code.

This seems buggy to us, as the whole reason of being able to use code for this is to prevent user interaction and thereby user error.

 

The code we use is as following:

 

cep.fs.rename(oldPath, newPath); 

projectItem.changeMediaPath(newPath); 

 

Are we missing something or is this indeed a bug in the program?

 

Kind regards,

Sven

Script running twice the first time

$
0
0

Hello,

 

I'm very new to developing HTML5 extensions, and coding in general, so forgive me if the question is basic or if I'm not sharing the right information to help solve my issue.

 

I wrote a simple panel with a single button firing a script to duplicate, rename (by incrementing the version number) and archive and active sequence.

 

All seems to work well, except that the first time I use it, it seems to be running twice in a row. Every time after that it seems to run fine.

 

Here's the GitHub link to my script: adobe-premiere-handy-tools/hostscript.jsx at master · jchichignoud/adobe-premiere-handy-tools · GitHub

 

 

I used the skeleton extension that comes with Brackets to build it, so I didn't really do anything else than change the name of the button outside of the hostscript.jsx

 

Thanks in advance for your help.

How object equality works in Extendscript?

$
0
0

Hello All,

 

Can someone explain how object equality works in the Premiere Pro?


I am bit confused with following two different outcome

 

app.project == app.project // returns true
app.projects[0] == app.projects[0] // returns false

 

Why it behaves differently with same type of object?

 


Premiere Pro Version: 12.0.0
Extension Type: Panel

 

Thanks & Regards,
Meet Tank

Exporter : QueueAsyncVideoFrameRender ?

$
0
0

Hello,

 

Is anyone using the Async Pull model in exporters ? (page 195 of the latest documentation)

I'm calling SetAsyncRenderCompletionProc and QueueAsyncVideoFrameRender but my PrSDKSequenceAsyncRenderCompletionProc callback never gets called

 

Thanks,

Antoine

ExtendScript & Premiere not working/connecting? properly (NewWorld? - no "main")

$
0
0

Hello! I been having some troubles with this. It seems like it is connected to the premiere but it doesn't show me "main" where it shows "NewWorld" after I updated my Premiere Pro. I have no idea what could be causing this but! None of the commands seems to be working anymore. Could you help me with this?

 

ExtendScript_Toolkit_2018-11-26_06-04-26.jpg


things i've tried so far;

  •      reseting all my preferences (literally deleted my premiere folder in documents folder)
  •      restarting pc & softwares

 

note: im not a programmer or something like that i just make little scripts which saves my time here and there, so sorry if this was caused by something I've done without knowing it.

Premiere Pro Script execution without ExtendScript Toolkit confirmation

$
0
0

Hi everyone,

I'm creating a video browser OSX app, that will import files to opened project, open and play it in the source viewer in Premiere Pro.

The app creates a JSX file with:

 

"#target premierepro";

app.enableQE();

var result=qe.project.importFiles(argv);

var num=qe.project.numItems;

var proje=qe.project.getItemAt(num-1);

proje.openInSource();

qe.source.player.play();

 

It works correctly in ESTK, but if I open it inside my app, calling:

NSWorkspace *workspace = [NSWorkspacesharedWorkspace];

[workspace openFile:jsxFilePath];

//This exactly the same than opening it in Finder via double-clicking it

 

It shows me this confirmation dialog (sorry for the Spanish localization)

Captura de pantalla 2015-02-06 a la(s) 12.22.45.png

If I press 'Si(Yes)', the script is executed correctly inside Adode Premiere, if I press 'No', then ESTK opens in Debug mode. This is the same behavior if I open the jsx file in the Finder.

 

Then, how can I avoid this dialog every time the app runs a script?

 

Thanks a lot,

Regards,

Premiere Plug-In Development - Can Existing Lumetri LUT Function be Called?

$
0
0

I am working on a color engine plug in for Premiere (something along the lines of FilmConvrt, but quite a bit better..), written in C++. From what I understand, the UI panel will need to be written in Java.

 

What I am curious to know is, via the SDK, is there a way to call to the Lumetri LUT function, with LUT data supplied internally, and render the clip color accordingly with the built in Mercury Engine (without an instance of Lumetri open)?

 

bbb_999


May I control menu when I launch the 'ExportController' plug-in?

$
0
0

Hi everybody,

 

I have write a 'ExportController' plug-in based on the sample SDK(Mac) provided.

It works correctly as expected workflow, a new sub-menu under 'Export' added, and it can render timeline, export it, and do other post-process.

But it does not support 'copy', 'paste', 'cut' operation for NSTextField in my custom UI.

 

I found all menu items' status didn't change, and the items(Copy, Paste,...)  under 'Edit' are disable.

I think the copy function missing is because menu item disable, but I don't know it is support to change or edit those status?

(I am using the Premiere Pro CC Mac SDK, plug-in type is 'ExportController'.)

 

 

Thanks,

Iris

Editing clips with ExtendScript

$
0
0

hello, you hardworking, knowledgeable people!

 

I desperately need to automate a big part of the editing process in Premiere.

For the next project we will be recording tons of footage, where the main action on video will be repeating with variations many many times. We then need to split the long recordings into separate chunks. I will be able bring in time markers, for where to make the cuts.

But I've hit a wall when trying to manipulate clips on the timeline with ExtendScript. I can read a bunch of info about the clip, e.g.:

start

end

inPoint

outPoint

(.seconds and .ticks)

But I'm unable to change any of those values. And the only functions I've found deal with selecting a clip i.e. isSelected() and setSelected()

 

Are there any ways to trim/cut/move, whatever, clips on the timeline using ExtedSctipt scripts, or am I badly out of luck?

And to finish off what I'm trying to do I'll need to do something like "Make Subsequence" with all of the cuts, to separate them into their own videos I can then export, again looking to automate this.

 

Many thanks!

CEP engine extension API to check for file existence

$
0
0

Hi All,

 

I am looking for an API (CEP FS) which checks a file is exist or not. I couldn't find such inside CEP fs library. I am referring to cep.fs object.

 

Note: I don't want to use JSX here as that would be asynchronous.

 

 

Premiere Pro version: 11.1.0

Extension Type: Panel

 

 


Thanks & Regards,
Meet Tank

How to differentiate clip and sequence?

$
0
0

Hi All,

 

Is there any way to differentiate clip and sequence in premiere pro sdk? projectItem.type is 1 (i.e. CLIP) for both clip and sequence.

 

Premiere Pro Version: 9.0.0
Extension Type: Panel

 


Thanks & Regards,
Meet Tank

New to AdobeAPI, where can I find an API overview or help with custom importer

$
0
0

Hi Adobe team, and fellow developers,

 

I am an experienced C++, Python and Qt developer, and have recently been asked to setup some pipeline tools for an production.

 

I am trying to figure out where I can find some more information about the Premier API, as I have to code a custom import dialog, which will read from an csv file and then pull audio and clips, add them to tracks as specific time frames and resize the clips accordingly.

 

At the moment I have found the Premier CC 2017 SDK, but I am using the 2018 version.

 

Is there a CC 2018 SDK available? Will the examples work from 2017 SDK work in 2018?

 

I have not been able to find how one actually loads the compiled tool into Premier, Is there a document on installing custom tools anywhere?

 

Does Premier have its own GUI API for creating/hanling dialogs?

 

The tool I am developing will be written in C++ and is for in house use. Any and all help would be greatly appreciated

 

Thanks,

Simon

Viewing all 53010 articles
Browse latest View live


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