Convert 60i to 24p
Now it's very easy :cool:
http://home.arcor.de/scharfis_brain/60ito24p.html
Code:
function convert60ito24p (clip video, int mode, int offset)
{
work = assumefieldbased(video)
out =(mode==3) ? interleave(
\selectevery(
\layer(trim(work, 1, 0),
\layer(work, trim(work, 2, 0), "fast"),
\"fast"), 5, 0 + offset),
\selectevery(
\layer(
\layer(work, trim(work, 3, 0),"fast"),
\layer(trim(work, 2, 0), trim(work, 1, 0),"fast"),
\level = 170), 5, 2 + offset)) :
\ (mode==2) ? interleave(
\selectevery(
\layer(trim(work, 1, 0),
\layer(work, trim(work, 2, 0), "fast"),
\"fast"), 5, 0 + offset),
\selectevery(
\layer(work, trim(work, 1, 0), "fast"), 5, 3 + offset)) :
\ (mode==1) ? interleave(
\selectevery(trim(work, 1, 0), 5, 0 + offset),
\selectevery(layer(work, trim(work, 1, 0), "fast"), 5, 3 + offset)) :
\ (mode==0) ? selectevery(work, 5, 1 + offset, 4 + offset) : work
assumeframebased(out)
}
# usage:
# import (convert60ito24p.avs)
# loadplugin(your 60fps deinterlacer like dgbob or tomsbob)
# xxxsource("clip")
# your60fpsdeinterlacer()
# convert60ito24p(2,0)
# mode - parameter:
#------------------
# 0 uses simple 24 out of 60 selection -> jerky motion
#
# A B C D E F G H I J K L M N O P Q R <- input sequence
# | | | | | | | <- | = direct copy
# 1 2 3 4 5 6 7 <- resulting output sequence
#
# 1 introduces a blending of every other frame from its nearest neighbors
#
# A B C D E F G H I J K L M N O P Q R <- input sequence
# | \ / | \ / | \ / | <- | = direct copy ; \ / = 50:50 blending
# 1 2 3 4 5 6 7 <- resulting output sequence
#
# this mode delivers a non-jerky motion and should be used with shutter speeds below 1/60sec!
# ie. 1/120 or shorter
#
# 2 uses blening on every frame like this:
#
# A B C D E F G H I J K L M N O P Q R <- input sequence
# \|/ \ / \|/ \ / \|/ \ / \|/ <- \|/ = 25:50:25 blending ; \ / = 50:50 blending
# 1 2 3 4 5 6 7 <- resulting output sequence
#
# mode 2 is ideal for shutter speed of 1/60 sec
# since it simulates very close the 24p (1/24sec) motion blur
# and thus giving a really smooth 24p - motion
# as a positive side-effect, this mode reduces noise and nearly comletely
# eliminates remained line flickering of the deinterlacing!
#
# every other number given to mode delivers the the input directly to the output (60fps)
# offset - parameter:
#--------------------
# here you can apply a offset for selecting the 2 out of 5 frames - pattern.
This example provided by "Incredible":
Code:
Avisource("Your true interlaced 29.976 source here.avi")
Telecide()
convert60ito24p(2,0)
#
############### the function #############
#
function convert60ito24p (clip video, int mode, int offset)
{
work = assumefieldbased(video)
out = (mode==2) ? interleave(
\selectevery(
\layer(trim(work, 1, 0),
\layer(work, trim(work, 2, 0), "fast"),
\"fast"), 5, 0 + offset),
\selectevery(
\layer(work, trim(work, 1, 0), "fast"), 5, 3 + offset)) :
\ (mode==1) ? interleave(
\selectevery(trim(work, 1, 0), 5, 0 + offset),
\selectevery(layer(work, trim(work, 1, 0), "fast"), 5, 3 + offset)) :
\ (mode==0) ? selectevery(work, 5, 1 + offset, 4 + offset) : work
assumeframebased(out)
}
#################################
-kwag
|