qmasingarbe / pymiere

Python for Premiere pro
GNU General Public License v3.0
353 stars 46 forks source link

How to cut one video track to the length of another #63

Closed f5-rahm closed 1 year ago

f5-rahm commented 1 year ago

I'm trying to figure out razor but am not having any success. I want to trim track 0 to the length of track 1 before exporting media

`# Get clip length clip = pymiere.objects.app.project.activeSequence.videoTracks[1].clips[0]

Trim Adjustment Layer and Mogrt Layer to that length

pymiere.objects.qe.project.getActiveSequence().getVideoTrackAt(0).razor(str(clip.end.seconds))`

Any pointers appreciated.

qmasingarbe commented 1 year ago

Hello @f5-rahm ,

Here are two methods for trimming a clip in track 1 to the length of the clip in track 0.

Changing end of the clip

import pymiere
seq = pymiere.objects.app.project.activeSequence
base_clip = seq.videoTracks[0].clips[0]
clip_to_trim = seq.videoTracks[1].clips[0]
clip_to_trim.end = base_clip.end

This may not work on older Premiere versions

Using the razor tool in QE

import pymiere
seq = pymiere.objects.app.project.activeSequence
base_clip = seq.videoTracks[0].clips[0]
# format base_clip.end Time object to timecode for razor tool
timecode = base_clip.end.getFormatted(seq.getSettings().videoFrameRate, seq.getSettings().videoDisplayFormat)
# razor cut on track 2
pymiere.objects.qe.project.getActiveSequence().getVideoTrackAt(1).razor(timecode)

Hope this helps!