视频添加水印

更新时间:2025-05-29 14:41:09

水印作为视频内容版权保护的有效手段,CDNetworks支持为视频添加可见水印以防止未经授权的使用。我们平台支持四种不同水印类型:

  1. 图片水印:插入静态图片,支持根据视频分辨率变化按比例自适应缩放
  2. 视频水印:嵌入视频片段作为叠加层,适合插入动态Logo或广告
  3. 文本水印:添加文字标注或版权声明
  4. 动态水印:创建可按指定时间间隔或指定时间变换位置的水印

CDNetworks支持多种视频格式和解码方式的水印添加,包括MP4、FLV、M3U8、TS、MKV、MOV、WMV、AVI、VP8、VP9、RealVideo、Windows Media Video、H.265、H.264、H.263、MPEG等。

使用方法

在请求内容中,请按照以下结构设置 fops 参数:

<op>/<Format>
    /wmImage2/<value>
    /wmGravity/<value>
    /wmauto/<value>
    /wmWidth/<value>
    /wmHeight/<value>
    /wmDissolve/<value>
    /wmdx/<value>
    /wmdy/<value>
    /wmInterval/<value>
    /multiConvertTime/<value>
    /wmText/<value>
    /wmFont/<value>
    /wmFontColor/<value>
    /wmFontSize/<value>
    /wmFontDissolve/<value>
    /wmFontBorderWidth/<value>
    /wmFontBorderColor/<value>
    /wmTextGravity/<value>
    /wmtextdx/<value>
    /wmtextdy/<value>
    /wmTextInterval/<value>
    /wmFontBold/<value>
    |saveas/<Urlsafe_Base64_Encode(bucket:filekey)>

通用参数

参数 必填 说明
op 操作类型。水印操作使用avthumb
format 输出的目标格式(flv, mp4, m3u8等)
saveas 输出位置,使用URL安全Base64编码格式:Urlsafe_Base64_Encode(bucket:savedfilename)

图片/视频水印参数

参数 必填 说明
wmImage2 用作水印的图片/视频

格式:使用URL安全Base64编码<bucket>:<path>
示例:test:1.jpgdGVzdDoxLmpwZw==

多个水印:使用逗号分隔
示例:Url-Safe-Base64-Encode(test:1.jpg),Url-Safe-Base64-Encode(test:2.jpg)

提示:视频水印建议使用较短视频片段以确保与主视频同步。
wmGravity 水印放置位置(参见水印位置(wmGravity)参数表

提示:品牌标识建议使用BOTTOM_RIGHT减少视觉干扰。
wmauto 水印自适应缩放:
1 - 水印尺寸根据视频分辨率等比缩放
0(默认)- 保持水印原始尺寸

示例:如果1200×600的原视频中水印为40×40,当视频转码为300×200时,启用wmauto/1的情况下,水印尺寸自动缩放为10×10

提示:当视频可能在不同设备尺寸上播放时,应启用 wmauto/1 的自适应缩放功能。
wmWidth 水印宽度(像素或百分比):
• 绝对值:wmWidth/40表示40像素的宽度
• 百分比:wmWidth/50%表示视频宽度的一半
• 值≤0时:按宽高比例自适应宽度

提示:相比于固定像素值,使用百分比可确保在不同视频分辨率下实现适当的缩放。
wmHeight 水印高度(像素或百分比):
• 绝对值:wmHeight/60表示60像素的高度
• 百分比:wmHeight/20%表示视频高度的五分之一
• 值≤0时:按宽高比例自适应高度

wmWidthwmHeight的值均≤ 0时, 采用原始水印大小。

提示:对于logo水印,通常10-15%的视频高度可以提供良好的可视性且不会显得突兀。
wmDissolve 水印透明度(1-100):
100 - 完全不透明(默认)
1 - 接近透明
• 超出范围的值将自动调整

提示:值于70-85区间保持可见性同时最小化对主要内容的干扰。
wmdx 相对于wmGravity位置的水平偏移量:
• 正值:右移
• 负值:左移

使用时需与wmGravity参数数量匹配

提示:将水印从画面角落略微偏移(10-20 像素),既能提升美观性,又能避免在某些显示设备上被裁剪。
wmdy 相对于wmGravity位置的垂直偏移量:
• 正值:上移
• 负值:下移

使用时需与wmGravity参数数量匹配

提示:与wmdx类似,小幅度的垂直偏移量可优化水印布局与可视性。
wmInterval 水印位置变化间隔(秒)

提示:针对防止未授权录屏的动态水印,设置15-30秒的变化间隔效果最佳。
multiConvertTime 指定水印变化的时间戳,即开始发生水印变换的视频文件时间,使用逗号分隔
示例:5,10,20表示在5/10/20秒时变化水印

不能与 wmInterval参数一起使用

提示:将时间戳变化与视频场景切换同步,可减少水印移动对画面的干扰。

文本水印参数

参数 必填 说明
wmText 水印文本内容,采用URL安全Base64编码

多文本:逗号分隔编码值
示例: Url-Safe-Base64-Encode(text1),Url-Safe-Base64-Encode(text2)
注意:简体中文必须使用UTF-8编码防止显示错误

提示:文字水印应简短清晰,推荐使用公司名称、网址或版权声明,效果更佳。
wmFont 文字水印字体名称,采用URL安全Base64编码
允许字符:字母数字、空格、连字符

多种字体:编码前用逗号分隔,
格式:< Urlsafe_Base64_Encode (< Font1 >、< Font2 >…)>

提示:完整支持的字体列表请参阅​​支持的字体表​​。无衬线字体通常能为水印提供更好的可读性。
wmFontColor RGB格式下的文字颜色,采用URL安全Base64编码
格式:0xrrggbb&Hrrggbb(前缀可省略)

多种颜色:编码前用逗号分隔
格式:< Urlsafe_Base64_Encode (< Color1 >、< Color2 >…)>

提示:白色(0xFFFFFF)或浅黄色(0xFFFF00)在深色背景上更显眼,添加对比色边框可提升可读性。
wmFontSize 字体大小(像素或百分比):
• 像素值:绝对高度(范围:5-2160)
• 百分比:相对视频高度的比例(范围:>0%-100%)
• 默认值:6%

提示:对大多数视频,设置为视频高度的5-8%既能保证可读性,又不会喧宾夺主。
wmFontDissolve 文字透明度(1-100):
100 - 完全不透明(默认)
1 - 几乎全透明
• 超出范围的数值会自动调整

提示:与图片水印透明度原则相同,通常70-85效果最佳。
wmFontBorderWidth 文字描边宽度:
• 值 ≤ 0:无描边(默认)
• 值 > 0:描边厚度(像素)

提示:添加1-2像素描边可显著提升文字可读性,尤其在复杂背景上。
wmFontBorderColor 文字描边颜色,需进行URL安全Base64编码
格式:同wmFontColor
默认值:0x000000(黑色)

提示:白色文字搭配黑色描边可在各种背景上实现最佳可读性。
wmTextGravity 文字水印位置(格式同wmGravity

对于动态文字水印,可用逗号分隔多个位置

提示:文字水印通常置于画面底部效果最佳,既不易遮挡重要内容,又符合视觉习惯。
wmtextdx 文字相对wmGravity位置的水平偏移量
规则同wmdx

提示:建议从画面边缘向内小幅度偏移(10-20像素),避免在某些设备上被裁切。
wmtextdy 文字相对wmGravity位置的垂直偏移量
规则同wmdy

提示:当置于画面底部时,建议添加小幅度正向偏移,避免文字紧贴下边缘。
wmTextInterval 文字水印变化的时间间隔,单位:秒。
需≥1秒

提示:对于需要变换位置的版权声明,20-30秒的间隔比频繁移动更不易干扰观看体验。
wmFontBold 文字加粗设置:
1 - 加粗
0 - 正常(默认)

提示:加粗文字可提升小字号或复杂背景下的可读性。

水印位置(wmGravity)参数表

参数 说明
TOP_LEFT 左上角
TOP_CENTER 顶部居中
TOP_RIGHT 右上角
CENTER_LEFT 左侧居中
CENTER 画面中心
CENTER_RIGHT 右侧居中
BOTTOM_LEFT 左下角
BOTTOM_CENTER 底部居中
BOTTOM_RIGHT 右下角

示例

示例1:动态图片水印

该示例将演示为test.mp4添加图片水印:

  • 水印图片:存储空间vod-wcs-test001中的watermark.jpg
  • 初始位置位于左上角
  • 5秒后移至右上角,向左偏20像素
  • 5秒后回到左上角
  • 水印尺寸:视频尺寸的20%

伪代码:

curl -v -X POST 
–d "bucket=Urlsafe_Base64_Encode(vod-wcs-test001)&key=Urlsafe_Base64_Encode(test.mp4)&fops=Urlsafe_Base64_Encode(avthumb/mp4/wmImage2/Urlsafe_Base64_Encode(vod-wcs-test001:watermark.jpg) /wmGravity/TOP_LEFT,TOP_RIGHT/wmInterval/5/wmdx/0,-20/wmdy/0,0/wmWidth/20%/wmHeight/20%|saveas/Urlsafe_Base64_Encode(vod-wcs-test001:test_watermark.mp4))&force=1&separate=1" 
–H "Authorization:AccessKey:EncodeSign" 
--url "http://mgrDomain/fops"

实际请求:

curl -v -X POST 
-d "bucket=dm9kLXdjcy10ZXN0MDAx&key=dGVzdC5tcDQ=&fops=YXZ0aHVtYi9tcDQvd21JbWFnZTIvZG05a0xYZGpjeTEwWlhOME1EQXhPbmRoZEdWeWJXRnlheTVxY0djPS93bUdyYXZpdHkvVE9QX0xFRlQsVE9QX1JJR0hUL3dtSW50ZXJ2YWwvNS93bWR4LzAsLTIwL3dtZHkvMCwwL3dtV2lkdGgvMjAlL3dtSGVpZ2h0LzIwJXxzYXZlYXMvZG05a0xYZGpjeTEwWlhOME1EQXhPblJsYzNSZmQyRjBaWEp0WVhKckxtMXdOQT09&force=1&separate=1"
-H "Authorization:AccessKey:EncodeSign" 
--url "http://mgrDomain/fops"

示例2:视频水印

该示例将演示为test.mp4添加视频水印:

  • 水印视频:vod-wcs-test001中的watermark.mp4
  • 位于左上角
  • 水印尺寸:主视频尺寸的20%

伪代码:

curl -v -X POST 
–d "bucket=Urlsafe_Base64_Encode(vod-wcs-test001)&key=Urlsafe_Base64_Encode(test.mp4)&fops=Urlsafe_Base64_Encode(avthumb/mp4/wmImage2/Urlsafe_Base64_Encode(vod-wcs-test001:watermark.mp4)/wmGravity/TOP_LEFT/wmWidth/20%/wmHeight/20%|saveas/Urlsafe_Base64_Encode(vod-wcs-test001:test_video.mp4))&force=1&separate=1"
–H "Authorization:AccessKey:EncodeSign" 
--url "http://mgrDomain/fops"

实际请求:

curl -v -X POST 
-d "bucket=dm9kLXdjcy10ZXN0MDAx&key=dGVzdC5tcDQ=&fops=YXZ0aHVtYi9tcDQvd21JbWFnZTIvZG05a0xYZGpjeTEwWlhOME1EQXhPbmRoZEdWeWJXRnlheTV0Y0RRPS93bUdyYXZpdHkvVE9QX0xFRlQvd21XaWR0aC8yMCUvd21IZWlnaHQvMjAlfHNhdmVhcy9kbTlrTFhkamN5MTBaWE4wTURBeE9uUmxjM1JmZG1sa1pXOHViWEEw&force=1&separate=1"
-H "Authorization:AccessKey:EncodeSign" 
--url "http://mgrDomain/fops"

示例3:文本水印

该示例将演示为test.mp4添加文字水印:

  • 文本内容:“CDNetworks”
  • 字体:“Arial Unicode MS”
  • 位于左上角

伪代码:

curl -v -X POST 
–d "bucket=Urlsafe_Base64_Encode(vod-wcs-test001)&key=Urlsafe_Base64_Encode(test.mp4)&fops=Urlsafe_Base64_Encode(avthumb/mp4/wmText/Urlsafe_Base64_Encode(CDNetworks)/wmFont/Urlsafe_Base64_Encode(Arial Unicode MS)/wmTextGravity/TOP_LEFT|saveas/Urlsafe_Base64_Encode(vod-wcs-test001:test_file.mp4))&force=1&separate=1" 
–H "Authorization:AccessKey:EncodeSign" 
--url "http://mgrDomain/fops"

实际请求:

curl -v -X POST 
-d "bucket=dm9kLXdjcy10ZXN0MDAx&key=dGVzdC5tcDQ=&fops=YXZ0aHVtYi9tcDQvd21UZXh0L0ppTjROMFkxTVRzbUkzZzFRa0pHT3lZamVEYzVSREU3SmlONE5qSTRNRHNnSmlONE56QkNPVHNtSTNnMk5FRkVPeVlqZURVeVFUQTdKaU40T1RBeFJqcz0vd21Gb250L1FYSnBZV3dnVlc1cFkyOWtaU0JOVXc9PS93bVRleHRHcmF2aXR5L1RPUF9MRUZUfHNhdmVhcy9kbTlrTFhkamN5MTBaWE4wTURBeE9uUmxjM1JmWm1sc1pTNXRjRFE9&force=1&separate=1"
-H "Authorization:AccessKey:EncodeSign" 
--url "http://mgrDomain/fops"

支持字体表

字体系列 字体变体
Noto Sans CJK SC Noto Sans CJK SC 常规体
Noto Sans CJK SC 特粗体
Noto Sans CJK SC 粗体
Noto Sans CJK SC 半细体
Noto Sans CJK SC 细体
Noto Sans CJK SC 中等体
Noto Sans CJK SC 极细体
Noto Sans Mono CJK SC Noto Sans Mono CJK SC 常规体
Noto Sans Mono CJK SC 粗体
Noto Serif CJK SC Noto Serif CJK SC 常规体
Noto Serif CJK SC 特粗体
Noto Serif CJK SC 超细体
Noto Serif CJK SC 细体
Noto Serif CJK SC 中等体
Noto Serif CJK SC 半粗体
Roboto Roboto 常规体
Roboto 紧缩体
Roboto 紧缩细体
Roboto 特粗体
Roboto 细体
Roboto 中等体
Roboto 极细体
文泉驿 文泉驿等宽正黑
文泉驿点阵正黑
文泉驿正黑
本篇文档内容对您是否有帮助?
有帮助
我要反馈
提交成功!非常感谢您的反馈,我们会继续努力做到更好!