ConditionalFilter(clip testclip, clip source1, clip source2, string expression1, string operator, string expression2 [, bool show] )
ConditionalFilter returns source1 when the condition formed by expression1+operator+expression2 is met for current frame, otherwise it returns source2. If any function in expression1 or expression2 is not explicitly applied to a clip, it will be applied on testclip.
我大概理解是这样:当前帧满足expression1+operator+expression2这个条件时,返回s1,否则返回s2。如果expression1 or expression2,将应用于testclip。(小学三年级英语水平)
ConditionalReader的wiki:
ConditionalReader(clip clip, string filename, string variablename [, bool show ] )
参数:文件名,变量名
R 59551 59597 3 #表示从59551到59597帧的value=3
看如下栗子:
疑问1:fix.txt是手写还是通过某个滤镜生成?
疑问2:"SceneType", "<", "1"的意思是当前帧的value小于1时,应用fix1(感觉不对。。。),求教正确含义
疑问3:待定。。。
FFVideoSource("F:\6encode\Source.mkv").Crop(0,140,0,-140)
fix1=last.FillMargins(0,1,0,2).BalanceBorders(2,2,0,0).f3kdb(grainY=10, dynamic_grain=true)
fix2=last.f3kdb(range=25,grainY=10,Y=100)
fix3=last.f3kdb(grainY=10, dynamic_grain=true)
ConditionalFilter(last, fix1, "SceneType", "<", "1")
ConditionalFilter(last, fix2, "SceneType", "<", "2")
ConditionalFilter(last, fix3, "SceneType", "<", "3")
ConditionalReader("fix.txt", "SceneType")
#fix.txt
type int
default 0
R 0 590 1
R 776 952 2
R 59551 59597 3
R 60291 60538 3
R 61931 61951 3
R 62333 62771 3
R 65767 66044 3
R 66415 66501 3
R 66759 67051 3
R 67179 67258 3
R 68555 68660 3
R 70340 70477 3
R 70710 70799 3
R 70913 71295 3
R 76812 76877 3
R 95639 95690 2
R 115649 115939 2
R 130207 130304 3
R 133493 133541 3
R 156220 156261 3
R 172148 172185 3
R 174572 174755 3
R 180965 181162 3
R 183450 183540 3