Starlight
发表于 2021-1-6 22:53:01
unlight 发表于 2021-1-6 22:35
这个只能插普通视频,不能插蔷薇少女第一季第一集和第二季
我现在电脑的情况不是很理想,也没有vfr视频做测试。但是我自用的420楼的脚本在播放vfr视频是可用的(也就一部番。
从另一个帖子看即使不补帧也会闪烁和撕裂,很有兴趣和时间的话试试用核显。
unlight
发表于 2021-1-7 00:18:53
Starlight 发表于 2021-1-6 22:53
我现在电脑的情况不是很理想,也没有vfr视频做测试。但是我自用的420楼的脚本在播放vfr视频是可用的(也 ...
可以正常播放,但疑似不工作。
我索性录屏了
孤雨独火
发表于 2021-1-7 01:16:17
unlight 发表于 2021-1-7 00:18
可以正常播放,但疑似不工作。
我索性录屏了
我直接用#420看那个一定报错的,要稍微改改。
import vapoursynth as vs
core = vs.core
super_params = "{pel:2,gpu:1,scale:{up:2,down:4}}"
analyse_params = "{block:{w:32,h:16,overlap:2},main:{levels:4,search:{type:4,distance:-8,coarse:{type:2,distance:-5,bad:{range:0}}},penalty:{lambda:10.0,plevel:1.5,pzero:110,pnbour:65}},refine:[{thsad:200,search:{type:4,distance:2}}]}"
smoothfps_params = "{rate:{num:2,den:1,abs:false},algo:21,mask:{area:100},scene:{mode:0,limits:{m1:1800,m2:3600,scene:5200,zero:100,blocks:45}}}"
src_fps = container_fps if container_fps>0.1 else 23.976
clip = video_in
clip_10 = clip.resize.Point(format=vs.YUV420P10, dither_type="random")
clip_8 = clip.resize.Point(format=vs.YUV420P8, dither_type="random")
svps = core.svp1.Super(clip_8, super_params)
svpv = core.svp1.Analyse(svps["clip"], svps["data"], clip_10, analyse_params)
clip = core.svp2.SmoothFps(clip_10, svps["clip"], svps["data"], svpv["clip"], svpv["data"],
smoothfps_params, fps=src_fps, src=clip)
###
# clip = core.std.AssumeFPS(clip, fpsnum=clip.fps_num, fpsden=clip.fps_den)
clip.set_output()
Starlight
发表于 2021-1-7 11:12:22
孤雨独火 发表于 2021-1-7 01:16
我直接用#420看那个一定报错的,要稍微改改。432楼的录屏,fps没有specified值 container_fps应该是个空值,所以fps缺省为24时不报错了。
不报错又不生效原因目前还不明。
ssnake所说还存在有30fps的片段,在那些部分可能会有像是音画不同步的问题。
加了位深度的判断,else中的部分应该不是最佳实践(我没有压制方面的知识)
我自己的测试用例下注释掉AssumeFPS就可以让vfr视频正常补帧不会音画不同步(即使svp使用绝对值帧数也正常;视频fps在24-30之间波动,有specified值30.303)import vapoursynth as vs
core = vs.core
clip = video_in
fps = container_fps if container_fps > 0.1 else 23.976
if clip.format.id == vs.YUV420P8:
clip8 = clip
elif clip.format.id == vs.YUV420P10:
clip8 = clip.resize.Point(format=vs.YUV420P8)
else:
clip = clip.resize.Point(
format=vs.YUV420P10, dither_type="error_diffusion")
clip8 = clip.resize.Point(format=vs.YUV420P8)
super_params = "{pel:2,gpu:1,scale:{up:2,down:4}}"
analyse_params = "{block:{w:32,h:16,overlap:2},main:{levels:4,search:{type:4,distance:-8,coarse:{type:2,distance:-5,bad:{range:0}}},penalty:{lambda:10.0,plevel:1.5,pzero:110,pnbour:65}},refine:[{thsad:200,search:{type:4,distance:2}}]}"
smoothfps_params = "{rate:{num:5994,den:100,abs:true},algo:21,mask:{area:100},scene:{mode:0,limits:{m1:1800,m2:3600,scene:5200,zero:100,blocks:45}}}"
svps = core.svp1.Super(clip8, super_params)
svpv = core.svp1.Analyse(svps["clip"], svps["data"], clip, analyse_params)
clip = core.svp2.SmoothFps(clip, svps["clip"], svps["data"], svpv["clip"], svpv["data"],
smoothfps_params, src=clip, fps=fps)
# clip = core.std.AssumeFPS(
# clip, fpsnum=clip.fps.numerator, fpsden=clip.fps.denominator)
clip.set_output()
Starlight
发表于 2021-1-7 11:28:38
vf-add=@interp:vapoursynth=~~/filters/svpflow.py:2:24
另外我发现这样子加个:2:24能提升性能(存疑?
28秒开始的画面不加会肉眼可见掉帧,加了就好了
有没有相关的分析之类的?
视频链接:
https://www.youtube.com/watch?v=BoZ0Zwab6Oc
unlight
发表于 2021-1-7 13:15:16
Starlight 发表于 2021-1-7 11:12
432楼的录屏,fps没有specified值 container_fps应该是个空值,所以fps缺省为24时不报错了。
不报错又不生 ...
还是录屏…匪夷所思的是这回BE+AFM倒是可以插了,正好有个对照组
unlight
发表于 2021-1-7 13:24:01
孤雨独火 发表于 2021-1-7 01:16
我直接用#420看那个一定报错的,要稍微改改。
控制台怎么看?shift+i?
这楼的脚本我也录屏了,似乎…
ps.这个压制真是绝了,看动画片那么多年没遇上过这么难搞的
unlight
发表于 2021-1-7 15:02:23
x264 10bit也只能软解了吧…
unlight
发表于 2021-1-7 15:04:12
本帖最后由 unlight 于 2021-1-7 15:10 编辑
草,我搞明白了
svpflow-sp后面忘了加扩展名了,这要能工作就见鬼了…
434可以正常使用,433貌似不行。这回终于解决问题了。
另,可不可以把1221的UI改回之前那个啊?BottomBar实在是简陋了点,我自己尝试改的结果是直接没有ui了…
孤雨独火
发表于 2021-1-7 15:14:47
unlight 发表于 2021-1-7 15:04
草,我搞明白了
svpflow-sp后面忘了加扩展名了,这要能工作就见鬼了…
434可以正常使用,433貌似不行。这回 ...
可以是可以,主要是我懒,他这个osc和缩略图是一个脚本,缩略图脚本一更新就得跟着重新改{:4_675:}然后现在这个作者又比较勤快