『漫游』酷论坛>『影音数码技术学习交流』>AVS如何加logo?

AVS如何加logo?

Kyo.Tokio@2004-03-25 12:32

格式是gif,请问怎样加?
引用

Bopirit@2004-03-25 14:54

http://www.avisynth.org/warpenterprises/



xlogo
引用

Kyo.Tokio@2004-03-25 19:28

xlogo只支持BMP
引用

堕天地狱@2004-03-26 19:42

花园有tct66的教程
引用

Kyo.Tokio@2004-03-26 22:57

引用
最初由 堕天地狱 发布
花园有tct66的教程


都是bmp的
引用

skywalker@2004-03-27 02:19

想了一下.....
试试directshowsoucre() converttoyv12() 加 loop()
然后再resize, overlay到画面上..........
具体细节看avs的说明书吧.......
引用

堕天地狱@2004-03-27 04:29

引用
最初由 Kyo.Tokio 发布


都是bmp的


有動態的
不過要先將gif轉成AVI
引用

weilai@2004-03-27 10:11

還是建議调用 Logo.vdf 這個是 VirtualDub 的插件

至於 Xlogo.dll 這個插件
自己用的結果始終不成功,也搞不清楚問題所在 ?? (試了幾個圖檔,所以也不知是否為其要求較嚴格)

所以此時可用 Logo.vdf 試試,其參數有較完整的控制

花園 ZhenGod 有教學
引用

Kyo.Tokio@2004-03-27 15:28

引用
最初由 weilai 发布
還是建議调用 Logo.vdf 這個是 VirtualDub 的插件

至於 Xlogo.dll 這個插件
自己用的結果始終不成功,也搞不清楚問題所在 ?? (試了幾個圖檔,所以也不知是否為其要求較嚴格)

所以此時可用 Logo.vdf 試試,其參數有較完整的控制

花園 ZhenGod 有教學


weilai,我要强调VirtualDub 的插件只支持bmp,bmp只是
JPG、TIF、PNG等非无边的图片格式,GIF则可以无边的图片格式原理和AI、EPS、WMF、PDF、PSD一样。我做的是从AI转成GIF的,但不是动态图片,只是图片边缘不是正方形或长方形的(比如说是圆形,像你的头像一样,但不是动态,而是静态),所以Logo.vdf是不可行的。还有Xlogo也是只支持BMP,这个也可以否决。
引用

Kyo.Tokio@2004-03-27 15:38

引用
最初由 skywalker 发布
想了一下.....
试试directshowsoucre() converttoyv12() 加 loop()
然后再resize, overlay到画面上..........
具体细节看avs的说明书吧.......


skywalker君请详细说说吧,说到avs我真是不怎么会。
比如说我有一个1.gif的图片,路径是c:\1.gif,size是200X80 px,想在video的第六秒-第10秒之间持续出现4秒、淡入淡出等效果,坐标是(500,200),那应该怎样写,请详细说说。
引用

skywalker@2004-03-28 01:57

你先试试用directshowsource能不能读gif文件吧........
原来我是过是可以的........
不过后来avs升级到了现在的版本........
不能读取图片了, 也有可能是我哪里设定错了.......

你试试这个能不能读......
directshowsource("c:\1.gif",1,audio=false)
引用

skywalker@2004-03-28 02:36

我已经发现原因了........
directshowsource只能读用数字命名的bmp,jpg(可能还有其它的)文件.....
比如123.bmp
用字母命名就不行了(奇怪).....
比如aaa.bmp
而且必须通过grf文件来读...........
奇怪的是gif文件用数字命名也读不了..........
现在继续研究中........


edit:
终于弄明白了.........
暂时我只试过bmp(有alpha channel 的好像可以更简单的做到, 不过我手上没有有alpha channel文件)........
一般来说背景是同一种颜色的比较好........
先把你要overlay的那段trim出来........
后面再用directshow source 来读.....
注意bmp文件名必须是数字......
用要graphedit先生成一个grf文件...........
在graphedit中去掉最后的video renderer.........

然后再自己创建一个mask文件, 就是刚才的那个, 不过要把中间图像的部分填上白色, 背景涂成黑色.........
用同样的方法建立一个grf文件.........

然后几用下面的avs script:

bg =avisource("xxx.avi").trim(xxx,xxx)

top = directshowsource("666.grf",fps=23.976,audio=false)
top2 = directshowsource("777.grf",fps=23.976,audio=false)

overlay(bg, top, x=50, y=20,mask = top2, mode="blend", opacity=1,pc_range=true,output="yv12")

测试用的文件:
http://www-personal.umich.edu/~liusu/test/overlay.rar

截图:


引用

skywalker@2004-03-28 06:00

最终解决方案........
只需要一个背景全黑的logo就行了......

top = directshowsource("55.grf",fps=23.976,audio=false) # 读入logo
#读入avi或其它主视频文件
avisource("xxx.avi")

#调用logo的脚本
Logosimple(top,fadeout=no, 10,200,100,100,0)


#logo 的主脚本 第一个是logo的名称 , 然后是起始帧, 结束帧, X轴, Y轴, 最后是边缘控制的强度. fadeout 是false的时候就是fade in, 反之则是fade out.
#边缘控制的强度是控制logo的边缘往外延伸的程度, 正常是0, 一般只有在logo内部有黑线的时候需要提高.

function Logosimple(clip clip, clip top,int startFrame, int endFrame, int hor, int verticle, float blurthresh, bool "fadeout")
{

Default (hor, 0)
Default (verticle, 0)
Default (fadeout, true)
Default (blurthresh, 0)


top2=top.blur(blurthresh).blur(blurthresh).blur(blurthresh).RGBAdjust(255,255,255,1)
beg = clip.trim(0, startFrame-1)
filter = clip.trim(startFrame,endFrame)
end = clip.trim(endFrame+1,0)
overlayClip = top.trim(0,endFrame-startFrame)
maskClip = top2.trim(0,endFrame-startFrame)
maskClip = (fadeout == true) ? maskClip.FadeOut(maskClip.Framecount()) : maskClip.FadeIn(maskClip.Framecount())
filter = overlay(filter, overlayClip, x=hor, y=verticle,mask = maskClip, mode="blend", opacity=1,pc_range=true,output="yv12")
final = beg + filter + end
return final

}
引用

edl@2004-03-28 07:51

忙事情好久没来POP技术区了,今天来,发现这个帖子,收获不小^^
不过偶问一个,很奇怪,每次我用AVS什么的导入图片,不管什么格式,本来想KEY掉的颜色,总是会剩下一些KEY不掉的..很让人郁闷,边界是很sharp的,都是PS做的绝对边界分明的图片,tolerance 数值设置为0。但是就是边界KEY不干净 T.T 。
引用

skywalker@2004-03-28 09:38

那提高tolerence 不行吗?
引用

«12»共2页

| TOP