webdevqa.jp.net

Premiere ProのExtendScript接続を使用して、インポートしたファイルをシーケンスに追加します

Premiere Pro用のExtendScriptでスクリプトを作成して、指定されたビデオファイルをロードし、指定された開始時刻と終了時刻にクリップし、シーケンスに配置して、結果のムービーをエクスポートしようとしています。

AdobeにはPremiere Proのスクリプティングに関する公式ドキュメントがないことを理解しているため、データブラウザーから作業しています(ExtendScript Toolkit、またはESTK)および見つけた便利なクラス参照のコレクションhere

必要な情報を指定するCSVファイルを正常にロードし、ビデオファイルをインポートして新しいシーケンスを作成する方法も知っています(here)。私が今抱えている問題は、インポートしたファイルを正しくクリップしてシーケンスに配置することです。 activeSequenceにはsetInPointやsetOutPointなどのメソッドがありますが、エクスポート時に適切なトリミングが行われないようです。

スクリプト全体の流れを示すコメント付きのコードを次に示します。

#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

アクティブシーケンスにイン/アウトポイントを設定するのではなく、生のビデオを代わりにソースウィンドウにロードし、そこにイン/アウトポイントを設定してから、アクティブシーケンス内に最終バージョンを構築します。

ソースからシーケンスへのクリップのコピーはさまざまな方法で実行でき、非常に簡単です。

ですから、私のアドバイスは、クリッピングのシーケンスではなくソースを使用してみることです。幸運があるかもしれません。

1
sawa