You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Media Services v3 Overlay水印位置、透明度失效问题咨询

AMS v3 图像水印定位与透明度失效的修复指南

核心失效原因

  • AMS v3 的 Rectangle 位置参数校验为静默容错模式,不匹配格式要求的取值不会抛出运行时错误,只会被直接丢弃并回退到默认锚点位置。

    你之前传入的 Left = "100"、Top = "100" 这类无单位纯数字字符串,不符合AMS要求的参数格式,被编码引擎识别无效后直接忽略,最终水印按默认逻辑展示在角落位置,透明度参数也会因为Overlay配置未被正确解析一同失效。

  • AMS的坐标锚点逻辑为:未主动指定相对右/下边缘的偏移时,永远以视频左上角为坐标原点。要放置在右下角,必须显式配置相对右、下边缘的偏移值,无法仅通过左上角偏移计算得到右下角位置。
  • 透明度参数生效有前提:叠加的水印图片必须自带Alpha透明通道,使用无透明通道的JPG格式素材时,即使设置Opacity=0.5也不会产生半透明效果。

正确的右下角水印配置示例

替换原有Overlay代码段即可,无需修改编码层、格式的其他配置:

filters: new AMSModels.Filters
{
    Overlays = new List<AMSModels.Overlay>
    {
        new AMSModels.VideoOverlay()
        {
            // 需和Job输入资产中水印文件对应的Label完全一致
            InputLabel = "tbvvideooverlay",
            // 透明度取值范围0-1,0为全透明,1为完全不透明
            Opacity = 0.5,
            Position = new AMSModels.Rectangle()
            {
                // 右下角定位:距离视频右边缘2%、距离下边缘2%的位置
                Right = "2%",
                Bottom = "2%",
                // 水印尺寸:宽度占视频总宽度的10%,高度按原图比例自适应
                Width = "10%"
                // 注意:禁止同时配置Left与Right、Top与Bottom,否则参数会冲突失效
            }
        }
    }
}

避坑细节

  • 确认Job提交时,InputLabel对应的水印文件已经正确关联到Job的输入资产,否则整个Overlay配置会被整体跳过,无任何报错。
  • Rectangle参数仅支持两类合法取值格式,传值时必须带对应后缀:
    • 绝对像素值:格式为"数值px",例如"120px"
    • 相对视频尺寸的百分比值:格式为"数值%",例如"10%"
  • 采用百分比配置的水印位置,编码引擎会自动适配所有H264输出层的分辨率,无需针对每个码率层单独计算偏移量。
  • 测试阶段优先使用带透明背景的PNG格式水印素材,排除素材本身不支持透明的干扰因素。

内容的提问来源于stack exchange,提问作者Eric Elliston

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.28 09:54:03