Log in

View Full Version : AssumeFPS


killerhertz
4th June 2009, 15:27
I would like to display 2 videos stacked that have different frame rates, but equal durations. I'm having difficulty getting the frame rate functions to show results.

Here is what I have:

# AviSynth Script: Composite_HenryWithPackOut_2D.avs
# Parameters (Modify these to remove frames from the front/back of each video.)
CamTrimFrnt = 0
CamTrimBack = 0
RadTrimFrnt = 0
RadTrimBack = 0

videoCam = AVISource("HenryWithPackOut.avi").ConvertToYUY2()
videoCamTrim = Trim(videoCam,CamTrimFrnt,framecount(videoCam)-CamTrimBack)

videoRad = AVISource("HenryWithPackOut_2D.avi").BilinearResize(1280,720).ConvertToYUY2()
videoRadTrim = Trim(videoRad,RadTrimFrnt,framecount(videoRad)-RadTrimBack)

# Change FPS
AssumeFPS(videoCamTrim,videoRadTrim)

# Stack the videos.
StackVertical(videoCamTrim,videoRadTrim)

videoCam is a 12 FPS video, while videoRad is typically 3 FPS. If I play the videos in mplayer alone, they both run about 30 seconds. I'd like to both to run 30 seconds, but for whatever reason, videoRad appears to be displaying at 12 FPS although it has a native framerate of 3 FPS, which causes this video to run too fast.

I tried ConvertFPS, AssumeFPS, and ChangeFPS, but they don't appear to do anything. Is there something wrong with my syntax?

JohannesL
4th June 2009, 16:10
videoCam = AVISource("HenryWithPackOut.avi").ConvertToYUY2().ChangeFPS(12)
videoRad = AVISource("HenryWithPackOut_2D.avi").BilinearResize(1280,720).ConvertToYUY2().ChangeFPS(12)

killerhertz
4th June 2009, 16:52
Thanks. That did the trick.

Gavino
4th June 2009, 17:11
For future reference, keep in mind the following summary:

AssumeFPS changes video duration, keeps the same frames;
ChangeFPS keeps video duration, changes frames by duplicating or removing;
ConvertFPS keeps video duration, changes frames by blending.