『漫游』酷论坛>『影音数码技术学习交流』>[求助]在AVS里怎样自动 ..

[求助]在AVS里怎样自动加上下黑边??(加急问题,在线等)

historic@2008-10-16 15:32

我现在在AVS里写的是:

LoadPlugin("C:\Windows\System32\VSFilter.dll")

DirectShowSource("XXX",convertfps=true)

LanczosResize(320,240)

AddBorders(0,13,0,13)

Amplify(3)

textsub("XXX")


其中AddBorders(0,13,0,13),这一个我每一个片子都得根据片原改上下黑边的大小,如何能实现根据片源大小自动计算上下应该加的黑边大小?怎么写?谢谢!!!
引用

不败的魔术师@2008-10-16 17:27

和楼主一起在线等
引用

vempx@2008-10-16 18:30

LoadPlugin("D:\AVSPlugin\DGDecode.dll")
LoadPlugin("D:\AVSPlugin\TIVTC.dll")

d2vpath = "03.d2v"

video=mpeg2source(d2vpath)
mpeg2source(d2vpath)
deint = nnedi()
tfm(d2v=d2vpath,slow=2,mode=3,pp=0,chroma=true,clip2=deint)
tdecimate(mode=1)
crop(8,0,-8,0)
bord=(800-video.height)/2
addborders(0,bord,0,bord)

800换成你要的最终视频高度
引用

vempx@2008-10-16 18:32

嘛,弄出奇数来我可不负责任……
引用

historic@2008-10-16 19:54

晕啊,800我就是换成我的视频高度,这样还不得我一次一次改吗?
我意思只需要我写一个最终的320X240,而别的裁剪加黑边部分完全自动。
也就是在每一次写AVS的时候,只需要我改一下视频的文件名和字幕的文件名,别的都不需要动。
这样怎么办啊???
引用

leeyoung@2008-10-16 20:03

引用
最初由 historic 发布
晕啊,800我就是换成我的视频高度,这样还不得我一次一次改吗?
我意思只需要我写一个最终的320X240,而别的裁剪加黑边部分完全自动。
也就是在每一次写AVS的时候,只需要我改一下视频的文件名和字幕的文件名,别的都不需要动。
这样怎么办啊???

vemp兄 好心写了个脚本 LZ 认为不管够“智能”也就算了 竟然还埋怨起“被伸手的人”
呵呵 你让我 第一次见识到有此等“伸手党”
引用

vempx@2008-10-16 20:17

引用
最初由 historic 发布
晕啊,800我就是换成我的视频高度,这样还不得我一次一次改吗?
我意思只需要我写一个最终的320X240,而别的裁剪加黑边部分完全自动。
也就是在每一次写AVS的时候,只需要我改一下视频的文件名和字幕的文件名,别的都不需要动。
这样怎么办啊???

恕我理解力差,我实在听不懂你要表达什么,也实在搞不明白你最后的目的。

引用
最初由 leeyoung 发布

vemp兄 好心写了个脚本 LZ 认为不管够“智能”也就算了 竟然还埋怨起“被伸手的人”
呵呵 你让我 第一次见识到有此等“伸手党”

:o 嘛嘛~~
引用

historic@2008-10-16 21:17

呵呵,我不懂什么是伸手党,不会就问。
我的意思就是类似于实现某些图形界面的“自动加黑边”而不需要我每次都设置高。
如:假设源片转成320*240时要加60的黑边,也就是上下各加30,用命令能不能实现上下自动加30黑边,而不需要我再去改高的数值。这个是其它图形界面的软件里是很容易实现的啊,像MEDIACODER和WISMENCODER的保持输出大小(320×240)的宽度不变,高度自动加黑边到240。我就这个意思,看明白了吧。
用AVS可以实现吗?
引用

52wy@2008-10-16 21:47

不可以,avs是接口,是程序,是代码。需要你手动执行,不会自动帮你判断。
引用

天神十三煞@2008-10-16 22:20

用我的avswriter吧 自动加黑的
引用

vempx@2008-10-16 22:24

EP一点的办法,用你的片源宽度/320,会得到一个数,这个就是宽度变形率,再用片源的高度/这个数,就是片源在宽度变为320的时候,保持比率不变的情况下,高度变为多少,之后再用240减去这个高度/2,就是上下各要加多少黑边
整个过程都可以用代码在AVS里实现,不过我实在是懒得给你写了
引用

historic@2008-10-16 23:13

首先很感谢各位的热心回复。
非常感谢vempx 朋友的几次解答!AVS用的真好啊,你說的過程我能聽懂,但是用AVS怎么写一窍不通,还望朋友多多帮助,帮俺写一个完整的吧,谢谢了!下辈子有机会请你喝茶:)
引用

su_xinling@2008-10-17 00:20

不想或不会自己写的话,也有现成的,安装一下avslib,里面有很多东西的。你要的320x240自动加黑边,那么就在脚本里加载resize模块后,使用ResizeToFit()这个滤镜。示意如下:

LoadModule("avslib", "filters", "resize")
...
...
...
ResizeToFit(320, 240)
引用

historic@2008-10-17 03:04

LS的真是个夜猫子啊,呵呵。不过你说的我不会,也没看懂该怎么做?AVSLIB一定要装吗?装了之后RESIZETOFIT这个滤镜才可以用吗?不装能不能用?请 su_xinling 朋友写一个完整的例子,谢谢!


vempx朋友帮俺写一个吧。
引用

vempx@2008-10-17 08:06

= =楼主,要学会自己查阅相关资料

avisource("...\a.avi)
video=avisource("...\a.avi") #把视频片段赋值给video
... #中间其他的处理工作
targetheight=video.height*320/video.width # 保持比例的resize之后高度计算
lanczosresize(320,targetwidth) # 做resize
bord=(240-targetheight)/2 # 计算黑边高度
addborders(0,bord,0,bord) # 加黑边


= = 这样就完了,都是小学数学和编程基础的东西,我没有测试这样有没有问题,理论上来说应该可以,不过在计算目标高度的时候有可能出现非整数或者奇数的情况……
引用

«12»共2页

| TOP