(本文写于2017年,现SVP已有变化,仅供参考)
1. 使用软件:MeGUI、AviSynth、小丸工具箱、SVP
MeGUI和小丸工具箱网上一搜一大把。SVP在官网有免费版SVP 4 Free,但是下的是在线安装包,安装的时候可能要挂个VPN。如果SVP仅用于插帧渲染,只用下载插件即可SVP插件+AviSynth。想要配合Potplayer使用来对视频进行即时插帧请安装完整版SVP。
SVP介绍(引用自官网):
SVP 使用与高端电视和投影仪相同的帧差值技术(参见 "TrimensionDNM"、"Motion Plus"、"Motionflow" 等)。该技术通过在现有帧之间创建中间动画帧以提高帧速率,从而产生非常平滑、流畅以及清晰的运动效果。
2. 流程
准备工作:打开MeGUI,Ctrl+U,尽量将所有能升级的都勾选上,进行升级。网速不好或者懒的务必将x264和L-SMASH Works更新。
新建文本文档,将以下内容复制进入:
# This script was generated by SmoothVideo Project (SVP) Manager.
# Check http://www.svp-team.com for more details.
SetMemoryMax(1024)
global svp_scheduler=true
global threads=7
global svp_cache_fwd=threads+2
LoadPlugin("C:\Program Files (x86)\SVP 4\plugins\svpflow1.dll")
LoadPlugin("C:\Program Files (x86)\SVP 4\plugins\svpflow2.dll")
LoadPlugin("C:\Program Files (x86)\MeGUI-2715-32\tools\lsmash\LSMASHSource.dll")
LSMASHVideoSource("C:\Users\Frank\Desktop\project.mp4").ConvertToYV12()
#deinterlace
#crop
#denoise
#resize
global crop_params=""
global resize_string=""
global super_params="{pel:1,scale:{up:0},gpu:1,full:false,rc:false}"
global analyse_params="{block:{overlap:1},main:{search:{coarse:{distance:-10,bad:{sad:2000,range:24}}},penalty:{pzero:100}}}"
global smoothfps_params="{cubic:0,rate:{num:5,den:2},algo:13,scene:{limits:{blocks:20}}}"
global demo_mode=0
stereo_type=0
stereo_left_selection=""
stereo_right_selection=""
########## BEGIN OF MSMoothFps.avs ##########
# This file is a part of SmoothVideo Project (SVP) 3.1.4
# This is NOT the full AVS script, all used variables are defined via
# JavaScript code that generates the full script text.
function interpolate(clip src)
{
input = crop_params=="" ? src : eval("src.crop("+crop_params+")")
input = resize_string=="" ? input : eval("input."+resize_string) super=SVSuper(input, super_params)
vectors=SVAnalyse(super, analyse_params, src=input) smooth=SVSmoothFps(input, super, vectors, smoothfps_params, mt=threads, url="www.svp-team.com")
return demo_mode==0 ? smooth : demo(input,smooth)
}
input=last
stereo_type==0 ? eval(""" interpolate(input)
""") : stereo_type==1 || stereo_type==3 ? eval("""
lf = interpolate(input.crop(0,0,input.width/2,0))"""+stereo_left_selection+"""
rf = interpolate(input.crop(input.width/2,0,0,0))"""+stereo_right_selection+"""
StackHorizontal(lf, rf)
""") : stereo_type==2 || stereo_type==4 ? Eval("""
lf = interpolate(input.crop(0,0,0,input.height/2))"""+stereo_left_selection+"""
rf = interpolate(input.crop(0,input.height/2,0,0))"""+stereo_right_selection+"""
StackVertical(lf, rf)""") : input
########### END OF MSMoothFps.avs ###########
- 其中几个可以修改的地方:
#设置最大使用内存
SetMemoryMax(1024)
#载入SVP插件路径,以本机为准
LoadPlugin("C:\Program Files (x86)\SVP 4\plugins\svpflow1.dll")
LoadPlugin("C:\Program Files (x86)\SVP 4\plugins\svpflow2.dll")
#刚更新的L-SMASH,插件位置一般在MeGUI\tools\lsmash文件夹下
LoadPlugin("C:\Program Files (x86)\MeGUI-2715-32\tools\lsmash\LSMASHSource.dll")
#这里填写需要转换的视频文件的位置,同样非中文路径
LSMASHVideoSource("C:\Users\Frank\Desktop\project.mkv").ConvertToYV12()
- 保存文件,后缀名.avs,拖入MeGUI界面。此时会直接冒出来一个视频预览界面,无视之,关掉。
如果有bug,一般是插件没装好或是路径有问题。
点击config,设置x264参数如下(因为这里我用New Game!第二季的NCOP做示范,所以Tuning选了Animation。Quality越小越好,但是18就够了。预设可以选Slower:
- 设置完毕,点击Queue开始压制,等待。
3. 插入音频,打开小丸工具箱,先将音频从源中抽取出来:
然后压入视频,得到最终视频:
4. 检查视频信息
可以看到已经插到60帧
5. 参考和备注
SVP插件下载链接参考的是SVP网站上给出的插帧实例。但是原文太久没更新了,很多地方不好用。
其他部分参考在视频处理中使用SVP4。原文使用了多线程语句,无奈本人技术不高,不会应用,测试时容易发生问题,故删去这一部分。
LSMASH只能载mp4、mov的视频文件,其他格式的文件请更换滤镜。
LSMASHVideoSource:Uses libavcodec as a video decoder and L-SMASH as a demuxer. Recommended for MP4, MOV, ISO Base Media and its derived file formats.
SVP视频渲染插帧适合:镜头平移、推进拉远、原有较高帧率作画的动画画面、大部分的录像画面等。
SVP视频渲染插帧不适合:画面中物体快速通过、快速的遮罩转场、过低帧率作画的动画画面(如背景中汽车快速驶过,K帧发现仅有3帧变化的汽车作画)、需要卡时间以匹配MAD中音乐节拍的画面等。