View Full Version : 23.976 to 29.97 via 3:2
speedyrazor
22nd January 2016, 00:10
Hi, I was using Avisynth to apply a 3:2 pulldown to a 23.976 source to achieve 29.97. How would I do this using VapourSynth please?
Kind regards.
Myrsloik
22nd January 2016, 00:19
core.std.DoubleWeave(clip, tff=False).std.SelectEvery(cycle=10, offsets=[0, 2, 5, 8])
Same way as in Avisynth
speedyrazor
22nd January 2016, 00:40
core.std.DoubleWeave(clip, tff=False).std.SelectEvery(cycle=10, offsets=[0, 2, 5, 8])
Same way as in Avisynth
Sorry, just getting my head around this.
Using this gives me 9.59fps.
ret = core.std.AssumeFPS(ret, fpsnum=24000, fpsden=1001)
ret = core.std.DoubleWeave(ret, tff=False).std.SelectEvery(cycle=10, offsets=[0, 2, 5, 8])
speedyrazor
22nd January 2016, 08:18
This is the one I was using in Avisynth:
ChangeFPS(60000,1001)
AssumeBFF()
SeparateFields().SelectEvery(4,0,3).Weave()
jackoneill
22nd January 2016, 10:04
Myrsloik's line does 29.97 to 23.976, maybe.
Is this what you're looking for?
#clip = 24 fps
clip = core.std.SeparateFields(clip, tff=False)
clip = core.std.DoubleWeave(clip, tff=False)
clip = core.std.SelectEvery(clip, cycle=8, offsets=[0,2,4,5,7])
Offsets 0, 2, 4, and 6 will give you the original frames, 1, 3, 5, and 7 will give you the ugly ones.
speedyrazor
22nd January 2016, 19:12
Myrsloik's line does 29.97 to 23.976, maybe.
Is this what you're looking for?
#clip = 24 fps
clip = core.std.SeparateFields(clip, tff=False)
clip = core.std.DoubleWeave(clip, tff=False)
clip = core.std.SelectEvery(clip, cycle=8, offsets=[0,2,4,5,7])
Offsets 0, 2, 4, and 6 will give you the original frames, 1, 3, 5, and 7 will give you the ugly ones.
Thats exactly what I was looking for, thanks.
What would be a reverse 3:2?
jackoneill
22nd January 2016, 21:05
Thats exactly what I was looking for, thanks.
What would be a reverse 3:2?
#clip = 30 fps
clip = core.std.SeparateFields(clip, tff=False)
clip = core.std.DoubleWeave(clip, tff=False)
clip = core.std.SelectEvery(clip, cycle=10, offsets=[0,2,4,5]) # or [0,2,4,7] ?
Something like that.
speedyrazor
23rd January 2016, 17:50
#clip = 30 fps
clip = core.std.SeparateFields(clip, tff=False)
clip = core.std.DoubleWeave(clip, tff=False)
clip = core.std.SelectEvery(clip, cycle=10, offsets=[0,2,4,5]) # or [0,2,4,7] ?
Something like that.
Trying both of those produces a 23.98 file which has some interlaced fields in it.
speedyrazor
23rd January 2016, 18:30
For a reverse 3:2 pulldown in Avisynth I was usiing:
DoubleWeave()
Pulldown(0,3)
jackoneill
23rd January 2016, 18:57
Well you can always look at the output of DoubleWeave and pick the numbers yourself.
speedyrazor
23rd January 2016, 20:41
Well you can always look at the output of DoubleWeave and pick the numbers yourself.
Thats a good idea, how do I look at the output of DoubleWeave please?
TheFluff
23rd January 2016, 20:58
like you would look at the result of any other vs script
or do you just encode files and never look at them?
speedyrazor
23rd January 2016, 21:03
like you would look at the result of any other vs script
or do you just encode files and never look at them?
Sorry, I misunderstood, I thought you meant look at some sdtout of DoubleWeave.
speedyrazor
25th January 2016, 08:00
Hmmm, I have tried all variations of the above suggestion, but cant get a reverse 3:2, inverse telecine, of the original suggestion.
So I take a 23.98 file and apply this:
clip = core.std.SeparateFields(clip, tff=False)
clip = core.std.DoubleWeave(clip, tff=False)
clip = core.std.SelectEvery(clip, cycle=8, offsets=[0,2,4,5,7])
And now I want to get back to 23.98 from the 29.97 file I just created, but can't find anything to achieve this?
jackoneill
25th January 2016, 13:21
#clip = 30fps
clip = core.std.SeparateFields(clip, tff=0)
clip = core.std.SelectEvery(clip, cycle=10, offsets=[0,1,2,3,4,5,6,9])
clip = core.std.DoubleWeave(clip, tff=0)
clip = core.std.SelectEvery(clip, cycle=2, offsets=0)
This time it's tested.
speedyrazor
25th January 2016, 14:58
#clip = 30fps
clip = core.std.SeparateFields(clip, tff=0)
clip = core.std.SelectEvery(clip, cycle=10, offsets=[0,1,2,3,4,5,6,9])
clip = core.std.DoubleWeave(clip, tff=0)
clip = core.std.SelectEvery(clip, cycle=2, offsets=0)
This time it's tested.
Bingo! Works a treat, thanks for your time jackoneill.
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.