mediacoder如何添加水印

来源:百度知道 编辑:UC知道 时间:2024/06/01 05:18:15
朋友和我说要研究下mc中的AviSynth这一项 但是还是不大明白请高人指导

用avs加水印的方法:(条件,必须在rgb模式下)

Logo_A=ImageReader("logo.jpg").ConvertToRGB32 #载入水印的目标图:logo.jpg
Logo_B=ImageReader("logo-mask.jpg").ConvertToRGB32 #载入纯黑色背景,纯白色主体目标的嵌套覆盖图。
#它必须与目标图大小完全相同(分辨率),用来明确alpha图层mask透明色:logo-mask.jpg
Logo_C=Logo_A.mask(Logo_B) #嵌套合成最终的水印图

#全程添加水印:
Video=Trim(Video,0,0).Layer(Logo_C,"add",255,500,400)
#trim:前一个“0”表示图像开头,后一个“0”表示图像结尾;
#Layer:255表示水印主体不透明;500,400表示水印所在视频的x,y坐标位置
#所有avs指令参数详见avs document

#在中间某部分添加水印(假设图像总共1000帧,希望在第123-456帧中添加水印,坐标为(20,20),不透明):
Video1=Trim(Video,0,122)
Video2=Trim(Video,123,456).Layer(Logo_C,"add",255,20,20)
Video3=Trim(Video,457,0)
Video=Video1+Video2+Video3 #三段视频合并

需要注意的是,由于视频必须在rgb模式下添加水印,而通常视频的colorspace为YV12,所以必须先进行转换。如果在添加水印后,继续添加其它滤镜对视频进行处理的话,往往会影响到水印效果。
所以,一般情况都是其它滤镜处理在前,而将水印放在最后添加。则水印部分指令通常这样来操作:

Video=ConvertToRGB(Video)

xxx() #添加水印的相关指令放在这里<