搜索 社区服务 统计排行 帮助
  • 9992阅读
  • 31回复

[分享]利用ConditionalFilter/Reader简化avs分段处理脚本编写

楼层直达
级别: 新手上路
注册时间:
2010-11-13
在线时间:
0小时
发帖:
28
只看该作者 15楼 发表于: 2010-11-13
我不是大大啊OTZ
只会用avs做各种EP的事情罢了...
级别: 骑士
注册时间:
2008-10-06
在线时间:
115小时
发帖:
319
只看该作者 16楼 发表于: 2010-11-13
EP的萬國博覽秀……

Follow me: @06_taro

MediaFire links to:
Taro's tools (avs plugins & other useful tools' builds)
Taro's x264 builds (Latest build: x264 core:129 r2245+704_tMod (&tMod+10bit/MixAQ/OreAQ), Win & MacOS, built on 10 Jan 2012, gcc: 4.7.2)

nmm牆內鏡像(部分工具)
级别: 圣骑士
注册时间:
2006-08-17
在线时间:
146小时
发帖:
215
只看该作者 17楼 发表于: 2010-11-14
不EP不行啊 有些观众可是会EP到下多个Raw到逐帧对比的啊

以上说笑 勿当真

Fansubbing is a waste of time.
级别: 新手上路
注册时间:
2010-11-13
在线时间:
0小时
发帖:
28
只看该作者 18楼 发表于: 2010-11-14
引用
最初由 linuxyouxia 发布
不EP不行啊 有些观众可是会EP到下多个Raw到逐帧对比的啊

以上说笑 勿当真

他们需要MYEPTools里的MoMoE
级别: 圣骑士
注册时间:
2006-08-17
在线时间:
146小时
发帖:
215
只看该作者 19楼 发表于: 2010-11-14
引用
最初由 Yuricon 发布

他们需要MYEPTools里的MoMoE

其实avs本身也提供了一个对比函数

Compare(clip_filtered clip, clip_original clip, string channels, string logfile, bool show_graph)

还有个
Subtract(clip1 clip, clip2 clip)

Subtract produces an output clip in which every pixel is set according to the difference between the corresponding pixels in clip1 and clip2. More specifically, it sets each pixel to (50% grey) + (clip1 pixel) - (clip2 pixel). You can use Levels afterwards if you want to increase the contrast.

嘛 EP无止境 话说破沟有EP交流群吗:D

Fansubbing is a waste of time.
级别: 新手上路
注册时间:
2010-11-13
在线时间:
0小时
发帖:
28
只看该作者 20楼 发表于: 2010-11-14
这和MME性质不一样吧...
级别: 圣骑士
注册时间:
2006-08-17
在线时间:
146小时
发帖:
215
只看该作者 21楼 发表于: 2010-11-14
引用
最初由 Yuricon 发布
这和MME性质不一样吧...

是不一样 但是也是一种对比的选择

实现同一目的或类似目的 可以有不同的选择

所以如果俺的方法行不通的时候 俺也会用大大的脚本 因为俺懒嘛 有现成的就用现成的
比如某一段需要对画中画处理 那么直接在俺自己的方法上加一行 调用大大编写的脚本

大大完全可以另开一帖在POPGO推广EP脚本 让POPGO一些不去NMM的群众不需要进俺的主题 就能了解大大写的脚本的优点 小弟一定捧场

小弟没有任何贬低大大写的脚本的意思 如果先前说的话有所冒犯 还请多多包涵:)

Fansubbing is a waste of time.
级别: 新手上路
注册时间:
2010-11-13
在线时间:
0小时
发帖:
28
只看该作者 22楼 发表于: 2010-11-14
MME重点在于双屏显示来更直观的进行视觉对比,这点上已经和Subtract之类的不同了
其实也就是利用overlay罢了,都这么久了,我自己也没怎么用过(拖
EP乃罪过啊....
级别: 圣骑士
注册时间:
2006-08-17
在线时间:
146小时
发帖:
215
只看该作者 23楼 发表于: 2010-11-14
其实之前对比都是用Interleave(clip1.Subtitle("clip1"),clip2.Subtitle("clip2"))

这样VD预览时 按方向键在前后帧来回切换就能方便得看出不同了

Fansubbing is a waste of time.
级别: 新手上路
注册时间:
2010-11-13
在线时间:
0小时
发帖:
28
只看该作者 24楼 发表于: 2010-11-14
这方法也不错,其实你还可以加个ShowFrameNumber
级别: 风云使者
注册时间:
2004-01-20
在线时间:
633小时
发帖:
549
只看该作者 25楼 发表于: 2010-11-14
其实以前一直想问了
EP的全称是啥?
Extreme P????

求资源,欢迎PM告知:
Xbox360 Clannad OP原版(WMV格式)
PS3 圣恩传说F / Tales of Graces F OP原版(BIK格式)


CLANNAD游戏OP/ED + TOMOYO after OP 无二次Credits内嵌字幕清晰版
BiliBili站点     AcFun站点

--- Direct264 自编译版 ---

碧之轨迹Nightmare VS风之剑圣 第1战(均无水印):6cn(六间房)   56(我乐)
BGM: Inevitable Struggle (Super Arrange Ver.)

Rockman 9 Rock Medley
级别: 新手上路
注册时间:
2002-07-21
在线时间:
35小时
发帖:
79
只看该作者 26楼 发表于: 2010-11-14
引用
最初由 upyzl 发布
其实以前一直想问了
EP的全称是啥?
Extreme P????


蛋+疼
http://popgo.net/wiki/%E6%89%80%E8%B0%93EP
级别: 圣骑士
注册时间:
2006-08-17
在线时间:
146小时
发帖:
215
只看该作者 27楼 发表于: 2010-11-14
引用
最初由 Yuricon 发布
这方法也不错,其实你还可以加个ShowFrameNumber

这个主意真好:) 谢大大指点

Fansubbing is a waste of time.
级别: 新手上路
注册时间:
2009-11-20
在线时间:
7小时
发帖:
61
只看该作者 28楼 发表于: 2010-11-15
EP就是中文直译过来的egg pain饿(捂脸

于是路过学习了。
级别: 圣骑士
注册时间:
2006-08-17
在线时间:
146小时
发帖:
215
只看该作者 29楼 发表于: 2011-04-27
无聊改了下tivtc中的tfm,当display=true时通过消息列队把场景切换帧帧号和交错帧帧号 发送给MyVDIVTC
MyVDIVTC CheckListBox中双击帧号,通过发送消息方式操作VD界面跳转到该帧

tfm函数初始化时,通过FindWindowEx搜索标题为 MyVDIVTC 的窗口 获取MyVDIVTC的窗口句柄

代码尚未整理,凑合着用似乎没问题

http://dl.dbank.com/c08u5ftvot

  1. diff -C 3 B/TFM.cpp A/TFM.cpp
  2. *** B/TFM.cpp    2008-01-17 13:01:06.000000000 +0800
  3. --- A/TFM.cpp    2011-04-27 14:12:56.000000000 +0800
  4. ***************
  5. *** 537,542 ****
  6. --- 537,543 ----
  7.           int blockN, int xblocks, bool d2vmatch, int *mics, PVideoFrame &prv,
  8.           PVideoFrame &src, PVideoFrame &nxt, IScriptEnvironment *env)
  9.   {
  10. +     bool isSC;
  11.       if (combed > 1 && PP > 1) return;
  12.       if (combed > 1 && PP == 1 && blockN != -20)
  13.       {
  14. ***************
  15. *** 552,563 ****
  16.           sprintf(buf, "order = %d  field = %d  mode = %d ", order, field, mode);
  17.       if (np == 3) DrawYV12(dst, 0, 1, buf);
  18.       else DrawYUY2(dst, 0, 1, buf);
  19.       if (!over && !d2vmatch) sprintf(buf, "frame: %d  match = %c %s", n, MTC(fmatch),
  20. !         ((ubsco || mmsco || flags == 5) && checkSceneChange(prv, src, nxt, env, n)) ? " (SC) " : "");
  21.       else if (d2vmatch) sprintf(buf, "frame: %d  match = %c (D2V) %s", n, MTC(fmatch),
  22. !         ((ubsco || mmsco || flags == 5) && checkSceneChange(prv, src, nxt, env, n)) ? " (SC) " : "");
  23.       else sprintf(buf, "frame: %d  match = %c (OVR) %s", n, MTC(fmatch),
  24. !         ((ubsco || mmsco || flags == 5) && checkSceneChange(prv, src, nxt, env, n)) ? " (SC) " : "");
  25.       if (np == 3) DrawYV12(dst, 0, 2, buf);
  26.       else DrawYUY2(dst, 0, 2, buf);
  27.       int i = 3;
  28. --- 553,565 ----
  29.           sprintf(buf, "order = %d  field = %d  mode = %d ", order, field, mode);
  30.       if (np == 3) DrawYV12(dst, 0, 1, buf);
  31.       else DrawYUY2(dst, 0, 1, buf);
  32. +     isSC = checkSceneChange(prv, src, nxt, env, n);
  33.       if (!over && !d2vmatch) sprintf(buf, "frame: %d  match = %c %s", n, MTC(fmatch),
  34. !         ((ubsco || mmsco || flags == 5) && isSC) ? " (SC) " : "");
  35.       else if (d2vmatch) sprintf(buf, "frame: %d  match = %c (D2V) %s", n, MTC(fmatch),
  36. !         ((ubsco || mmsco || flags == 5) && isSC) ? " (SC) " : "");
  37.       else sprintf(buf, "frame: %d  match = %c (OVR) %s", n, MTC(fmatch),
  38. !         ((ubsco || mmsco || flags == 5) && isSC) ? " (SC) " : "");
  39.       if (np == 3) DrawYV12(dst, 0, 2, buf);
  40.       else DrawYUY2(dst, 0, 2, buf);
  41.       int i = 3;
  42. ***************
  43. *** 606,611 ****
  44. --- 608,633 ----
  45.           if (np == 3) DrawYV12(dst, 0, i, buf);
  46.           else DrawYUY2(dst, 0, i, buf);
  47.       }
  48. +
  49. +     if ((MyVDIVTC == NULL) || ((!isSC) && (combed == 0)))
  50. +     {
  51. +         return;
  52. +     } else
  53. +     if ((combed != 0) && isSC)
  54. +     {
  55. +         SendMessage(MyVDIVTC, WM_USER+100, n, 0);
  56. +     } else
  57. +     if ((combed != 0) && (!isSC))
  58. +     {
  59. +         SendMessage(MyVDIVTC, WM_USER+100, n, 1);
  60. +     } else
  61. +     if ((combed == 0) && isSC)
  62. +     {
  63. +         SendMessage(MyVDIVTC, WM_USER+100, n, 2);
  64. +        
  65. +     }
  66. +
  67. +
  68.   }
  69.   
  70.   void TFM::getSettingOvr(int n)
  71. ***************
  72. *** 2316,2321 ****
  73. --- 2338,2347 ----
  74.           sprintf(buf, "TFM:  %s by tritical\n", VERSION);
  75.           OutputDebugString(buf);
  76.       }
  77. +     if (display)
  78. +     {
  79. +         MyVDIVTC = FindWindowEx(NULL,NULL,NULL,"MyVDIVTC");
  80. +     }
  81.       child->SetCacheHints(CACHE_RANGE, 3); // fixed to diameter (07/30/2005)
  82.       lastMatch.frame = lastMatch.field = lastMatch.combed = lastMatch.match = -20;
  83.       nfrms = vi.num_frames-1;
  84. diff -C 3 B/TFM.h A/TFM.h
  85. *** B/TFM.h    2008-01-17 13:01:28.000000000 +0800
  86. --- A/TFM.h    2011-04-26 12:38:22.000000000 +0800
  87. ***************
  88. *** 92,97 ****
  89. --- 92,98 ----
  90.       int tpitchy, tpitchuv, *moutArray, *moutArrayE;
  91.       MTRACK lastMatch;
  92.       SCTRACK sclast;
  93. +     HWND MyVDIVTC;
  94.       double scthresh;
  95.       char buf[4096], outputFull[270], outputCFull[270];
  96.       PlanarFrame *map, *cmask;

Fansubbing is a waste of time.
快速回复

限150 字节
上一个 下一个