分页: 1 / 1

抛砖引玉 小谈AvsP的Macro功能

发表于 : 2011-01-21 20:04
cunhan
所谓Macro,中文一般译成“宏”,即把一些固定的做法以某种形式记录下来。当有需要时只要调用这个“宏”,就能自动完成预先记录的功能。

点开AvsP的主菜单“Macros”,能看到几个预置Macro,名字功能一目了然:
  • “Bookmarks to Chapter”——把书签(Ctrl+B)转换为chapter文件
    “DeleteFrame”——在avs文件末尾增加DeleteFrame代码,删除当前帧
    “DuplicateFrame”——在avs文件末尾增加DuplicateFrame代码,复制当前帧
    “Preview from current point”——使用外部播放器播放当前位置
阅读过macros_readme后,你就会知道,Avsp的macro,其实就是以python为语言基础,使用avsp所提供的api,对当前运行的avsp进行操纵的脚本。

于是,最近做君届TVRIP Freeze到手抽筋的我,马上参照DuplicateFrame,写了个FreezeFrame的macro:
FreezeFrame_N.py —— 用后一帧代替前一帧

代码: 全选

frame = avsp.GetFrameNumber()
avsp.InsertText('\nFreezeFrame(%i,%i,%i)' % (frame, frame,frame+1),None)
FreezeFrame_P.py —— 用前一帧代替后一帧

代码: 全选

frame = avsp.GetFrameNumber()
avsp.InsertText('\nFreezeFrame(%i,%i,%i)' % (frame, frame,frame-1),None)
然后,重启一下avsp后,程序能自动找到这两个macro,我分别给它们设置一个快捷键Alt+N,Alt+P
就这样,我在预览的时候,使用这两个快捷键,就能把对当前帧Freeze的avs语句插入avsp的编辑框里,甚至不需要在编辑框和预览框之间切换焦点。

再谈一个Macro应用,但是我还没写,只是有思路而已。
昨天晚上nmm群里就切割音频讨论了数个方案,然而今天看到Macro后,我看到了一个更加简便的方案了。
不知道看官们看到“Bookmarks to Chapter”这个Macro会有什么想法,我是马上想到了“Bookmarks to cut audio”。
这个Macro写出来后,处理新番TS的时候,只要在avsp里面Trim完广告,就能一键cut audio & generate chapter了。
有兴趣的同学,就当是课后练习试试吧 (喂!

Re: 抛砖引玉 小谈AvsP的Marco功能

发表于 : 2011-01-21 23:17
-o-o-304-o-o-
先膜拜了。再看文

Re: 抛砖引玉 小谈AvsP的Marco功能

发表于 : 2011-01-22 23:04
06_taro
先求NMM群号。再看文……

Re: 抛砖引玉 小谈AvsP的Marco功能

发表于 : 2011-01-23 0:01
-o-o-304-o-o-
06_taro 写了:先求NMM群号。再看文……
估计发了之后会被挤爆吧(逃

Re: 抛砖引玉 小谈AvsP的Marco功能

发表于 : 2011-04-14 16:46
amfilica
[quote="-o-o-304-o-o][/quote]
悄悄地给我一个吧