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

AWS Elastic Transcoder添加水印失败问题求助

水印不生效问题排查与解决思路

我来帮你捋捋这个水印失效的问题,结合你提供的代码和场景,大概率是这几个环节出了问题,你可以逐一排查:

1. 确认PresetWatermarkId的合法性

你代码里用的TopLeft是不是转码平台提供的合法预设水印位置ID?不同云服务商的预设ID规则不一样,有的可能是带偏移参数的格式(比如TopLeft_10表示左上角偏移10像素),或者你是不是混淆了「预设水印」和「自定义水印」的参数?如果是自定义位置,可能需要改用HorizontalOffset和VerticalOffset来指定位置,而不是用PresetWatermarkId。

2. 核对InputKey的路径准确性

虽然你说把overlay.png放在了根目录或输入/输出文件夹,但要确认代码里的InputKey值和存储桶里的文件路径完全匹配:

  • 如果文件在根目录,InputKey就是"overlay.png"
  • 如果在input/文件夹下,就得写"input/overlay.png"
    另外注意存储桶通常是区分大小写的,文件名的大小写要完全一致。

3. 检查水印文件的状态与权限

  • 先确认overlay.png是完好的PNG文件,没有损坏(可以本地打开验证)
  • 转码服务对应的IAM角色有没有读取该存储桶文件的权限?很多云服务商需要给转码角色配置存储桶的GetObject权限,不然就算路径对了,服务也读不到水印文件,自然无法叠加。

4. 验证转码预设的配置

你在Outputs里使用的转码预设,是不是开启了允许叠加水印的功能?有些预设默认是关闭水印支持的,需要在预设配置里手动开启“允许水印叠加”的选项。

附你提供的代码格式化版本:

$watermark = array(
    'InputKey' => "overlay.png",
    'PresetWatermarkId' => 'TopLeft'
);

# Create the job.
$create_job_request = array(
    'PipelineId' => $pipeline_id,
    'Input' => $input,
    'Watermarks' => array($watermark),
    'Outputs' => $outputs,
    'OutputKeyPrefix' => "$output_key_prefix"
);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:11:40