NAVras
帖子: 141
注册时间: 2016-04-24 1:32

[求助]vpy中I帧判断结果结果不正确(已解决)

代码: 全选

def dn(n,clip):
	I = clip.get_frame(n).props._PictType == 'I'
	src = clip if I else core.std.BlankClip(clip)
	src = core.text.Text(src, clip.get_frame(n).props._PictType)
	return src#返回I帧并标记
src = core.lsmas.LWLibavSource('D:/crap.mpg')
src = core.std.FrameEval(clip=core.std.BlankClip(src), eval=functools.partial(dn,clip=src)).set_output()
最后在I帧处得到一个上面写着I的黑帧...
blank.PNG
blank.PNG (580 Bytes) 查看 2047 次
clip.get_frame(n).props._PictType == 'I'这样写是不是不对?
上次由 NAVras 在 2016-12-20 17:36,总共编辑 1 次。
头像
Holy
核心会员
核心会员
帖子: 235
注册时间: 2010-09-24 9:28

Re: [求助]vpy中I帧判断结果结果不正确

主要問題是 props._PictType 返回的型態是 bytes 而非 string,所以要用 _PictType == b'I' 才能得到正確結果。但你使用 FrameEval 的方式並不好,建議的用法是這樣子:

代码: 全选

def dn(n, f, clip1, clip2):
   src = clip1 if f.props._PictType == b'I' else clip2
   src = core.text.Text(src, f.props._PictType)
   return src

src = core.lsmas.LWLibavSource('D:/crap.mpg')
src = core.std.FrameEval(clip=src, eval=functools.partial(dn, clip1=src, clip2=core.std.BlankClip(src)), prop_src=src).set_output()
图片
NAVras
帖子: 141
注册时间: 2016-04-24 1:32

Re: [求助]vpy中I帧判断结果结果不正确(已解决)

Holy 写了:主要問題是 props._PictType 返回的型態是 bytes 而非 string,所以要用 _PictType == b'I' 才能得到正確結果。
{:cat_14} 原来这样~
Holy 写了:但你使用 FrameEval 的方式並不好,建議的用法是這樣子:

代码: 全选

def dn(n, f, clip1, clip2):
   src = clip1 if f.props._PictType == b'I' else clip2
   src = core.text.Text(src, f.props._PictType)
   return src

src = core.lsmas.LWLibavSource('D:/crap.mpg')
src = core.std.FrameEval(clip=src, eval=functools.partial(dn, clip1=src, clip2=core.std.BlankClip(src)), prop_src=src).set_output()
多谢大大 {:cat_11}

回到 “VapourSynth”