JasinChen
帖子: 43
注册时间: 2017-06-10 22:14

分享一个读取vpy内Trim分割信息生成clt的程序

最近写的一个读取vpy文件中trim函数first,last,length值生成适用于meGUI的clt文件的程序。
分享给大家,有bug的话请联系我。

以下格式经测可行,一般只要语法没问题都可以识别:
clip = core.std.Trim(clip, first=0 , last=24)
clip = core.std.Trim(clip, first=0 , length=24)
clip = core.std.Trim(first=0, last=24, clip=clip)
clip = trim(clip, first=0 , last=24)
clip = trim(src, 0, 50)
原则上原句带有trim()或Trim()都可以识别

PS.因为不带检查功能,所以建议现在vseditor上检查一遍,否则有可能会出错。需要python3.6以上。

------------------------------------------------------------------------------------------------------------------------------------------
2018.08.25

更新:
1.添加对多种帧率的支持
2.现在可以通过两种方式添加文件:
a.直接输入文件名(如:"0.vpy"则输入"0"或"0.vpy"均可),但要求程序与该vpy文件处于同一文件夹内
b.将文件拖入输入框内(一般会以"X:\folder\folder\0.vpy"的形式输入,有无引号均可),不要求程序与该vpy处于同一文件夹内,clt文件将在vpy所处文件夹内生成。

---------------------------------------------------------------------------------------------------------------------------------------------
2018.8.27

更新:
新增支持的格式:
clip = trim(src, last = 24)

-----------------------------------------------------------------------------------------------------------------------------------------------
2018.08.29

更新
1.更名makeclt.py
2.新增添加文件方式:现在可以在vs editor中自动生成clt文件
在vs editor中输入
import makeclt
clip = makeclt.trim(clip, first, last, length)
他可以替代core.std.Trim()执行切割,并自动生成clt文件
附件
makeclt.7z
2018.8.29
(2.24 KiB) 下载 133 次
上次由 JasinChen 在 2018-08-29 1:48,总共编辑 11 次。
橘花怜
帖子: 4
注册时间: 2018-03-29 16:20

Re: 分享一个读取vpy内Trim分割信息生成clt的程序

A = core.std.Trim(clip,first=734,last=15427)
B = core.std.Trim(clip,first=17587,last=29356)
C = core.std.Trim(clip,first=31518,last=38062)
D = core.std.Trim(clip,first=39933,last=40288)
clip = core.std.Splice([A, B, C,D])
预览和check之后没有出现clt文件
JasinChen
帖子: 43
注册时间: 2017-06-10 22:14

Re: 分享一个读取vpy内Trim分割信息生成clt的程序

橘花怜 写了: 2018-08-23 10:51 A = core.std.Trim(clip,first=734,last=15427)
B = core.std.Trim(clip,first=17587,last=29356)
C = core.std.Trim(clip,first=31518,last=38062)
D = core.std.Trim(clip,first=39933,last=40288)
clip = core.std.Splice([A, B, C,D])
预览和check之后没有出现clt文件
你要把这个程序和vpy放在一起,然后打开程序(双击“生成clt.py”),再程序内输入vpy(如"abc.vpy"则输入“abc”即可)的名称,就可以了。

昨天我有重新上传一份新的,原来那个有bug
橘花怜
帖子: 4
注册时间: 2018-03-29 16:20

Re: 分享一个读取vpy内Trim分割信息生成clt的程序

现在可以了 就是我这个脚本分别生成5个 前四个是ABCD单独的clt 第五个是空的
JasinChen
帖子: 43
注册时间: 2017-06-10 22:14

Re: 分享一个读取vpy内Trim分割信息生成clt的程序

橘花怜 写了: 2018-08-24 18:51 现在可以了 就是我这个脚本分别生成5个 前四个是ABCD单独的clt 第五个是空的
第五个你代码怎么写的
橘花怜
帖子: 4
注册时间: 2018-03-29 16:20

Re: 分享一个读取vpy内Trim分割信息生成clt的程序

JasinChen 写了: 2018-08-24 19:13
橘花怜 写了: 2018-08-24 18:51 现在可以了 就是我这个脚本分别生成5个 前四个是ABCD单独的clt 第五个是空的
第五个你代码怎么写的
import vapoursynth as vs
import sys
import havsfunc as haf
import mvsfunc as mvf

core = vs.get_core(threads=16)
core.max_cache_size = 12000
clip = core.ffms2.Source(r'km.ts',threads=1)


clip = core.vivtc.VFM(clip, order=1)
clip = core.vivtc.VDecimate(clip)

A = core.std.Trim(clip,734,15427)
B = core.std.Trim(clip,17587,29356)
C = core.std.Trim(clip,31518,38062)
D = core.std.Trim(clip,39933,40288)
clip = core.std.Splice([A, B, C,D])

clip = core.vsfm.TextSubMod(clip, file="B:/vs/km.ass")


clip.set_output()
JasinChen
帖子: 43
注册时间: 2017-06-10 22:14

Re: 分享一个读取vpy内Trim分割信息生成clt的程序

橘花怜 写了: 2018-08-25 12:42
JasinChen 写了: 2018-08-24 19:13
橘花怜 写了: 2018-08-24 18:51 现在可以了 就是我这个脚本分别生成5个 前四个是ABCD单独的clt 第五个是空的
第五个你代码怎么写的
import vapoursynth as vs
import sys
import havsfunc as haf
import mvsfunc as mvf

core = vs.get_core(threads=16)
core.max_cache_size = 12000
clip = core.ffms2.Source(r'km.ts',threads=1)


clip = core.vivtc.VFM(clip, order=1)
clip = core.vivtc.VDecimate(clip)

A = core.std.Trim(clip,734,15427)
B = core.std.Trim(clip,17587,29356)
C = core.std.Trim(clip,31518,38062)
D = core.std.Trim(clip,39933,40288)
clip = core.std.Splice([A, B, C,D])

clip = core.vsfm.TextSubMod(clip, file="B:/vs/km.ass")


clip.set_output()
这个只能识别trim(),splice()读取不了,也没有意义

回到 “VapourSynth”