AVS滤镜视频压制基础

发表于:5 天前 50
[table][tr][td]

在视频压制过程,绝大部分都需要进行后期的优化,而不是直接进行视频的裸压。
AVS滤镜算是一种很常见的优化滤镜。

大致工作原来:
原始视频——AVS滤镜——x264编码器——压制视频
例如:"C:\x264.exe" --crf 15  --ref 5 --subme 9 --b-adapt 2 --bframes 9  -o "Z:\Desktop\01.mkv" "C:01.avs"


裸压则是:
原始视频——x264编码器——压制视频

视频压制教程在这里:
http://www.tsdm.me/forum.php?mod ... &extra=page%3D1

AVS针对视频内每一帧图像进行操作,不会去编码视频。
因而一个写好的AVS脚本,也可以直接给播放器使用。
至于放出来流不流畅,全看硬件的性能了。

AVS的优点,我感觉就是比较容易上手,非常容易就能学会。
缺点的话,好像是只能在windows平台上运行。
曾经有位高人在wine下配置成功了AVS的运行环境,这说明有wine的话,Linux、Unix都是可以跑起来的。
(PS:我是没成功配置出来)

下面开始介绍AVS脚本的编写

首先,先要安装AVS软件以及各种播放器插件。
播放器插件其实就是装一个播放器就可以解决。
推荐完美解码和终极解码。
如果还有别的播放器的话,卸载时候一定要注意了,千万不要把共用部分一起删掉。
(AviSynth、终极解码(或完美解码)、VC++、NET、DX等插件要配全)

随后建立一个txt文本,将后缀改为avs即可,然后就可以在文本中进行脚本的编写了。

例:
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\UnDot.dll")
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\mt_masktools-26.dll")
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\mvtools2.dll")
import("C:\Program Files\AviSynth 2.5\plugins\SMDegrain v.2.2d.avsi")
DirectShowSource("Z:\Desktop\00.mkv", fps=23.976, audio=false, convertfps=true).AssumeFPS(24000,1001)
#trim(0,2356)
#crop( 240, 0, -240, 0)
undo()
SMDegrain(pel=4)

这是一个完整的AVS脚本(PS:不许吐槽DSS)
其中#为单行注释,和C里面的\\一样。

可以将这段代码分成三个部分:
第一个部分为滤镜的加载:
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\UnDot.dll")
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\mt_masktools-26.dll")
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\mvtools2.dll")
import("C:\Program Files\AviSynth 2.5\plugins\SMDegrain v.2.2d.avsi")

LoadPlugin用于读取滤镜,上面代码就是读取undo.dll这个滤镜。
import用于载入其他是AVS脚本。
如果不愿意输入绝对路径的话,也可以建立一个工作区域:
SetWorkingDir("C:\Program Files\AviSynth 2.5\plugins")
LoadPlugin("UnDot.dll")
import("SMDegrain v.2.2d.avsi")
滤镜加载不会影响压制速度,也不会占用内存(如果没有用到的话)。
所以写的时候,多了也是没有关系的。

第二部是载入视频:
DirectShowSource("Z:\Desktop\00.mkv", fps=23.976, audio=false, convertfps=true).AssumeFPS(24000,1001)
载入视频的这个DSS其实也可以算是一个滤镜。这个滤镜的任务就是载入视频,滤镜需要什么参数,可以上网去查找相关的信息。
这里推荐AvsPmod这个软件,这个软件可以对AVS脚本进行纠错,滤镜输入的参数提示等等。
导入视频的滤镜有:mpeg2source、avisource、WAVSource。。。。等等,跑出来没BUG为基准。
(AVS官网上不去的话,翻墙吧。。。。)

第三部分就是滤镜的运算了:
需要注意的是,AVS滤镜是有先后顺序的,所以加载滤镜前先要考虑好每步都要做什么。
最好每加载一个滤镜都看一下效果如何。

如果要进行分段加载的话,每段选择不同的滤镜来进行拼接,可以写成这样:
a=DirectShowSource("Z:\Desktop\00.mkv", fps=23.976, audio=false, convertfps=true).AssumeFPS(24000,1001).trim(0,1000)
b=DirectShowSource("Z:\Desktop\00.mkv", fps=23.976, audio=false, convertfps=true).AssumeFPS(24000,1001).trim(1001,2000).SMDgerain()
return a+b
或者
c=a+b
return c
注意:a+b与b+a是不同的,有先后顺序。
trim是视频截取函数,0是视频的第一帧,所以0~1000是1001帧

下面说说常见的一些错误:
1.AvsPmod可以正常预览,但是使用命令行给x264编码器时却提升报错。
这种情况看看是不是avs脚本、x264编码器等是否存在路径问题,比如说在cmd下调用一个系统不知道在什么地方的程序(PS这种情况一般不存在)

2.如果导入avsi文件的话,很可呢个需要多个滤镜的支持。
例如:SMDegrain需要mvtools和masktools这两个滤镜。
如果不知道需要什么滤镜,传递给x264或者任意的AVS脚本预览器都会有错误提示的。
例如什么.avsi第多少行的什么函数没有找到之类的。
PS:AVSI文件也是可以用记事本打开的,一般里面会包含需要的滤镜信息,以及详细的参数说明。

3.AVS传递给x264编码,只编码了很少的不一部分就提升报错,或者直接上来就报错,又或者等了好久都没看见cmd里面有输出信息。
这类情况一般来说就是滤镜加载的太多了,内存无法分配了(32位很常见)

下面介绍几个常用的AVS滤镜:
trim视频帧截取。
crop(0,0,0,0)视频剪裁,例如1920x1080剪裁成1440x1080,crop( 240, 0, -240, 0)

QTGMC.avsi
可以用于反交错,例如:QTGMC(preset="slow",fpsdivisor=2)
反交错的作用是除去视频的拉丝现象。

SMDegrain.avsi
去噪滤镜,效果很强力,细节保留也很好。
一般裸用两个就可以让画面变得非常干净。

flash3kyuu_deband.dll
用于去除色带色块,用法:f3kdb(10)

gradfun2db.dll
GradFun2DBmod.avsi
这两个也是除去色带、色块的,威力比较大。
所以号称是毁容大杀器。。。

LimitedSharpenFaster.avsi
LimitedSharpenFaster(strength=150)
锐化滤镜,可以让轮廓线变得更加锐利,太高的话,会造成浮雕质感。

WarpSharp.dll
warpSharp(depth=,blur=,bump=,cubic=)
收线,也就是边线细化,也是起到锐化的作用。
和LimitedSharpenFaster都会造成色带色块的产生。

deen.dll
去噪滤镜,如果不在乎视频细节的话,这个滤镜性价比非常高。
速度很可能是SMD的几倍。

AVS的其他用途上,还可以制作内嵌字幕,就是把字幕压制到视频图层里面,和视频合为一体。(TextSub)
加载字幕时候一定要注意,是否所有文字都有字体,否侧没有字体的文本就会显得很尴尬了。
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\VSFilter.DLL")
DirectShowSource("Z:\Desktop\Picture Drama 1.mkv")
TextSub("Z:\Desktop\Picture Drama 1 chs.ssa")
做成内挂外挂多好,方便自己,方便大家。。。。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
收藏
送赞
分享

发表回复

评论列表(9)

[table][tr][td]辛苦了 写教程不容易啊  建议把压制的那个帖子也在这个帖子补充上方便有心学习的朋友
5 天前 回复
[table][tr][td]
好的~
多谢提醒~
5 天前 回复
[table][tr][td]话说我只知道可以用软件转制视频的格式
压制的话也差不多,就是换个更小的格式的说
5 天前 回复
[table][tr][td]
播放器里面有的那些视频调节选项,例如对比度、亮度这些,其实也是类似这种滤镜,并不改变编码,只是改变当前的画面而已。
一般不用裸压的原因,我感觉是裸压体积比较大,浪费码率。
很多的数据其实都是噪点。
5 天前 回复
[table][tr][td]对刚入门的人来说很有用
5 天前 回复
[table][tr][td]
话说你瞬间就升级来着的
不愧是技术宅的说
5 天前 回复
[table][tr][td]
资源区发资源被评分了,很意外,因为并不是我精心制作的那个资源。。。。
而是随便发的一个。。。
然后就升级了。。。
给的积分比我本身还多。。。
5 天前 回复
[table][tr][td]压制视频太专业了,
想当年用一个魅族论坛里推荐的小软件给魅族m6压个320x240的一分半钟ncop avi都调教了10多次
5 天前 回复
[table][tr][td]
原来你还当搬运的说
难怪升级快的说
5 天前 回复