个人TS视频压制处理代码,分辨率 去logo 字幕 SVP60fps

 
    
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
 
    
import vapoursynth as vs
import sys
import havsfunc as haf
import mvsfunc as mvf
import CSMOD as cs
core = vs.get_core(accept_lowercase= True,threads= 4) #CPU线程数
core.max_cache_size = 5000 #VS最大使用的内存(MB)
core.avs.LoadPlugin( "D:/DGNV/x64 Binaries/DGDecodeNV.dll") #64位DGDecodeNV.dll的位置
src = core.avs.DGSource( "C:/Users/Administrator/Desktop/01.dgi") #64位DGI索引文件的位置。能用DGNV尽量用DGNV,不能用再考虑下面的滤镜。
#src = core.ffms2.Source(source="G:/DGNVindex/AAA/AAA.wmv",fpsnum=30000,fpsden=1001) #适用于WMV等老格式,帧率写源的平均帧率即可转化为CFR。
#src = core.lsmas.LibavSMASHSource(source="G:/DGNVindex/AAA/AAA.mp4") #适用于mp4格式
#src = core.lsmas.LWLibavSource(source="G:/DGNVindex/AAA/AAA.mkv") #适用于非mp4格式,例如MKV。
#反交错
src = haf.QTGMC(src, Preset= 'Medium', FPSDivisor= 2 ,TFF= True) #TFF=True前场为真
######
#提取Y平面,转化成线性,缩放,转化为709曲线。对YUV平面同时做普通缩放。把前者的Y,后者的UV组合成新的YUV
#gammaaware的缩放 保持亮度的缩小 普通缩放会导致亮度变暗 精度高
#709曲线是个凹函数。。所以直接对其缩放会导致数值偏小
src16 = core.fmtc.bitdepth (src, bits= 16) #16bit高精度gamma-aware缩放。如不需要缩放,则删掉这一整段。
gray = core.std.ShufflePlanes(src16, 0, colorfamily=vs.GRAY)
gray = core.fmtc.transfer(gray,transs= "709",transd= "linear")
gray = core.fmtc.resample(gray, 1280, 720,kernel= "spline36") #1280.720改成你想缩放的尺寸。注意成比例。不建议用于放大。
gray = core.fmtc.transfer(gray,transs= "linear",transd= "709")
UV = core.fmtc.resample(src16, 1280, 720,kernel= "spline36") #1280.720改成你想缩放的尺寸。注意成比例。不建议用于放大。
down = core.std.ShufflePlanes([gray,UV],[ 0, 1, 2], vs.YUV)
src = core.fmtc.bitdepth (down, bits= 8) #如果要输出10bit,则改成10。
#src = core.warp.AWarpSharp2(src,depth=4,chroma=1) #补偿性锐化。一般不建议使用,除非源的锐利度实在太烂。depth表示锐化强度。
#缩放
#src = core.fmtc.resample(clip=src, w=1440, h=810)
#src = core.fmtc.resample (clip=src, css="420")
#src = core.fmtc.bitdepth (clip=src, bits=8)
#int d [default:1]
#设置过滤器用于去除当前帧的过去和未来帧的数量。d = 0使用1帧,而d = 1使用3帧等等。通常,越大,去噪效果越好。时间大小=(2 * d + 1)。
#int a [default:2]
#设置搜索窗口的半径。a = 0使用1个像素,而a = 1使用9个像素和儿子。通常,越大,去噪效果越好。空间大小=(2 * a + 1)^ 2。
#提示:总搜索窗口大小=时间大小*空间大小。
#int s [default:4]
#设置相似度邻域窗口的半径。对性能的影响很小,因此取决于噪音的性质。相似性邻域大小=(2 * s + 1)^ 2。
#float h [default:1.2]
#控制过滤的强度。更大的值将消除更多的噪音。
#字符串通道[default:“auto”]
#设置要去噪的颜色通道。根据源颜色格式,可能的值为“YUV”,“Y”,“UV”或“RGB”。默认情况下,如果颜色空间为YUV,则为“Y”,否则为“RGB”。
#dlg = core.delogo.EraseLogo(src, r"C:/Users/Administrator/Desktop/1440x810.lgd")
#src = haf.logoNR(dlg, src, chroma=True)
#切广告
src1 = core.std.Trim(src, 2482, 14110)
src2 = core.std.Trim(src, 15909, 24955)
src3 = core.std.Trim(src, 27178, 34669)
src4 = core.std.Trim(src, 36918, 51332)
src = src1+src2+src3+src4
#svp60fps
#src = core.knlm.KNLMeansCL(src, d=1,a=2,h=1.8,channels="Y", device_type='gpu') #对Y平面降噪。h表示降噪力度。d和a表示降噪精度。
#src = core.knlm.KNLMeansCL(src, d=1,a=2,h=1.8,channels="UV",device_type='gpu') #对UV平面降噪。
#src = core.knlm.KNLMeansCL(src, d=1,a=2,h=1.8,channels="Y", device_type='gpu', device_id=0)
#super_params="{pel:2,gpu:1}" #gpu:1表示开启gpu运算,0为纯cpu运算。下同。
#analyse_params="{gpu:1}"
#smoothfps_params="{rate:{num:60000,den:1001,abs:true},algo:23}" #设定目标绝对帧率的分子和分母。algo表示算法,参考SVP的说明。23一般是效果最好的。
#super = core.svp1.Super(src,super_params)
#vectors = core.svp1.Analyse(super["clip"],super["data"],src,analyse_params)
#smooth = core.svp2.SmoothFps(src,super["clip"],super["data"],vectors["clip"],vectors["data"],smoothfps_params)
#src = core.std.AssumeFPS(smooth,fpsnum=smooth.fps_num,fpsden=smooth.fps_den)
#字幕
#src = core.sub.TextFile(src, file=r"C:/Users/Administrator/Desktop/01.ass")
src.set_output()
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值