分页: 1 / 1

求一份AVS複製N次就能一鍵壓完N集的腳本寫法

发表于 : 2014-07-16 11:18
alexz220
就是AVS里用变量表示文件名,
压制时根据AVS文件名自动获取输入及输出文件名。
逐个改名伤不起啊 {:cat_5} 求指导 {:cat_5}

Re: 求一份AVS複製N次就能一鍵壓完N集的腳本寫法

发表于 : 2014-07-17 20:35
mawen1250
思路:
用ScriptFile()获取脚本的文件名,利用AVS自带的string和int处理方式获取对应disc的string和对应m2ts的string,为了方便起见,disc文件夹名需要格式化为只需要数字就能区分的形式——否则的话就要借助于Select()函数根据索引手动指定各个disc的文件夹名。

以Hunter X Hunter为例,这里的string是和MPP的string参数(记住MPP整个大引号括起来的部分实际上就是一个string型参数,MPP本身的作用类似于Eval()函数)连接在一起,如果是直接用的话就和lwlvs的string参数连接在一起:
LWLibavVideoSource("D:\Hunter X Hunter\Vol."+dstr+"\BDMV\STREAM\000"+mstr+".m2ts", threads=1)
[syntax="avisynth"]epstr = LeftStr(ScriptFile(), 3)
epnum = Eval(epstr)
dnum = epnum<14 ? 01+(epnum-01)/3 : epnum<27 ? 05+(epnum-14)/3 : epnum<39 ? 09+(epnum-27)/4 : epnum<49 ? 12+(epnum-39)/4 : epnum<60 ? 15+(epnum-49)/4 : epnum<76 ? 18+(epnum-60)/4 : epnum<91 ? 22+(epnum-76)/4 : 26+(epnum-91)/4
dstr = String(dnum, "%02.0f")
mnum = epnum<14 ? 04+(epnum-01)%3 : epnum<27 ? 04+(epnum-14)%3 : epnum<39 ? 04+(epnum-27)%4 : epnum<49 ? 04+(epnum-39)%4 : epnum<60 ? 04+(epnum-49)%4 : epnum<76 ? 04+(epnum-60)%4 : epnum<91 ? 02+(epnum-76)%4 : 02+(epnum-91)%4
mstr = String(mnum, "%02.0f")

MP_Pipeline("""

LWLibavVideoSource("D:\Hunter X Hunter\Vol."""+dstr+"""\BDMV\STREAM\000"""+mstr+""".m2ts", threads=1)

""")[/syntax]

然后用bat写个循环把这个Template.avs复制成001.avs到105.avs,就直接可以压了。

Re: 求一份AVS複製N次就能一鍵壓完N集的腳本寫法

发表于 : 2014-07-17 21:23
alexz220
mawen1250 写了:思路:
用ScriptFile()获取脚本的文件名,利用AVS自带的string和int处理方式获取对应disc的string和对应m2ts的string,为了方便起见,disc文件夹名需要格式化为只需要数字就能区分的形式——否则的话就要借助于Select()函数根据索引手动指定各个disc的文件夹名。

以Hunter X Hunter为例,这里的string是和MPP的string参数(记住MPP整个大引号括起来的部分实际上就是一个string型参数,MPP本身的作用类似于Eval()函数)连接在一起,如果是直接用的话就和lwlvs的string参数连接在一起:
LWLibavVideoSource("D:\Hunter X Hunter\Vol."+dstr+"\BDMV\STREAM\000"+mstr+".m2ts", threads=1)
[syntax="avisynth"]epstr = LeftStr(ScriptFile(), 3)
epnum = Eval(epstr)
dnum = epnum<14 ? 01+(epnum-01)/3 : epnum<27 ? 05+(epnum-14)/3 : epnum<39 ? 09+(epnum-27)/4 : epnum<49 ? 12+(epnum-39)/4 : epnum<60 ? 15+(epnum-49)/4 : epnum<76 ? 18+(epnum-60)/4 : epnum<91 ? 22+(epnum-76)/4 : 26+(epnum-91)/4
dstr = String(dnum, "%02.0f")
mnum = epnum<14 ? 04+(epnum-01)%3 : epnum<27 ? 04+(epnum-14)%3 : epnum<39 ? 04+(epnum-27)%4 : epnum<49 ? 04+(epnum-39)%4 : epnum<60 ? 04+(epnum-49)%4 : epnum<76 ? 04+(epnum-60)%4 : epnum<91 ? 02+(epnum-76)%4 : 02+(epnum-91)%4
mstr = String(mnum, "%02.0f")

MP_Pipeline("""

LWLibavVideoSource("D:\Hunter X Hunter\Vol."""+dstr+"""\BDMV\STREAM\000"""+mstr+""".m2ts", threads=1)

""")[/syntax]

然后用bat写个循环把这个Template.avs复制成001.avs到105.avs,就直接可以压了。
{:cat_5} {:cat_5} {:cat_5} 泪流满面 {:cat_5} {:cat_5} {:cat_5}

Re: 求一份AVS複製N次就能一鍵壓完N集的腳本寫法

发表于 : 2014-07-18 21:48
cunhan
mawen1250 写了:思路:
用ScriptFile()获取脚本的文件名,利用AVS自带的string和int处理方式获取对应disc的string和对应m2ts的string,为了方便起见,disc文件夹名需要格式化为只需要数字就能区分的形式——否则的话就要借助于Select()函数根据索引手动指定各个disc的文件夹名。

以Hunter X Hunter为例,这里的string是和MPP的string参数(记住MPP整个大引号括起来的部分实际上就是一个string型参数,MPP本身的作用类似于Eval()函数)连接在一起,如果是直接用的话就和lwlvs的string参数连接在一起:
LWLibavVideoSource("D:\Hunter X Hunter\Vol."+dstr+"\BDMV\STREAM\000"+mstr+".m2ts", threads=1)
[syntax="avisynth"]epstr = LeftStr(ScriptFile(), 3)
epnum = Eval(epstr)
dnum = epnum<14 ? 01+(epnum-01)/3 : epnum<27 ? 05+(epnum-14)/3 : epnum<39 ? 09+(epnum-27)/4 : epnum<49 ? 12+(epnum-39)/4 : epnum<60 ? 15+(epnum-49)/4 : epnum<76 ? 18+(epnum-60)/4 : epnum<91 ? 22+(epnum-76)/4 : 26+(epnum-91)/4
dstr = String(dnum, "%02.0f")
mnum = epnum<14 ? 04+(epnum-01)%3 : epnum<27 ? 04+(epnum-14)%3 : epnum<39 ? 04+(epnum-27)%4 : epnum<49 ? 04+(epnum-39)%4 : epnum<60 ? 04+(epnum-49)%4 : epnum<76 ? 04+(epnum-60)%4 : epnum<91 ? 02+(epnum-76)%4 : 02+(epnum-91)%4
mstr = String(mnum, "%02.0f")

MP_Pipeline("""

LWLibavVideoSource("D:\Hunter X Hunter\Vol."""+dstr+"""\BDMV\STREAM\000"""+mstr+""".m2ts", threads=1)

""")[/syntax]

然后用bat写个循环把这个Template.avs复制成001.avs到105.avs,就直接可以压了。
既然还是要用bat,就直接让bat写avs啦。

例如

代码: 全选

set dstr=1
set mstr=1
echo LWLibavVideoSource("D:\Hunter X Hunter\Vol.%dstr%\BDMV\STREAM\000%mstr%.m2ts", threads=1) >>1.avs

Re: 求一份AVS複製N次就能一鍵壓完N集的腳本寫法

发表于 : 2014-07-22 15:35
msg7086
Welcome to rake
[syntax=ruby]
eps=ENV['eps']
file "#{eps}.avs" => ['main.avs'] do
avs = File.read 'main.avs'
avs = avs.gsub('main.dgi', "#{eps}.dgi")
File.write "#{eps}.avs", avs
end
[/syntax]

我都是先把m2ts给软链接到目录下,然后批量按顺序改名,再走rake批量搞的。

Re: 求一份AVS複製N次就能一鍵壓完N集的腳本寫法

发表于 : 2014-07-22 18:03
alexz220
msg7086 写了:Welcome to rake
[syntax=ruby]
eps=ENV['eps']
file "#{eps}.avs" => ['main.avs'] do
avs = File.read 'main.avs'
avs = avs.gsub('main.dgi', "#{eps}.dgi")
File.write "#{eps}.avs", avs
end
[/syntax]

我都是先把m2ts给软链接到目录下,然后批量按顺序改名,再走rake批量搞的。
MR前辈方便发个DGIndexIM的链接吗?
水平太低GOOGLE没搜到 {:cat_5}

Re: 求一份AVS複製N次就能一鍵壓完N集的腳本寫法

发表于 : 2014-07-23 6:16
msg7086
alexz220 写了:MR前辈方便发个DGIndexIM的链接吗?
水平太低GOOGLE没搜到 {:cat_5}
http://forum.doom9.org/showthread.php?t=170237

You need a license to use DGDecIM

Re: 求一份AVS複製N次就能一鍵壓完N集的腳本寫法

发表于 : 2014-07-24 8:45
alexz220
msg7086 写了:
alexz220 写了:MR前辈方便发个DGIndexIM的链接吗?
水平太低GOOGLE没搜到 {:cat_5}
http://forum.doom9.org/showthread.php?t=170237

You need a license to use DGDecIM
Thank you~