hydra3333
25th August 2016, 12:22
Hello. Dummy seeking advice. In the script below, this line
video = core.std.SelectEvery(video, cycle=4, offsets=[0, 3])
in the "re-interlacing" part of script, drops fps by half, from 20fps down to 10fps, when piping to x264 and encoding as interlaced.
Taking longer elapsed, sure as there's more material to encode, but dropping the fps by half ?
I must be thinking about it wrongly, which seems likely, unless there's something very slow about that line.
Is someone able to clarify ?
import vapoursynth as vs
# snipped imports and loadplugins
def main():
core = vs.get_core(accept_lowercase=True)
video = core.d2v.Source(r'T:\HDTV\WDTVlive\MP4-VS\x64-1\0-test.d2v')
video = core.std.Trim(video,first=0,length=500)
# INTERLACED-AWARE DEBLOCKER IN HERE
video = core.std.SeparateFields(video, tff=True)
video = haf.Deblock_QED(video)
video = haf.Weave(video, tff=True)
video = mvs.AssumeTFF(video)
# QTGMC IN HERE (SLMODE=1 is spatial, SLMODE=2 is temporal)
video = haf.QTGMC(video, TFF=True, Preset="Very Slow", Sharpness=1.2, SLMode=2, EZKeepGrain=1.2, NoiseProcess=2) # result is double framerate progressive, so re-interlate it later
# DEHALO VIDEO
video = core.fmtc.bitdepth(video,bits=32,fulls=False,fulld=True) #convert to 32bit float. Specify if the clip is full-range (True) or TV-range (False). fulls is for input, fulld for output.
#video = Vine.Dehalo(video, radius=[2, None])
video = core.fmtc.bitdepth(video,bits=8,fulls=True,fulld=False) #convert to 8bit Integer. Specify if the clip is full-range (True) or TV-range (False). fulls is for input, fulld for output.
# RE-INTERLACE VIDEO from double-framerate back down to normal. this is right for 576p50 to 576i25
video = core.std.SeparateFields(video, tff=True)
# if comment out the next line we get circa 20fps if we uncomment it then we drop way down to only circa 10fps ... should we expect that ?
video = core.std.SelectEvery(video, cycle=4, offsets=[0, 3]) # looks like avisynth
video = haf.Weave(video, tff=True)
video = mvs.AssumeTFF(video)
video.set_output()
return True
# ... functions here snipped
main()
x64 portable.
video = core.std.SelectEvery(video, cycle=4, offsets=[0, 3])
in the "re-interlacing" part of script, drops fps by half, from 20fps down to 10fps, when piping to x264 and encoding as interlaced.
Taking longer elapsed, sure as there's more material to encode, but dropping the fps by half ?
I must be thinking about it wrongly, which seems likely, unless there's something very slow about that line.
Is someone able to clarify ?
import vapoursynth as vs
# snipped imports and loadplugins
def main():
core = vs.get_core(accept_lowercase=True)
video = core.d2v.Source(r'T:\HDTV\WDTVlive\MP4-VS\x64-1\0-test.d2v')
video = core.std.Trim(video,first=0,length=500)
# INTERLACED-AWARE DEBLOCKER IN HERE
video = core.std.SeparateFields(video, tff=True)
video = haf.Deblock_QED(video)
video = haf.Weave(video, tff=True)
video = mvs.AssumeTFF(video)
# QTGMC IN HERE (SLMODE=1 is spatial, SLMODE=2 is temporal)
video = haf.QTGMC(video, TFF=True, Preset="Very Slow", Sharpness=1.2, SLMode=2, EZKeepGrain=1.2, NoiseProcess=2) # result is double framerate progressive, so re-interlate it later
# DEHALO VIDEO
video = core.fmtc.bitdepth(video,bits=32,fulls=False,fulld=True) #convert to 32bit float. Specify if the clip is full-range (True) or TV-range (False). fulls is for input, fulld for output.
#video = Vine.Dehalo(video, radius=[2, None])
video = core.fmtc.bitdepth(video,bits=8,fulls=True,fulld=False) #convert to 8bit Integer. Specify if the clip is full-range (True) or TV-range (False). fulls is for input, fulld for output.
# RE-INTERLACE VIDEO from double-framerate back down to normal. this is right for 576p50 to 576i25
video = core.std.SeparateFields(video, tff=True)
# if comment out the next line we get circa 20fps if we uncomment it then we drop way down to only circa 10fps ... should we expect that ?
video = core.std.SelectEvery(video, cycle=4, offsets=[0, 3]) # looks like avisynth
video = haf.Weave(video, tff=True)
video = mvs.AssumeTFF(video)
video.set_output()
return True
# ... functions here snipped
main()
x64 portable.