q42602736
帖子: 5
注册时间: 2017-09-14 11:56

VapourSynth改变帧数的写法

也许对大佬来说这个问题很简单,但是这对小弟来说很复杂,AVS研究过可以改成30帧,VS的我找了很久,硬是没有找到,官方那边初级教程也看了,也没找到,睡觉前发一贴,希望醒来又好消息,请大佬些不啬赐教。
只需要把24帧改成任意帧数就行,谢谢。

代码: 全选

import sys
import vapoursynth as vs
import havsfunc as haf
import mvsfunc as mvf
# 第一部分属于环境配置(python习惯将import至于代码头部。)

core = vs.get_core(accept_lowercase=True,threads=6)
core.max_cache_size = 4000
core.std.LoadPlugin(r"E:\VapourSynth\plugins64\Waifu2x-caffe\Waifu2x-caffe.dll")
# 第二部分属于vs配置。注意此路径转换为你安放的路径。

a=r"D:\临时下载地址\[Milky][Himekishi_Angelica][DVDRIP][01-02][BIG5][480P][x264_aac][UNC]\[Milky][Himekishi_Angelica][DVDRIP][01][BIG5][480P][x264_aac][UNC].mkv"
# 视频源路径

src = core.lsmas.LWLibavSource(a,threads=4)
# 下面有两行需要注意。waifu2x只接受RGB输入,而我们的视频大多数都是YUV,所以需要进行转换。
src = mvf.ToRGB(src,depth=32)
# 此处的参数,noise为降噪,0-2.scale为放大倍数(边长的)
src = core.caffe.Waifu2x(src,noise=1,scale=2,model=3,cudnn=True,processor=1)
src = core.resize.Spline16(clip=src, width=1280, height=720)
# 这里转换成最普通的YUV420.事实上这样丢掉了部分信息,不过一般使用并没有用太高质量的必要。
src = mvf.ToYUV(src,matrix = "709",depth=8,css='420')
src.set_output()
跑是能跑但是这番帧数太低了,才20所以想改下帧数
图片
头像
12345大黑
帖子: 13
注册时间: 2017-03-04 12:59

Re: VapourSynth改变帧数的写法

src = core.std.AssumeFPS(clip=src,fpsnum=24000,fpsden=1001)#强制帧率=23.976fps(24000/1001)

http://www.vapoursynth.com/doc/functions/assumefps.html
cunhan
核心会员
核心会员
帖子: 214
注册时间: 2010-09-20 22:09

Re: VapourSynth改变帧数的写法

12345大黑 写了:src = core.std.AssumeFPS(clip=src,fpsnum=24000,fpsden=1001)#强制帧率=23.976fps(24000/1001)

http://www.vapoursynth.com/doc/functions/assumefps.html
AssumeFPS应该不能用,这样出来肯定影音不同步。
头像
Holy
核心会员
核心会员
帖子: 235
注册时间: 2010-09-24 9:28

Re: VapourSynth改变帧数的写法

如果樓主是想要插幀,例如從 24 fps 倍幀到 48 fps,可以參考 mvtools 中的 BlockFPS/FlowFPS,或是 SVP 中的 SmoothFps。
图片
zka41101959
帖子: 3
注册时间: 2017-08-26 22:27

Re: VapourSynth改变帧数的写法

可以用SVP4的插帧算法进行补帧计算

回到 “VapourSynth”