水印操作

为视频或图片添加水印——叠加 Logo 与文字的 API。

一次 POST,就能在任意视频或图片上叠加 Logo 图片或文字。位置、不透明度和缩放比例直接写在请求里,返回的是 Fotovid 托管的文件,拿到就能直接对外提供。

curl -X POST https://api.fotovid.co/v1/video/watermark \
  -H "Authorization: Bearer p6_YOUR_KEY_ID:YOUR_SECRET" \
  -H "Content-Type: application/json" \
  -d '{
    "source_url": "https://cdn.yoursite.com/clip.mp4",
    "params": {
      "type": "image",
      "watermark_image_url": "https://cdn.yoursite.com/logo.png",
      "position": "bottom-right",
      "opacity": 0.7,
      "scale": 0.2
    }
  }'

为什么在 serverless 上加水印这么痛苦

加水印看起来是小事一桩,直到你真的要把它跑在 serverless 函数里。ffmpeg 的 overlay 滤镜需要完整的二进制,还要把你的 Logo 先落到可写磁盘上,然后它会把整个文件解码再重新编码——只要素材比短片段长一点,这个过程就会轻松冲破 Lambda 和 Vercel 的执行时长与内存上限。到头来,只是为了在角落盖一个 Logo,你却得去伺候 Layer 打包、临时存储和冷启动。

  • ffmpeg 二进制和依赖库会让你的部署体积远远超出 serverless 常见的大小上限
  • 对完整时长的视频重新编码,会撑爆函数的超时时间和内存
  • 叠加图片意味着要在临时磁盘上下载、暂存并清理文件
  • 要让位置、不透明度和缩放在各种分辨率下都精确到像素,是一堆琐碎的 filter graph 调参活儿

请求参数

POST /v1/video/watermark & /v1/image/watermark

FieldTypeDefaultDescription
source_url*string (URL)源视频或图片的 HTTPS URL
params.type"image" | "text" | "combo""text"水印类型
params.watermark_image_urlstring (URL)Logo 图片 URL(image/combo 时必填)
params.textstring叠加的文字(text/combo 时必填)
params.positionstring"bottom-right"top-left · top-right · bottom-left · bottom-right · center
params.opacitynumber10–1
params.scalenumber0.15水印宽度相对源文件的比例(0–1)
How it works

三步完成第一次调用

  1. 1
    领取免费 API 密钥

    注册并创建一个密钥。每个请求都用 Authorization: Bearer p6_<key_id>:<secret> 请求头做鉴权。起步无需绑卡——用量按 credits 计费($1 = 100 credits,一次水印调用消耗 1 credit)。

  2. 2
    POST 你的源文件和水印参数

    按标准请求格式调用 POST /v1/video/watermark 或 POST /v1/image/watermark:一个指向输入文件的 source_url(https URL),外加一个 params 对象。把 type 设为 image、text 或 combo,然后传 watermark_image_url 和/或 text,再配上 position(top-left、top-right、bottom-left、bottom-right 或 center)、opacity(0–1)、scale(0–1,默认 0.15)和 padding。Fotovid 会下载输入文件、叠加水印,并同步返回结果。

  3. 3
    保存返回的结果 URL

    响应是扁平的 JSON,包含 id、type,以及指向水印文件的 Fotovid 托管 url(视频响应还会带上 duration)。把它下载下来、存一份自己的副本——托管 URL 会过期,只应作为一次性中转,而不是永久存储。

常见问题

一次 API 调用即可上线

领一个免费密钥,五分钟内完成你的第一次调用。