Log in

View Full Version : Recover a ChangeFps()


tebasuna51
30th March 2017, 12:22
There are a BD movie at fps 23.976 than seems created from a 25 fps source deleting the 25th frame (and maybe the 1000th), like using ChangeFps(24), or maybe ChangeFps(24000,1001).

In order to recover the original fps, or at least test if this is the problem for the not smoth play of BD, I want a script than do something like:

A = Source(BD_video) # B is the output clip
0 == (FrameCount(A) + 1) % 24 : Add_2_frames_to_B ? Add_1_frame_to_B
return B

where Add_2_frames_to_B add the current A frame and a interpolated frame between current and next.

There are a plugin than can do something like that?
If not, a smart script to check that if possible.

Thanks.

StainlessS
30th March 2017, 16:28
Perhaps something in this thread can help:- https://forum.doom9.org/showthread.php?t=151372
(maybe this post:- https://forum.doom9.org/showthread.php?p=1354574#post1354574 )

wonkey_monkey
30th March 2017, 18:42
Interpolate to 47.952fps, then use a selectevery(48,...) to pick out all the even frames plus the one interpolated one you want. Bit long-winded text-wise, but simple.

tebasuna51
30th March 2017, 19:10
Thanks.

Yep, seems the FPS_24_to_25() work over the full video range.

EDIT:
At last I used to test:

super= MSuper(c,pel=2)
b_vec2 = MAnalyse(super, isb = true,blksize=16)
f_vec2 = MAnalyse(super, isb = false,blksize=16)
MFlowFps(c,super, b_vec2, f_vec2, num=48000, den=1001, ml=200)

Selectevery(48,0,2,4,6,8,10,12,14,16,18,20, 21 ,22,24,26,28,30,32,34,36,38,40,42,44,46)
AssumeFPS(25)

Maybe I'll use a more complex script for best quality final encode, reading https://forum.doom9.org/showthread.php?t=174410