在AviSynth中,是否有一个返回当前帧编号的函数?如果没有,我如何获得当前帧号?
这是我的问题,但是对于质量标准:
目标是在条件语句中使用它,因此在将编码与其源进行比较时,可以清楚地看到了什么。如下所示。
a=import("source.avs")
b=ffvideosource("encode.mkv")
interleave(a,b)
media = ((currentFrame % 2 > 0) ? "Encode" : "Source")
subtitle(media)
答案 0 :(得分:2)
可以在PotPlayer或支持AVISynth的其他播放器中同时显示包含时间和帧编号的视频,并且可以逐帧播放。 PotPlayer使用“F”键前进,“D”键前进。这是通过安装AVISynth和AVS脚本创建的:
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\ffms2.dll")
V1 = FFVideoSource("Wham!Last Christmas.mp4")
V2 = FFVideoSource("Wham!Last Christmas.mp4")
stackvertical(v1,v2)
ShowFrameNumber(scroll=true, x=20, y=40, font="Arial", size=24, text_color=$ff0000)
ShowTime(x=82, y=64, font="Arial", size=24, text_color=$ff0000)
ShowSMPTE(fps=24, x=78, y=88, font="Arial", size=24, text_color=$ff0000)
如果fps不准确,则添加FPS = 24。 V1和V2在这里是相同的文件,但不一定是和FFMS2.dll是ffmpeg视频加载器,但你可以使用directshowsource并消除加载插件ffms2:
V1 = DirectShowSource("Wham!Last Christmas.mp4")
V2 = DirectShowSource("Wham!Last Christmas.mp4")
stackvertical(v1,v2)
ShowFrameNumber(scroll=true, x=20, y=40, font="Arial", size=24, text_color=$ff0000)
ShowTime(x=82, y=64, font="Arial", size=24, text_color=$ff0000)
ShowSMPTE(fps=24, x=78, y=88, font="Arial", size=24, text_color=$ff0000)
答案 1 :(得分:1)
有一个名为* current_frame *的运行时变量。但是要以这种方式得到你想要的东西,你应该使用 ConditionalFilter 函数:http://avisynth.org/mediawiki/ScriptClip
另一种解决此任务的方法,我认为这更简单:
a=import("source.avs").subtitle("Source")
b=ffvideosource("encode.mkv").subtitle("Encode")
interleave(a,b)