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

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?


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.

Scripting - Dive into nested sequences

$
0
0

Hi guys, i have a problem with scripting.

 

I want to check some property of the clips in my active sequence and the relative nested sequences.

I know how i can loop trought the clips and property in the active sequence, but i don't know how to enter in the nested sequence and make some check and operations.

I don't know the right syntax, can you help me?

 

Thank you

ExportController - Plugin loading.log & argument from Flex

$
0
0

Hello guys

 

I'm having a problem porting my ExportController to cross platform and it recently refuses to get loaded.

 

Here is Plugin loading.log:

Loading C:\Program Files\Adobe\Common\Plug-ins\CS6\MediaCore\ExportControllerSDK.prm

Loading from disk...

No loaders recognized this plugin, so the plugin is set to Ignore.

I found CS6_ServiceManager.log but I'm not sure if it's related (altho I changed some IO precisely before it broke)

2013-02-12 01:13:50 : ERROR vcfoundation::system::VCSysError: WriteFile() failed <232: The pipe is being closed.>

race:    1 0X0049199F

   2 0X0048E7A3

   3 0X0048E91E

   4 0X00488C16

   5 0X00491CF8

   6 0X00490C6F

   7 0X0048ED72

   8 0X004884BB

   9 0X0049BAF5

  10 0X0049BB7F

  11 0X759F8543

  12 0X7791AC69

  13 0X7791AC3C

Where else can I find more information on my problem or can I enable debug launch logs? It compile and builds fine and the code has been tested externally of PPro so I'm having an hard time figuring it out.. Any help or advice appreciated.

 

Also is it possible to pass an argument from a flex plugin to the ExportController, i.e ExportTimeline in the snippet below:

DllExport PREMPLUGENTRY xExportControllerEntry (

          int                                        selector, ecStdParms                    *stdParms, void                              *param1)

{

          prMALError result = exportReturn_Unsupported;

            switch (selector)

          {

...

                    }

          case exportController_ExportTimeline:

                              result = ecExportTimeline(stdParms, reinterpret_cast<ExportControllerTimelineInfoRec*>(param1));

                              break;

...

Call is currently made from JSX function (invoked by the flex) but if I could propagate an argument it would solve all my problem!!!

 

Thanks in advance,

Can we integrate Adobe premiere pro or final cut pro in a eCommerce website?

$
0
0

We are planning to build a eCommerce website for music licensing. That ecommerce website can be done either in Magento or in X-cart.

So for the same we wanted to confirm that can we integrate Adobe premiere pro or final cut pro in our website of Magento or X-cart? These tools we wanted to use for give option of video, audio editing, extracting.

So please share your thoughts and API details if any from which we can integrate any of them from Adobe premiere pro or final cut pro with Magento or X-cart.

Thanks in advance.

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

Premiere Pro Scripting: Set In and Out Points of Clip

$
0
0

Suppose I have a 2-minute long media file and an empty timeline for the currently active sequence.  Now, suppose I want to write a Premiere Pro script that will put that media file at the beginning of the timeline, but it should start playing 45 seconds into the clip and end exactly 10 seconds later (at 55 seconds into the clip).  It would be the equivalent of this:

 

D0NFMRQ.png

(In this image, we see that the footage is 2 minutes long, the first 45 seconds of the footage are trimmed off, and it only plays for 10 seconds).

 

I would like to achieve this through scripting, but I'm not sure.  I tried something of this order, but it did nothing more than simply put all 2 minutes of the clip into the sequence timeline:

 

var file1 = "C:\\Path\\test.mxf"
var backsBin = app.project.rootItem.createBin("Backs")
app.project.importFiles([file1], false, backsBin);
var thisTrack = app.project.activeSequence.videoTracks[0];
var projItem = backsBin.children[0];
thisTrack.insertClip(projItem, 0); // second arg is time in seconds to insert at
thisTrack.clips[0].inPoint.seconds = 45
thisTrack.clips[0].outPoint.seconds = 55

 

What is wrong with my code, and what can be done to fix it?  It seems like there's no way to set in and out points, as those last two lines don't seem to do anything.  I am on Windows 10, PPro CC 2017.1.2 for reference.

Adobe Premiere Scripting Guide

$
0
0

Hello, I have to write some scripts for Premiere. It will import, cut and set rendering. I can do it in after effects, because there is Adobe After Effects Scripting Guide for CS6.pdf , but I cant find anything similar for Premiere But scripting in premiere is possible. I can find some commands in Data Browser in ExtendScript Toolkit editor, but I dont know how can I use it. (Import, edit etc.) Is for Premiere any scripting manual ? If not, why? Scripting in Premiere is not official supported? Thanks.


HDR video export...

$
0
0

How do I get Premiere to give me high range pixels out of ->RenderVideoFrame() ?  I have selected the PrPixelFormat_BGRA_4444_32f pixel format, so I assumed I would get pixels with values above 1.0f (using some high color depth Red files).  Is there another flag I need somewhere?

 

Thanks!

Plugin: UI called in background thread

$
0
0

Hi,

 

I'm developing an audio plugin with JUCE and I've some issues with the audio thread.

When I test my plugin, as soon as I change one parameter, I've a lot of glitch and my debugger (Xcode) tells me "UI API called from background thread". My UI calls are not called in the main thread…

 

I tested my plugin on almost every DAW (Ableton, Cubase, Protools, Studio One, Reason, and so on…) and I've never had this issue. It happens only on Adobe Premiere.

 

So I was wondering if Premiere put every plugins in the background or if it could be something on my side?

 

Does anybody already have this issue?

 

Thanks.

Loading .epr file from panel - what relative path?

$
0
0

I want to render clips using a predefined preset. It works fine when using an absolute path (e:\path\preset.epr). But I want to include this epr file inside the panel directory.

 

Where should I put it? And how do I reference it properly?

 

I tried this: Added it to the jsx directory, and referenced it using the code below. Doesn't seem to work.

 

var encode = app.project.activeSequence.exportAsMediaDirect(localdir+app.project.activeSequence.name+"-0"+marker_index+".mp4", "./render.epr", app.encoder.ENCODE_IN_TO_OUT);

where to put premiere script, then where can i find it in premiere UI?

$
0
0

where to put premiere script, then where can i find it in premiere UI?

How do you find "App installation path"

$
0
0

 

According to the SDK doc page 117 on presets, you're supposed to install to "App installation path" but I can't find a reliable registry entry that indicates what it is.

 

Premiere Pro presets

...

[App installation path]\MediaIO\systempresets\[exporter subfolder]

 

...

 

I did find...

HKEY_CURRENT_USER\Software\Adobe\Adobe Media Encoder\[version]\AMECodecCache\64\en_US\AppRoot

and..

HKEY_CURRENT_USER\Software\Adobe\Premiere Pro\[version]\AMECodecCache\64\en_US\Default\AppRoot

and...

HKEY_CURRENT_USER\Software\Adobe\CommonFiles\Usage\Agent

 

What is the correct way to detect the installation path?

What if the user has CS5 and CS6 installed?

What if the user doesn't have en_US installed as the language?

 

Is it really a common preset system for CS5 and CS6 as the doc suggests or do you have to put it in both PPro and AME?

 

thx

 

Rallymax

How can I access HTTP services via Extendscript from PPro CC

$
0
0

I attempting to build an HTML5 panel for Premiere Pro that retrieves assets from a third party REST API but there seems to be no support for Socket or XMLHttpRequest objects in this application which there is for others. (I get Error: Socket does not have a constructor)

 

How would I go about making these requests in Extendscript?

How to Work in 32 Bit in Premier Pro Plug In

$
0
0

As I understand it, Adobe Premier Pro doesn't support "Smart Render" mode as in After Effects.

Yet I don't understand how does it support 32 Bit Per Channel input.

I look at the SDK sample called SDK Noise, at the following code:

 

PrPixelFormat destinationPixelFormat = PrPixelFormat_BGRA_4444_8u;

 

                if (pixelFormatSuite) {

                        (*pixelFormatSuite->GetPixelFormat)(output, &destinationPixelFormat);

 

                        if (destinationPixelFormat == PrPixelFormat_BGRA_4444_8u){

 

                                ERR(suites.Iterate8Suite1()->iterate(   in_dataP,

                                                                                                                 0,                                                              // progress base

                                                                                                                 linesL,                                                 // progress final

                                                                                                                 &params[NOISE_INPUT]->u.ld,             // src

                                                                                                                 NULL,                                                   // area - null for all pixels

                                                                                                                 (void*)&niP,                                    // refcon - your custom data pointer

                                                                                                                 FilterImageBGRA_8u,                             // pixel function pointer

                                                                                                                 output));     

 

                        } else if (destinationPixelFormat == PrPixelFormat_VUYA_4444_8u){

 

                                ERR(suites.Iterate8Suite1()->iterate(   in_dataP,

                                                                                                                 0,                                                              // progress base

                                                                                                                 linesL,                                                 // progress final

                                                                                                                 &params[NOISE_INPUT]->u.ld,             // src

                                                                                                                 NULL,                                                   // area - null for all pixels

                                                                                                                 (void*)&niP,                                    // refcon - your custom data pointer

                                                                                                                 FilterImageVUYA_8u,                             // pixel function pointer

                                                                                                                 output));

 

                        } else if (destinationPixelFormat == PrPixelFormat_BGRA_4444_32f) {

 

                                // Premiere doesn't support IterateFloatSuite1, so we've rolled our own

                                IterateFloat(   in_dataP,

                                                                0,                                                              // progress base

                                                                linesL,                                                 // progress final

                                                                &params[NOISE_INPUT]->u.ld,             // src

                                                                (void*)&niP,                                    // refcon - your custom data pointer

                                                                FilterImageBGRA_32f,                    // pixel function pointer

                                                                output);      

 

                        } else if (destinationPixelFormat == PrPixelFormat_VUYA_4444_32f) {

 

                                // Premiere doesn't support IterateFloatSuite1, so we've rolled our own

                                IterateFloat(   in_dataP,

                                                                0,                                                              // progress base

                                                                linesL,                                                 // progress final

                                                                &params[NOISE_INPUT]->u.ld,             // src

                                                                (void*)&niP,                                    // refcon - your custom data pointer

                                                                FilterImageVUYA_32f,                    // pixel function pointer

                                                                output);      

 

                        } else {

                                //      Return error, because we don't know how to handle the specified pixel type

                                return PF_Err_UNRECOGNIZED_PARAM_TYPE;

                        }

 

                        err = AEFX_ReleaseSuite (

                                in_dataP,

                                out_data,

                                kPFPixelFormatSuite,

                                kPFPixelFormatSuiteVersion1,

                                NULL);

                }

 

        }

I removed some code related to errors.

Yet even if I set the Render and the Sequence (Preview) to 32 Bit (Max Bit Depth) it still always selects 8 Bit Format.

I don't understand how the pipeline should work in order to enable support for 32 Bit processing.

 

Any assistance?

How exactly does it work?


Is it possible to delete or enable/disable a clips using extendscript ?

$
0
0

I would like to know if javascript API has potential for delete/ripple delete clips. Please suggest, I haven't found any proper documentation for  javascript API. Basically, I'm looking for an object model diagram. 

QE: What is this rabbithole?

$
0
0

Soooo as the title asks: What is QE? There's absolutely no documentation on it, and it appears to house most of the information that we want to access, albeit not reliably.

Most importantly out of anything that I'm looking for - why is there no documentation on not just QE, but the rest of everything within Premiere's capabilities of extendscript?

A single piece of code on Github is not sufficient for a documentation substitute.

 

As far as the seeming instability of QE:

Consider the following code for Premiere Pro CC 2015:

 

app.project.activeSequence.exportAsFinalCutProXML("C:\\Users\\user\\Desktop\\XML_Testing.xml")


app.enableQE()
var mySeq = qe.project.getActiveSequence(0)
var myTrack = mySeq.getVideoTrackAt(0)
var myClip = myTrack.getItemAt(0)
myClip.name

 

If I have a project open in Premiere and execute this using ExtendScript Toolkit, I receive back a myTrack object with a name of 'Wildlife.wmv'.
If I then switch to a new project in Premiere(does not contain 'Wildlife.wmv') and re-execute that same code in ExtendScript Toolkit, the myTrack object stays the same, and I don't receive a new object.

 

This seems hazardous at best.

 

Thank you.

Delete sequence in Premiere Pro using ExtendScript

$
0
0

My work is almost done, but there is one simple question, how to delete the sequence using ExtendScript?

In my script I can clone it, rename, move new footages, pictures, wav's etc., but I can not delete it.

In Data Browser (ExtendScript) there's app.project.deleteSequence(), but what are the arguments for this function? I know about QE and I found just one thread about it (https://forums.adobe.com/thread/1977423?start=0&tstart=0), there's no answer how it works. For many years I'm waiting for the manual for Pr like an After Effects Scripting Guide=(


In my project there is a sequence I need to make a copy, create some footages and titles, then rename cloned sequence, export it as Premiere Pro project and delete from this one. Everything works perfect except the last one.

This is the part of code:

 

app.project.activeSequence.clone(); // create "old_seq copy" from "old_seq"
var nI = app.project.rootItem.children.numItems;
for (var i = 0; i < nI; i++)       {         if (app.project.rootItem.children[i].name == "old_seq copy")             {              var item = app.project.rootItem.children[i]                     item.name = "new_seq";             }       }
--------------------------------------------------------------
/*--*/
for (var i = 0; i < nI; i++)      {       if (app.project.rootItem.children[i].name == "new_seq")            {             app.project.deleteSequence(); //<--- this is just an example of the line, but how to delete "new_seq"?            }       }

 

I found nothing about it in PProPanel. Is it possible at all?

Thank you!

Media Encoder Issue: auto-starting batch

$
0
0

Does anyone have any tips on sending multiple jobs to Media Encoder? I'm trying to send an array of subclips to Media Encoder using encodeProjectItem() but I'm running into a bit of an issue with Media Encoder automatically starting the batch.

 

For example: when I use PProPanel's function transcode but remove the line:

 

app.encoder.startBatch();

 

Media Encoder still starts the batch anyways. Is this normal behaviour? Or is there some way to tell Media Encoder to add the job, but don't run the encoding.

 

I've tried to get around it by using Bridge Talk to tell Media Encoder to pauseBatch() immediately after sending the clips over.

var bridge  = new BridgeTalk();
bridge.target = 'ame';
bridge.body   = 'var host = app.getEncoderHost();if (host){host.pauseBatch();}';
bridge.send();

 

But that seems like a clunky way of doing this.

This is important to me as I will want to have the ability to manually modify outputs on specific clips before starting the batch.

 

If anyone has any tips on this it would be greatly appreciated!

Thanks!

Is it possible to load jsx file other than the local extension folder?

$
0
0

Hello All,

 

I want to load jsx file dynamically from the server (e.g. Through an http get call) in my premiere pro panel. How this can be achieved?

 

Premiere Pro version: 9.0.0
Extension Type: Panel

 

 

Thanks & Regards,
Meet Tank

Viewing all 53010 articles
Browse latest View live


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