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

Add Track audio/video to sequence

$
0
0

It there a way to add a new audio or video track into a sequence?

 

The way it would be used it to import footage into an existing sequence, but create a new track and import the clip onto that so that nothing would be overwritten?

 

Is this possible or offered yet?


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.

From which version of premiere support YUV422 PrPixFormat for exporter plugin?

$
0
0

I'm developping a h264 exporter plugin for premiere,and I use “PrPixelFormat_UYVY_422_8u_709", or "PrPixelFormat_UYVY_422_8u_601" as PrSDKSequenceRenderSuite::RenderVideoFrame() output format,so I want to know from which verison of premiere support output PrPixelFormat_UYVY_422_8u_709,or PrPixelFormat_UYVY_422_8u_601 format ?

Is there a way to set duration for a vid transition?

$
0
0

Sorry if its something obvious. I'm new to c++ and this sdk.

I'm trying to modify CrossDissolve example from the sdk so it would apply my effect only to a couple of frames. To the last frame from one clip and the first frame of another clip. I need a way to either make length of the transition equal to 2 somehow or a way to determine the ending and starting frames. Atm my effect only works if a user manually sets it's length to minimum possible.

New UI font in CC 2018

$
0
0

Which font is being used now? Same or different across macOS and Windows?

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).

 

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.

Premiere Markers export and import: Roundtrip via FCP XML not working

$
0
0

The objective of my project is to create a sports app that records markers and saves it in different formats of XML / CSV that I can then import in different NLE packages.

I have already succeeded with Vegas Pro but also want to support NLEs for MAC-OS.

 

In order to approach this analytically I have exported a very simple project with 1 sequence including 1 clip and 3 markers (with length zero and length > 0) and exported it
in FCP XML from Adobe Premiere CC and do a round-trip import it via FCP import into Adobe Premiere CC.

 

This round-trip does not work. Any insight why or any support what other mechanism will work?

 

Thanks


Thomas


Merge Clips with ExtendScript

$
0
0

The audio from my recorder creates a folder for each time it rolls, with separate audio files for each track. Normally I select all track files within each folder and "Merge Clips" to make one asset file with separate tracks that stack on each other in the timeline (all synced together).

 

I'd like to create a script that goes through and does this for me, but I can't seem to find an extendscript function to "Merge Clips". Does it exist?

Marker Name and Comments not working in Premiere pro 2018

$
0
0

Hi All,

 

The Markers created from script is not able to assign the Name and Comments to the marker in Premiere pro 2018,

This is working fine in premiere pro 2017. Markers are created, but no name and comments

 

Here is the sample code from github

 

if (projectItem.type == ProjectItemType.CLIP ||

projectItem.type == ProjectItemType.FILE) {

markers = projectItem.getMarkers();

if (markers) {

var num_markers = markers.numMarkers;

var new_marker = markers.createMarker(1.345);

var guid = new_marker.guid; // new in 11.1

new_marker.name = 'Marker created by PProPanel.';

new_marker.comments = 'Here are some comments, inserted by PProPanel.';

new_marker.end = 2.6789;

}

}

 

Anyone else facing the same problem?

 

Thanks and Regards,

Anoop NR

Creating a Panel to control the Plugin (C++)

$
0
0

Is it possible to create an UI in the Panel and then call the plugin functionality written in c++?

Exporter on Windows: temporary file _00_ at end of process / exportReturn_InternalError

$
0
0

Hi,

i have written a custom exporter plugin and i have noticed on Windows that when the export process is over (after exiting exSDKExport) Media Encoder will create a copy of the exported file, with the extension _00_, and then rename it and delete the original exported file.

My problem is that the format i export for produces quite big files (usually several GB), so this copy/rename process takes quite long and requires the double of space i would need.

Sometimes during this process the exporter quits and i get error code 3 in the log, which i think is  "exportReturn_InternalError", but actually at this point i have already exported all the frames and closed the file.

I have found some more information here in the forum, but i could not find any note about this process in the Premiere_SDK_Guide.

Can someone point me the where this process happens in the code?

Is there any way i can control or modify this process?

Thank you,

bye,

S.

Nodejs and google-cloud/speech

$
0
0

First, my apologies for asking a multi-part question.  As relayed in another user's post but not answered, in the manifest.xml file for PPRO 12.x developing panels, the <RequiredRuntime Name="CSXS" Version="x" works for me at Version 7.0 not 8.0 as per the Cookbook example.  Will it change soon and what will be the effects, or is it no big deal?

 

Related, the current nodejs implementation in the PPRO environment is 7.7.4.  Will that change to the V8 nodejs engine? 

The ultimate reason for asking is that I am writing some nodejs on the js side of js/jsx code on a Mac PPRO 12.1, to access google-cloud speech.  I have successfully accessed google-cloud/storage in nodejs - pretty easy actually, but I have encountered errors when accessing speech. After figuring out how to access the 'require' global - cep_node.require('..'); and working through issues in building the google required node_modules - building them with node v8 through the latest v10 (I guess using  NODE_MODULE > 51) results in a grpc sub-dir being created being node-v64-darwin-x64-unknown.  The error I get is that it wants sub-dir node-v51... which can be created (and error eliminated) if you build with node <v7.10 ie 7.7.4. 

However, I am getting an error (and some unexpected behavior) The code (direct-ish) from the google-cloud/speech examples:

After building npm install --save @google-cloud/speech in the correct dir as per examples using node 7.7.4 and --enable-nodejs & --mixed-content in the manifest.xml.

(pretty standard example on google-cloud/speech)

function test(file_name){

     const speech = cep_node.require('absolute/path/to/@google-cloud/speech');

     const fs = cep_node.requre('fs');

     const content = fs.readFileSync(file_name).toString('base64);

     const client = new speech.SpeechClient({ projectId: pId, keyFilename : keyPath,});

     const config  = {config_object}; const audio = {content : content};

     const request = {config: config, audio : audio};

     client

          .recognize (request)

          .then (data => {do something})  // similar and also tried .then (function(data){do something})

          .catch (err => { do some error thing});

}

 

Note: I execute similar code to access google-cloud/storage - no problem.  Also, this is 'esversion:6' type of scripting, but it works.

All the values and variables are what I expect, up until the client.recognize(request) is probably? executed, but then no .then is executed ie no response from the google server. (I know its async)

 

The error/warning comes pre client: 

internal/process/warning.js:21(node:42969) DeprecationWarning: grpc.load: Use the @grpc/proto-loader module with grpc.loadPackageDefinition instead

Then upon completion of the function:

Navigated to file:///Library/Application%20Support/Adobe/CEP/extensions/com.iv.PProPanel/index.html

ie. the page/panel is auto - reloaded for some reason.

 

I believe this is somehow related to the async nature of nodejs.  The above warning may trigger the reload of the html page/panel, but I'm not sure. This won't happen if I comment-out the client section, ie acts as expected and the page is not auto-reloaded.  Since the .recognize(request) function is async, and the page is auto reloaded (for a reason unknown to me), I am not able to see if the .then promise is resolved.

My thoughts are that the node v7.7.4 build node_modules are some older nodes than what google-cloud/speech wants. But building with a more recent (or current) node v, results in the first mentioned error. (can't find a needed dir)  Possibly CEP V8 will use Chrome's V8 node engine then I can rebuild google-cloud/speech nodes to a more current state?  Since i have been only dealing with nodejs for about 2 weeks and CEP for 3 weeks, I could be completely wrong in this approach. 

Any insight or an explanation of why a panel would auto-reload, would be greatly appreciated.

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

Premiere & multi-threading

$
0
0

Q: (copied here from an email exchange I had with Zac)

 

I’m trying to use an old plug-in that’s an AEX from 2003. It works on Prem Pro but I want to use it in CS3 (coz I have HD footage and Prem Pro can’t do HD). Anyhow it doesn’t work in CS3.

 

I was stepping through it in the debugger and it looks like it gets called by multiple threads concurrently and it then Stack Overflows and causes an Access Violation.

 

So, I guess my question is – is CS3 multi-threaded accessing the plugin and did Prem Pro not do that?

 

My assumption is that the AEX isn’t thread safe or is single core thread safe and can’t handle threads running in parallel on multi-core pcs. (I’ll test setting the affinity of Premiere to one core to see if that fixes parallel-thread execution potential bugs).

 

If so, what would happen if I make a skeleton AEX that opens this AEX from somewhere out of the Premiere tree, forwards all the calls but only lets one thread in at once?

 

A: (from Zac via email)

 

Here’s a good description of what changed in CS3, from the AE SDK Guide:

 

“Starting with Premiere Pro CS3, Premiere uses multithreaded rendering for AE effects. For AE effects, there is a critical section which is used for all commands, except those relating to arbitrary data. The critical section prevents two threads from calling the same instance of the effect at the same time. However, Premiere creates multiple instances of the effect, which can be called concurrently from separate threads. Effects should not depend on static, non-constant variables.

 

New in Premiere Pro CS4.1, we have added a new flag to the AE API, PF_OutFlag2_PPRO_DO_NOT_CLONE_SEQUENCE_DATA_FOR_RENDER, to allow a plug-in to opt out of Premiere Pro's multithreaded rendering of AE effects. When the flag is set, we don't clone the sequence data across all the threads and we only call into the plug-in on one thread at a time. Premiere Pro will still render using multiple threads, but the effect will only render on one thread at a time, and the same sequence data will be used. This flag is useful for plug-ins that provide their own internal multithreading, or plug-ins that render frames based on previous frames, such as image stabilizers.”

 

So for CS3, since we don’t support that new flag in 4.1, your suggested workaround using a shim plug-in just might work.  But it’s hard to say for certain, since we don’t really know what is happening…

 

Zac

 

So, I guess the answer is that this old plugin is using statics or globals and is thus not multi-thread capable.

Solution: Get CS4!! 

 

One for the too-hard basket right now.....


Refreshing Image Sequences in Premiere

$
0
0

So the only consistent way I've found to update an image sequence through scripting is to replace it's path with it's current path since refreshMedia() doesn't look for new or missing frames :

 

projectItem.changeMediaPath(projectItem.getMediaPath());

 

 

The drawback to this method, is that it resets all the interpret settings, most importantly frame rate. I tried to set the FPS in metadata (Column.Intrinsic.MediaTimebase) to the original frame rate after the update, but this hasn't worked, and from other discussions I don't think it's possible this way.

 

Only fix for this is to make sure "Indeterminate Media Timebase" is set to the desired frame rate in Preferences, but I'm looking for a more solid solution. Can anyone recommend a better solution?

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?

Convert timecodes to seconds

$
0
0

Is there a method to convert timecode(hh:mm:ss:ff) to seconds ?

 

I'm trying to create a marker using markers.CreateMarker() method but for some reasons the supplied value in seconds doesn't match input timecodes.

For e.g. I have a timecode 00:03:00:00 on a 29.97fps(Non-drop frame). In order to convert it into seconds,

 

var a = time.split(':');

var seconds = ((Number(a[0])* 3600) + (Number(a[1]) * 60) + Number(a[2]));

var milliseconds = (Number(a[3])/ fps);   // fps is 29.97

var result = seconds + parseFloat(milliseconds,5); 

 

Result here is 180 seconds. Premiere shows this timecode as :

 

Non-Drop frame

In: 00:02:59:24 , which is 5 frames behind.

 

Drop frames gives me slightly better results

In: 00:02:59:28, which is 2 frames behind.


Please suggest.


Can't set Key Color property in component using Windows

$
0
0

Hi, I'm trying to set the Key Color property via script and for some reason it doesn't seem to work on my Windows PC however it runs fine on a Mac. On Windows I get "Bad argument setValue()" any ideas on what's going wrong here?

 

The project is identical on both platforms and the clips on the sequence have the correct components for the script to run. Tested in Premiere Pro version 13 and 12

 

Thanks!

 

copyKeyColour:function () {

 

        referenceClip = app.project.activeSequence.videoTracks[0].clips[1]

        clipToApplyToapp.project.activeSequence.videoTracks[0].clips[0];


        varreferenceClipComponents = referenceClip.components;

        varresultValue;


        for (varj = 0; j< referenceClipComponents.numItems; j++) {

            if (referenceClipComponents[j].displayName == "Ultra Key") {

                for (vark = 0; k< referenceClipComponents[j].properties.numItems; k++) {

                    if (referenceClipComponents[j].properties[k].displayName == "Key Color") {

                        resultValue = referenceClipComponents[j].properties[k].getValue();

                    }

                }

            }

        }

     

        varapplyClipComponents = clipToApplyTo.components;


        for (varj = 0; j< applyClipComponents.numItems; j++) {

            if (applyClipComponents[j].displayName == "Ultra Key") {

                for (vark = 0; k< applyClipComponents[j].properties.numItems; k++) {

                    if (applyClipComponents[j].properties[k].displayName == "Key Color") {

                        applyClipComponents[j].properties[k].setValue(resultValue);

                    }

                }

            }

        }

    },

About the Adobe Extension SDK...

$
0
0

I am trying to add extensions to premiere pro.

 

However, I run the sample code ppropanel index.html, and I get the following error. (in CSInterface.js)

 

Uncaught TypeError: Cannot read property 'getHostEnvironment' of undefined at CSInterface.js:480

 

 

This happens when I run it directly in the browser, or when I create and deploy the zxp file.

 

What should I do? I need help.

 

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

[Moved from generic Suite forum to SDK forum... Mod]

Viewing all 53010 articles
Browse latest View live


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