web-dev-qa-db-fra.com

Ajoutez des fichiers importés dans des séquences à l'aide de la connexion ExtendScript d'Adobe Premiere Pro

J'essaie de créer un script dans ExtendScript pour Premiere Pro qui chargera les fichiers vidéo spécifiés, les découpera aux heures de début et de fin spécifiées, les placera dans une séquence, puis exportera le film résultant.

Je comprends qu'Adobe n'a pas de documentation officielle sur les scripts pour Premiere Pro, j'ai donc travaillé à partir du navigateur de données (dans le ExtendScript Toolkit, ou ESTK) et une collection de références de classe pratiques que j'ai trouvées ici.

J'ai réussi à charger dans le fichier CSV qui spécifie les informations nécessaires et je sais également comment importer les fichiers vidéo et créer une nouvelle séquence (comme expliqué ici). Le problème que j'ai maintenant, c'est que les fichiers importés soient correctement coupés et placés dans la séquence. Je vois que la activeSequence a des méthodes telles que setInPoint et setOutPoint, mais cela ne semble pas entraîner la correction correcte lors de l'exportation.

Voici mon code avec des commentaires pour montrer le flux du script global:

#target premierepro

var myDir = "G:\\directoryWithVideoFiles\\";
// defined "indexOf" subfunction here
// ***** begin main body of script *****
// (dataRuns has fields runName, startVideo, startTime, stopVideo, stopTime)
// Import video files listed in dataRuns
var vidFiles = new Array;
for (i=0; i<dataRuns.length; i++) {
    if (indexOf.call(vidFiles,myDir + dataRuns[i].startVideo + '.MPG') == -1) {
        vidFiles.Push(myDir + dataRuns[i].startVideo + '.MPG');
        }
    if (indexOf.call(vidFiles,myDir + dataRuns[i].stopVideo + '.MPG') == -1) {
        vidFiles.Push(myDir + dataRuns[i].stopVideo + '.MPG');
        }
    app.project.createNewSequence(dataRuns[i].runName,'');
    }
app.project.importFiles(vidFiles);
// at this point, for each run (called runName) I need to:
// - take a clip of the startVideo from the startTime to the end of the video
// - take a clip of the stopVideo from the start of the video to the stopTime
// - put clip 1 at the beginning of the associated sequence, & clip 2 right after
// - export the sequence as a new video file
177
adara

Plutôt que de définir des points d'entrée/sortie sur la séquence active, pourquoi ne pas charger votre vidéo brute dans la fenêtre source à la place, et y définir les points d'entrée/sortie, puis créer la version finale à l'intérieur de la séquence active.

La copie du clip de la source vers la séquence peut être effectuée de plusieurs manières et devrait être assez facile.

Alors oui, mon conseil serait d'essayer d'utiliser la source plutôt que la séquence de découpage. Pourrait avoir plus de chance.

1
sawa