浮水印操作

為影片或圖片加上浮水印——專門處理 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 呼叫就能上線

拿一把免費金鑰,五分鐘內完成你的第一次呼叫。