lwjkk666
帖子: 314
注册时间: 2012-05-29 13:43

VS版的AssumeFPS问题(已扒文解决)

2017-01-18 20:48

例如AVS上使用
#---------正片部分-----------
s1 = last.trim(2398, 36383).AnimeIVTC(mode=1)
#---------OP部分-------------
s2 = last.trim(0, 2397).QTGMC(Preset="Slower", edimode="eedi3+nnedi3",Border=true, FPSDivisor=2,NoiseProcess=0,ezdenoise=0).assumefps(s1.framerate)
#---------ED部分-------------
s3 = last.trim(36384, 38907).QTGMC(Preset="Slower", edimode="eedi3+nnedi3",Border=true, FPSDivisor=2,NoiseProcess=0,ezdenoise=0).assumefps(s1.framerate)
#---------预告部分-------------
s4 = last.trim(38908, 0).AnimeIVTC(mode=1)

s2 + s1 + s3 + s4

要是用这个来脚本来编码的话成品是正常的23.976fps的,中间OP和ED部分写timecode封装的话一切正常。

然后打算移植到VS下例如

a = r'F:\00000.m2ts'
src = core.lsmas.LWLibavSource(a,threads=1)
######IVTC
s1 =core.std.Trim(src,first=0,last=38361)
s2 =core.std.Trim(src,first=38362,last=40460)
s3 =core.std.Trim(src,first=40461,last=40939)

IVTC1= core.vivtc.VDecimate(core.vivtc.VFM(s1, order=1, mode=3, mchroma=True, cthresh=9, mi=80, chroma=True),cycle=5)

Deint=core.std.AssumeFPS(haf.QTGMC(s2,Preset='Slower',TFF=True,FPSDivisor=2),fpsnum=24,fpsden=1)
Deint=core.std.AssumeFPS(haf.QTGMC(s2,Preset='Slower',TFF=True,FPSDivisor=2),fpsnum=24000,fpsden=1001)
IVTC2= core.vivtc.VDecimate(core.vivtc.VFM(s3, order=1, mode=3, mchroma=True, cthresh=9, mi=80, chroma=True),cycle=5)

clip=IVTC1+Deint+IVTC2

用VSeditor预览可以没有报错,但是fps里面显示0/0了,然后拿去喂x264.显示为fps为25/1,喂X265直接程序报错。
问题来了,我觉得是core.std.AssumeFPS()这个参数,fpsnum这项不能用浮点型,故不能直接填23.976这种,只能用int,劳烦大大们帮忙看下有没有解决办法,或者std.AssumeFPS()要怎样写才能等效assumefps(s1.framerate)。
QQ图片20170118204356.png

回到 “VapourSynth”