




已阅读5页,还剩35页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一.静态logo可以通过AviSynth或VirtualDubMod加载静态logo;先讨论AviSynth方法:处理背景色:1.用colorkeymask滤镜;2.用mask滤镜;1.colorkeymask滤镜:(1)logo的选取选择一定分辩率的图片,在图像编辑器里编辑好尺寸,尽量不要在脚本里用resize滤镜.(2)编写脚本若图片背景为纯白色,比如脚本:quote: v1=AviSource(G:SampleAVIs01.avi).converttorgb32 v2=ImageReader(G:Samplepicsp01.jpg).converttorgb24.flipvertical() v3=v2.converttorgb32.colorkeymask($FFFFFF,20) Layer(v1,v3,add,255,0,0)解说:v1=AviSource(G:SampleAVIs01.avi).converttorgb32 #以AviSource方式读取影片来源;改变成converttorgb32的颜色环境v2=ImageReader(G:Samplepicsp01.jpg).converttorgb24.flipvertical() #以ImageReader方式读取logo来源;改变成converttorgb24的颜色环境,也可以写为converttorgb32;flipvertical()为翻转滤镜v3=v2.converttorgb32.colorkeymask($FFFFFF,20) #将colorkeymask滤镜应用到logo Layer(v1,v3,add,255,0,0) #合并v1(影片),v3(logo);Layer函数中覆盖强度为255,图片主体不透明;图片坐标值为0,0,在左上角colorkeymask滤镜的说明:colorkeymask(int color,int tolerance)int color:色彩深度-16进制: $xxxxxx,x取值为0-f; 10进制:0-255 int tolerance:取值0-255,在int color固定时,随int tolerance值的增大,图片趋向透明.colorkeymask($FFFFFF,40)中先固定int color为$FFFFFF,调节int tolerance使图像达到最佳效果,int tolerance值过小,背景色不能完全去掉;int tolerance值过大,导致主体颜色损失,此处为20.这里$FFFFFF若改为10进制数起不到去掉背景色的作用.可见logo有一定的损失.若图片背景为其它纯色,比如方法a.确定背景色的RGB数值,将int color用RGB的十六进制形式表示.(RGB三原色在WINDOWS有相应的值以16进制编译,定义了256种色彩深度即0-FF,但在SSA中是以BGR形式表示出来的.若R:46,G:139,B:87,则RGB:2E8B57,BGR:578B2E)方法b.将背景色改为纯白色,修改办法在第2部分的mask滤镜方法中,修改后再按加载.下面讨论方法a获得背景颜色代码的方法:打开WINDOWS附件中的画图,点击工具栏里的取色,选择背景色;打开颜色菜单,编辑颜色,规定自定义颜色,得到R:152,G:115,B:211,即RGB: 9873D3,用BGR表示为BGR: D37398.或打开Adobe Photoshop,点击工具栏里的吸管工具,也可以得到RGB的十进制数值.转换为16进制的方法:直接计算或打开Sub Station Alpha v4.08在Style Override中的colour规定自定义颜色,即可显示BGR数值,再转换为RGB形式即可.脚本:quote: v1=AviSource(G:SampleAVIs01.avi).converttorgb32 v2=ImageReader(G:Samplepicsp03.jpg).converttorgb24.flipvertical() v3=v2.converttorgb32.colorkeymask($9873D3,40) Layer(v1,v3,add,255,0,0)注:colorkeymask($9873D3,40)中先固定int color为$9873D3,调节int tolerance到40去掉背景色;在去掉背景色后,int tolerance的值要尽量的小.主体颜色有少量损失.将以上脚本中的colorkeymask($9873D3,40)改为colorkeymask(255,165),其它不变主体颜色损失严重.若将colorkeymask($9873D3,40)改为colorkeymask(60,165),其它不变主体颜色损失严重.若将colorkeymask($9873D3,40)改为colorkeymask(0,220),其它不变主体颜色损失十分严重.总结:若int color采用16进制的某个颜色(一般选用背景色的RGB值),当int tolerance值的增大到一特定值时,该颜色消失.(当采用16进制不能去掉背景色时,可尝试采用10进制)若int color采用10进制的某个颜色(一般先固定int color为255),变动int tolerance的值,选择去掉背景色的最佳数值,再固定int tolerance的值,回过头来调节int color的数值,使图像效果达到最佳.无论采用16进制还是10进制,随int tolerance值增大,主体颜色都会减弱.若图片背景为杂色,比如方法a.将背景色改为纯白色,修改办法在第2部分的mask滤镜方法中,修改后再按加载.方法b.用mask函数实现透明.2.mask滤镜(1)使用Adobe Photoshop,先将图片背景色改为纯白色对中的图片,使用工具栏中的魔棒工具,选取背景区域;右键选择扩大选取,可减少边界误差设置前景色为纯白色打开编辑菜单,选填充得到底色纯白的图片若魔棒工具很难选定图形,在导航器中将画面放大到1000%,确定原图形的边缘颜色;使用工具栏中的铅笔工具,选画笔为最细,用铅笔工具将其边缘线加强一遍即可.(2)制做logo的遮罩图片,即底色纯黑,主体纯白,制作方法同上(切换底色和主体颜色时用右键选则反取)脚本:quote: v1=AviSource(G:SampleAVIs01.avi).converttorgb32v2=ImageReader(G:Samplepicsp15.jpg).converttorgb32.flipvertical()v3=ImageReader(G:Samplepicsp16.jpg).converttorgb32.flipvertical()v2=v2.mask(v3).FadeIO(24)v4=trim(v1,0,119) v5=trim(v1,120,359).Layer(v2,add,255,460,0) v6=trim(v1,360,0) return v4+v5+v6解说:v1=AviSource(G:SampleAVIs01.avi).converttorgb32 #以AviSource方式读取影片来源;改变成converttorgb32的颜色环境v2=ImageReader(G:Samplepicsp15.jpg).converttorgb32.flipvertical() #以ImageReader方式读取logo来源;改变成converttorgb32的颜色环境,mask只支持rgb32v3=ImageReader(G:Samplepicsp16.jpg).converttorgb32.flipvertical() #以ImageReader方式读取logo遮罩图片来源;改变成converttorgb32的颜色环境v2=v2.mask(v3).FadeIO(24) #合并logo与遮罩图片;logo淡入,淡出为24幅,对于23.976frm/s的影片,为1秒(淡出效果不明显)v4=trim(v1,0,119) #前5秒logo不会出现,5*24=120frm v5=trim(v1,120,359).Layer(v2,add,255,460,0) #logo从第5秒出现到第15秒结束,持续10秒; Layer函数中覆盖强度为255,图片主体不透明;影片的分辨率640*352,logo分辨率180*119, 图片坐标值为460=640-180,0,在右上角v6=trim(v1,360,0) #截取359以后的幅return v4+v5+v6 #结合三部分另外logo可以用png或bmp格式的图片用png图片:quote: v1=AviSource(G:SampleAVIs01.avi).converttorgb32v2=ImageReader(G:Samplepicsp18.png).converttorgb32.flipvertical()v3=ImageReader(G:Samplepicsp19.png).converttorgb32.flipvertical()v2=v2.mask(v3).FadeIO(24)v4=trim(v1,0,119) v5=trim(v1,120,359).Layer(v2,add,255,460,0) v6=trim(v1,360,0) return v4+v5+v6用bmp图片:quote: v1=AviSource(G:SampleAVIs01.avi).converttorgb32v2=ImageReader(G:Samplepicsp21.bmp).converttorgb32v3=ImageReader(G:Samplepicsp22.bmp).converttorgb32v2=v2.mask(v3).FadeIO(24)v4=trim(v1,0,119) v5=trim(v1,120,359).Layer(v2,add,255,460,0) v6=trim(v1,360,0) return v4+v5+v6注:已去掉翻转滤镜flipvertical()可见,用mask滤镜的实现背景透明效果明显好于用colorkeymask滤镜(也可用ACD FotoCanvas 2.0制做遮罩图片,但边缘误差较大);下面讨论用VirtualDubMod加载静态logo方法一:从Open video file(s) via AVIsynth打开avs脚本,即上面所讲方法二:在VirtualDubMod中打开要压缩的视频,选择Full processing mode,打开Filters点击add,在Add Filter中选则logo只能选择24位BMP图或tga图片,若要载入如下24位BMP图(链接转为jpg图)为去掉底色,需要再做出其黑底以及黑底白芯两张24位BMP图将黑底图片作为Logo image,将黑底白芯图片作为Alpha image;Opacity滑块用来调节透明度;Justification确定图片的大置位置;X offset与Y offset为水平和垂直位移点ok确定后即可压缩二.动态logo为方便起见,下面讨论avi文件为mp3音频的情况1.gif动画若影片帧率为23.976frm/s(frm/s相当于fps),选择帧率为12.5frm/s的图片如下:对于小于影片帧率的gif图片,打开Gif Movie Gear,从属性设置的全局帧看到动画方框中的88表示每0.08秒显示1幅,1幅/(8*0.01秒)=12.5幅/秒=12.5frm/s;Gif Movie Gear的默认值为10运用前面的思想,我们需要制作遮罩视频源,因此首先制作遮罩图片;先将图片保存为png,bmp,jpg等格式(为了后面做遮罩图片方便,先不要改变图片尺寸),保存后为6张单元图,将这6张图的底色改为纯白色,再做这6张图的遮罩图片(黑底白芯),仍然用前面方法;png格式的图片用魔棒工具进行填充较为方便,但如果填充有问题可以将其转换为bmp格式;等做好一对一的遮罩图片,再修改这12张图的尺寸.选择与影片帧率相同或接近的帧率,影片帧率23.976frm/s,选择25frm/s;将8改为4,则1幅/(4*0.01秒)=25幅/秒=25frm/s,为了使动画频率不变,可以在原来的帧后面插入一次相同帧,这样保存后的avi文件帧率为25frm/s,但其运动其频率与gif(帧率为12.5frm/s)相同对固有帧多次复制,使得从Gif Movie Gear转换出来的avi文件达到一定长度,使其大于在影片中的显示时间.(这里在每一帧后面插入一遍相同帧后,再对其复制19遍,共计20个循环,将10(默认值)改为4,转出来的avi有19秒)从Gif Movie Gear转换出来的avi的动画还需要用VirtualDubMod再做一次压缩,否则若用DirectShowSource方式读取从Gif Movie Gear转换出来的avi,会出现错误提示:the filter graph manager wont talk to me若用AviSource方式读取,会出现错误提示:the video decompressor couldnt produce YUY2 or RGB output在VirtualDubMod中打开要压缩的视频,选择Full processing mode,打开Compression可以选用XviD MPEG-4 Codec或DivX Pro 5.0.5 Codec,用XviD MPEG-4 Codec压出的颜色比用DivX Pro 5.0.5 Codec要好在动画运动频率正常的情况下,最后压缩得到的avi文件其帧率应当与影片帧率相同或接近;当动画帧率小于影片帧率时,运动频率加快,当动画帧率大于影片帧率时,运动频率减慢;帧率的转换既可在Gif Movie Gear中完成,又可在VDM中完成对于大于影片帧率的gif图片,比如50frm/s,1幅/(2*0.01秒)=50幅/秒=50frm/s;将2改为4,动画频率变为原来的一半,运动变慢,如果要删除gif中固有的帧必然造成损失;因此制作或选择gif图片,应尽量使其帧率不大于影片帧率,当影片帧率/gif帧率=整数(或接近)时,可采用上述插入相同帧的方法保持动画频率不变.脚本:quote: v1=AviSource(G:SampleAVIs01.avi).converttorgb32.trim(125,374) v2=AviSource(G:SampleAVIs04.avi).converttorgb32 v3=AviSource(G:SampleAVIs05.avi).converttorgb32v2=v2.mask(v3).FadeIO(25)v4=Layer(v1,v2,add,255,0,0)v5=AviSource(G:SampleAVIs01.avi).converttorgb32v6=v5.trim(0,124)+v4+v5.trim(375,0) return v6解说:v1=AviSource(G:SampleAVIs01.avi).converttorgb32.trim(125,374) #以AviSource方式读取影片来源;改变成converttorgb32的颜色环境;截取100到349幅v2=AviSource(G:SampleAVIs04.avi).converttorgb32 #以AviSource方式读取白底动画来源;改变成converttorgb32的颜色环境 v3=AviSource(G:SampleAVIs05.avi).converttorgb32 #以AviSource方式读取遮罩视频源;改变成converttorgb32的颜色环境v2=v2.mask(v3).FadeIO(25) #合并白底动画与遮罩视频源;logo淡入,淡出为25幅,对于25frm/s的动画,为1秒(淡出效果不明显)v4=Layer(v1,v2,add,255,0,0) #将动画加入到影片中,Layer函数中覆盖强度为255,动画主体不透明v5=AviSource(G:SampleAVIs01.avi).converttorgb32 #以AviSource方式读取影片来源;改变成converttorgb32的颜色环境v6=v5.trim(0,124)+v4+v5.trim(375,0) #动画在第5秒出现到第15秒结束,持续10秒,5*25=125frm,15*25=375frmreturn v6 #返回表达式v6注意:mask滤镜仅适用于rgb32色彩环境;用DirectShowSource读取影片来源速度较慢,最好不用;对于动画显示时间的设置应以最后压缩好的avi文件帧率来决定如果不使用遮罩视频源,还可以使用以下脚本:quote: v1=AviSource(G:SampleAVIs01.avi).ConvertToYUY2.trim(125,374) v2=AviSource(G:SampleAVIs04.avi).ConvertToYUY2 v3=Layer(v1,v2,add,255,0,0)v4=AviSource(G:SampleAVIs01.avi).ConvertToYUY2v5=v4.trim(0,124)+v3+v4.trim(375,0) return v5最后以YUY2颜色环境模式输出将上面第3行改为v3=Layer(v1,v2,fast,0,0),Layer滤镜中的字段add改为fast, 参数level值不起作用,透明度一半采用笨办法,10个循环,图片采用最初从Gif Movie Gear保存下来的原始尺寸的png图片,由于gif图片帧率为12.5frm/s,差不多是影片23.975frm/s的一半,故每2帧对应1幅动画quote: v1=AviSource(G:gifjpgs01.avi).converttorgb32p1=ImageReader(G:Samplepicspng01.png).converttorgb32.flipvertical()p2=ImageReader(G:Samplepicspng02.png).converttorgb32.flipvertical()p3=ImageReader(G:Samplepicspng03.png).converttorgb32.flipvertical()p4=ImageReader(G:Samplepicspng04.png).converttorgb32.flipvertical()p5=ImageReader(G:Samplepicspng05.png).converttorgb32.flipvertical()p6=ImageReader(G:Samplepicspng06.png).converttorgb32.flipvertical()v2=trim(v1,0,124).converttorgb32 v11=trim(v1,125,126).Layer(p1,add,255,0,0) v12=trim(v1,127,128).Layer(p2,add,255,0,0)v13=trim(v1,129,130).Layer(p3,add,255,0,0)v14=trim(v1,131,132).Layer(p4,add,255,0,0)v15=trim(v1,133,134).Layer(p5,add,255,0,0)v16=trim(v1,135,136).Layer(p6,add,255,0,0)v21=trim(v1,137,138).Layer(p1,add,255,0,0) v22=trim(v1,139,140).Layer(p2,add,255,0,0)v23=trim(v1,141,142).Layer(p3,add,255,0,0)v24=trim(v1,143,144).Layer(p4,add,255,0,0)v25=trim(v1,145,146).Layer(p5,add,255,0,0)v26=trim(v1,147,148).Layer(p6,add,255,0,0)v31=trim(v1,149,150).Layer(p1,add,255,0,0) v32=trim(v1,151,152).Layer(p2,add,255,0,0)v33=trim(v1,153,154).Layer(p3,add,255,0,0)v34=trim(v1,155,156).Layer(p4,add,255,0,0)v35=trim(v1,157,158).Layer(p5,add,255,0,0)v36=trim(v1,159,160).Layer(p6,add,255,0,0)v41=trim(v1,161,162).Layer(p1,add,255,0,0) v42=trim(v1,163,164).Layer(p2,add,255,0,0)v43=trim(v1,165,166).Layer(p3,add,255,0,0)v44=trim(v1,167,168).Layer(p4,add,255,0,0)v45=trim(v1,169,170).Layer(p5,add,255,0,0)v46=trim(v1,171,172).Layer(p6,add,255,0,0)v51=trim(v1,173,174).Layer(p1,add,255,0,0) v52=trim(v1,175,176).Layer(p2,add,255,0,0)v53=trim(v1,177,178).Layer(p3,add,255,0,0)v54=trim(v1,179,180).Layer(p4,add,255,0,0)v55=trim(v1,181,182).Layer(p5,add,255,0,0)v56=trim(v1,183,184).Layer(p6,add,255,0,0)v61=trim(v1,185,186).Layer(p1,add,255,0,0) v62=trim(v1,187,188).Layer(p2,add,255,0,0)v63=trim(v1,189,190).Layer(p3,add,255,0,0)v64=trim(v1,191,192).Layer(p4,add,255,0,0)v65=trim(v1,193,194).Layer(p5,add,255,0,0)v66=trim(v1,195,196).Layer(p6,add,255,0,0)v71=trim(v1,197,198).Layer(p1,add,255,0,0) v72=trim(v1,199,200).Layer(p2,add,255,0,0)v73=trim(v1,201,202).Layer(p3,add,255,0,0)v74=trim(v1,203,204).Layer(p4,add,255,0,0)v75=trim(v1,205,206).Layer(p5,add,255,0,0)v76=trim(v1,207,208).Layer(p6,add,255,0,0)v81=trim(v1,209,210).Layer(p1,add,255,0,0) v82=trim(v1,211,212).Layer(p2,add,255,0,0)v83=trim(v1,213,214).Layer(p3,add,255,0,0)v84=trim(v1,215,216).Layer(p4,add,255,0,0)v85=trim(v1,217,218).Layer(p5,add,255,0,0)v86=trim(v1,219,220).Layer(p6,add,255,0,0)v91=trim(v1,221,222).Layer(p1,add,255,0,0) v92=trim(v1,223,224).Layer(p2,add,255,0,0)v93=trim(v1,225,226).Layer(p3,add,255,0,0)v94=trim(v1,227,228).Layer(p4,add,255,0,0)v95=trim(v1,229,230).Layer(p5,add,255,0,0)v96=trim(v1,231,232).Layer(p6,add,255,0,0)v01=trim(v1,233,234).Layer(p1,add,255,0,0) v02=trim(v1,235,236).Layer(p2,add,255,0,0)v03=trim(v1,237,238).Layer(p3,add,255,0,0)v04=trim(v1,239,240).Layer(p4,add,255,0,0)v05=trim(v1,241,242).Layer(p5,add,255,0,0)v06=trim(v1,243,244).Layer(p6,add,255,0,0)v3=trim(v1,245,0).converttorgb32return v2+v11+v12+v13+v14+v15+v16+v21+v22+v23+v24+v25+v26+v31+v32+v33+v34+v35+v36+v41+v42+v43+v44+v45+v46+v51+v52+v53+v54+v55+v56+v61+v62+v63+v64+v65+v66+v71+v72+v73+v74+v75+v76+v81+v82+v83+v84+v85+v86+v91+v92+v93+v94+v95+v96+v01+v02+v03+v04+v05+v06+v3动画从第5秒开始出现,5*25=125frm,持续4.8秒,9.8*25=245frmffdshow由于脚本行数受到限制,当语句过多时将无法加载;将10个循环的avs脚本直接从Helix Producer Plus中打开,但动画出现后出现急速翻转现象;若通过VirtualDubMod中的Open video file(s) via AVIsynth打开avs脚本,通过移动关键帧开始也会出现动画的翻转现象,但多移动几次后则正常显示,此时再按上面的方法压缩保存即可2.加入avi影片若原影片为mp3音频,帧率23.976frm/s,尺寸640*352(1)选择mp3音频的片子,帧率25frm/s,尺寸592*320脚本:quote: v1=AviSource(G:SampleAVIs01.avi).ConvertToYUY2.trim(125,374) v2=AviSource(G:SampleAVIs08.avi).ConvertToYUY2.LanczosResize(296,160) v3=Layer(v1,v2,add,255,344,0).ConvertToYV12 v4=AviSource(G:SampleAVIs01.avi).ConvertToYV12 v5=v4.trim(0,124)+v3+v4.trim(375,0) return v5解说:v1=AviSource(G:SampleAVIs01.avi).ConvertToYUY2.trim(125,374) #以AviSource方式读取影片来源;改变成YUY2颜色环境;截取125到374幅v2=AviSource(G:SampleAVIs08.avi).ConvertToYUY2.LanczosResize(296,160) #以AviSource方式读取影片来源;改变成YUY2颜色环境;改变载入影片的分辨率为296*160v3=Layer(v1,v2,add,255,344,0).ConvertToYV12 #合并两部分视频;加入的视频在右上角,344=640-296,不透明;改变成YV12颜色环境v4=AviSource(G:SampleAVIs01.avi).ConvertToYV12 #以AviSource方式读取影片来源;改变成YV12颜色环境v5=v4.trim(0,124)+v3+v4.trim(375,0) #小视频在第5秒出现到第15秒结束,持续10秒,5*25=125frm,15*25=375frmreturn v5 #返回表达式v5;最后以YV12颜色环境模式输出(2)若要加入2.0声道AC3音频或5.1声道AC3音频的AVI文件,首先要用VirtualDubMod去掉音频部分,分离出纯视频,再用上面的方法;否则会出现错误提示:ACM failed to suggest a compatible PCM format用GSpot查看avi片源:对于加入的是mp3音频的AVI文件则不必去掉音频部分,layer函数合并两部分视频其音频采用前一视频的音频.以上讨论了avi为mp3时的脚本写法,对2.0声道AC3音频或5.1声道AC3音频的avi,可先用VirtualDubMod分离音频a.若保存为ac3文件,脚本:quote: loadplugin(G:SampleAVIAviSynth Filterac3source.dll)v1=AviSource(G:SampleAVIs09.avi,false).converttorgb32.trim(125,374) v2=AviSource(G:SampleAVIs04.avi).converttorgb32 v3=AviSource(G:SampleAVIs05.avi).converttorgb32v2=v2.mask(v3).FadeIO(25)v4=Layer(v1,v2,add,255,0,0)v5=AviSource(G:SampleAVIs09.avi,false).converttorgb32v6=v5.trim(0,124)+v4+v5.trim(375,0) v7=ac3source(G:SampleAVIs11.ac3)audiodub(v6,v7)解说:loadplugin(G:SampleAVIAviSynth Filterac3source.dll) #调用AC3解码滤镜v1=AviSource(G:SampleAVIs09.avi,false).converttorgb32.trim(125,374) #false为取消声音v7=ac3source(G:SampleAVIs11.ac3) #载入分离出的ac3文件audiodub(v6,v7) #合并视频,音频b.若保存为wav文件,脚本:quote: loadplugin(G:SampleAVIAviSynth Filtermpasource.dll)v1=AviSource(G:SampleAVIs09.avi,false).converttorgb32.trim(125,374) v2=AviSource(G:SampleAVIs04.avi).converttorgb32 v3=AviSource(G:SampleAVIs05.avi).converttorgb32v2=v2.mask(v3).FadeIO(25)v4=Layer(v1,v2,add,255,0,0)v5=AviSource(G:SampleAVIs09.avi,false).converttorgb32v6=v5.trim(0,124)+v4+v5.trim(375,0) v7=mpasource(G:SampleAVIs11.wav)audiodub(v6,v7)解说:loadplugin(G:SampleAVIAviSynth Filtermpasource.dll)#调用mp1/2/3解码滤镜v7=mpasource(G:SampleAVIs11.wav)#载入分离出的wav文件或用以下脚本:quote: v1=AviSource(G:SampleAVIs10.avi,false).converttorgb32.trim(125,374) v2=AviSource(G:SampleAVIs04.avi).converttorgb32 v3=AviSource(G:SampleAVIs05.avi).converttorgb32v2=v2.mask(v3).FadeIO(25)v4=Layer(v1,v2,add,255,0,0)v5=AviSource(G:SampleAVIs10.avi,false).converttorgb32v6=v5.trim(0,124)+v4+v5.trim(375,0) v7=DirectShowSource(G:SampleAVIs12.wav)audiodub(v6,v7)解说:v7=DirectShowSource(G:SampleAVIs12.wav)#载入分离出的wav文件滤镜下载:/warpenterprises/补充:RGB/YUV颜色空间:RGB颜色空间中,每种颜色都可以用三个变量来表示 ,为红色、绿色、蓝色的强度YUV颜色空间中,“Y”代表明亮度(Luma);“U”和“V”表示色度(Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色;在YUV颜色空间中,图片是通过复合模式存储的.由于不同颜色空间的存储量不同,因此运算速度也不相同;RGB24最慢,应必避免使用;最快为YV12,其次是YUY2,YV12的数据存储量仅占RGB32的一半;我们可以用ConvertToYV12或ConvertToYUY2将颜色空间转为YV12或YUY2;如果视频源为YV12或YUY2,可以用ConvertToRGB转为RGB32模式;用ConvertToRGB32将RGB24模式转为RGB32模式.AviSynth中不同滤镜的使用有对应的颜色空间. 用VirtualDub的外置滤镜加载静/动态logo的方法下载:Logo.vdf滤镜:/logo14.zip24位BMP动画序列:/earth.zip1.静态logo图片采用以下24位BMP图(链接转为jpg图)脚本:quote: AVISource(G:SampleAVIs01.avi)function StaticLogo(clip,int x, int y, int Alpha, bool transparent, int R, int G, int B, int tolerance, string LogoName, bool Animate, int Start, int Duration, int Loops, int FadeIn, int End, int FadeOut)LoadVirtualdubPlugin(G:SampleAVIVirtualDub filtersLogo.vdf, Logovdf, 1)return clip.Logovdf(default(x,0), default(y,0), default(Alpha,255), default(transparent,false)?1:0, default(R,0), default(G,0), default(B,0), default(tolerance,0), default(LogoName,G:Samplepicsbmp VDMVDM01.bmp), default(Animate,false)?1:0, default(Start,0), default(Duration,0), default(Loops,0), default(FadeIn,0), default(End,0), default(FadeOut,0)converttorgb32()StaticLogo(460,0,255,true,152,115,211,40,G:Samplepicsbmp VDMVDM04.bmp,false,120,0,0,24,360,24)解说:AVISource(G:SampleAVIs01.avi)#以AviSource方式读取影片来源function StaticLogo(.).#定义StaticLogo函数;参数说明:quote: int x,int y:图片的水平,垂直坐标;int Alpha:透明度,相当于AviSynth中Layer滤镜的level参数,取值0-255bool transparent:设置图片的透明通道,true开启,false关闭,开启后,int R,int G,int B以及int tolerance才可用;其作用与AviSynth中colorkeymask滤镜的作用完全相同int R,int G,int B:RGB的十进制数int tolerance:作用与AviSynth中colorkeymask滤镜的tolerance一样,取值0-255string LogoName:图片logo的名称,带上路径bool Animate:设置动态效果;true开启,false关闭int Start:图片出现时影片所在的帧数int Duration:动画序列中每张BMP图显示所用的帧数;最小设为1(对静态图片设为0)int Loops:动画序列循环的次数;若设为0,则表示不受限制,循环次数由显示时间决定int FadeIn:淡入所用帧数int End:图片消失时影片所在的帧数int FadeOut:淡出所用帧数.#设置参数初值LoadVirtualdubPlugin
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 2999-2025耐火材料颗粒体积密度试验方法
- 2025年安全员安全生产操作题库及模拟题
- 2025年英语教师职业等级认证初级考试模拟题与答案详解
- 校园消防安全专题片(3篇)
- 2025年网络安全工程师面试模拟题及面试技巧
- 2025年小学教师安全知识测试题含考核答案
- 2025年安全生产安全管理知识安全趋势题及答案
- 2025届东营市利津县中考冲刺卷数学试题含解析
- 2025年后期制作岗位面试常见问题及答案
- 2025年安全管理竞聘面试常见问题答案
- 危险废物处置服务协议
- 《观光农业概论》课件
- 派出所签订治安调解协议书范文
- 情境领导力培训课件
- DBJ41T 277-2023 装配式钢结构集成楼盖应用技术规程 河南省工程建设标准(住建厅版)
- 飞灰螯合物运输服务方案
- 中建三局社招在线测评题
- 研究生学术表达能力培养智慧树知到答案2024年西安建筑科技大学、清华大学、同济大学、山东大学、河北工程大学、《环境工程》英文版和《环境工程》编辑部
- 玉米种植风险评估与管理
- 2024-2030年中国自动涂胶机行业市场发展趋势与前景展望战略分析报告
- DL∕T 2582.1-2022 水电站公用辅助设备运行规程 第1部分:油系统
评论
0/150
提交评论