Thêm watermark vào video hoặc ảnh — API cho overlay logo và text.
Overlay logo hoặc text lên bất kỳ video hay ảnh nào chỉ với một lệnh POST. Thiết lập position, opacity và scale ngay trong request; file đã host trên Fotovid trả về, sẵn sàng phục vụ ngay.
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
}
}'Vì sao watermark trên serverless lại khó nhằn
Watermark trông có vẻ đơn giản cho đến khi Bạn thử chạy nó trong một hàm serverless. Filter overlay của ffmpeg cần cả binary đầy đủ cộng với logo được lưu trên ổ đĩa có quyền ghi, sau đó nó decode rồi re-encode toàn bộ file — việc này thường xuyên vượt giới hạn thời gian thực thi và bộ nhớ của Lambda và Vercel với bất kỳ đoạn nào dài hơn một clip ngắn. Cuối cùng Bạn phải lo quản lý layer bundle, temp storage và cold start chỉ để dán một logo vào góc màn hình.
- Binary và thư viện của ffmpeg khiến gói deploy phình to vượt xa giới hạn dung lượng thông thường của serverless
- Re-encode một video đầy đủ dễ vượt giới hạn timeout và bộ nhớ của hàm
- Overlay một ảnh nghĩa là phải fetch, lưu tạm và dọn dẹp file trên ổ đĩa tạm thời
- Căn chỉnh position, opacity và scale chính xác đến từng pixel trên nhiều độ phân giải là công việc filter-graph rất tỉ mỉ
Tham số của request
POST /v1/video/watermark & /v1/image/watermark
| Field | Type | Default | Description |
|---|---|---|---|
| source_url* | string (URL) | — | URL HTTPS của video hoặc ảnh nguồn |
| params.type | "image" | "text" | "combo" | "text" | Loại watermark |
| params.watermark_image_url | string (URL) | — | URL ảnh logo (bắt buộc với image/combo) |
| params.text | string | — | Nội dung text overlay (bắt buộc với text/combo) |
| params.position | string | "bottom-right" | top-left · top-right · bottom-left · bottom-right · center |
| params.opacity | number | 1 | 0–1 |
| params.scale | number | 0.15 | Chiều rộng watermark tính theo tỷ lệ so với nguồn (0–1) |
Lệnh gọi đầu tiên của Bạn chỉ trong ba bước
- 1Lấy một API key miễn phí
Đăng ký và tạo một key. Bạn xác thực mọi request bằng header Authorization: Bearer p6_<key_id>:<secret>. Không cần thẻ để bắt đầu — usage tính bằng credits ($1 = 100 credits, và một lần watermark tốn 1 credit).
- 2POST nguồn và các tham số watermark
Gọi POST /v1/video/watermark hoặc POST /v1/image/watermark với envelope chuẩn: một source_url trỏ đến input của Bạn (một URL https), cộng với một object params. Đặt type là image, text hoặc combo, sau đó truyền watermark_image_url và/hoặc text, cùng với position (top-left, top-right, bottom-left, bottom-right hoặc center), opacity (0–1), scale (0–1, mặc định 0.15) và padding. Fotovid tải input xuống, overlay watermark rồi trả kết quả về đồng bộ.
- 3Lưu lại URL kết quả trả về
Response là JSON phẳng gồm id, type và một URL đã host trên Fotovid cho file đã được watermark (response cho video còn có thêm duration). Hãy tải về và lưu bản sao của riêng Bạn — coi URL đã host như một điểm bàn giao chứ không phải nơi lưu trữ vĩnh viễn, vì nó sẽ hết hạn.
Câu hỏi thường gặp
Triển khai chỉ với một lệnh gọi API
Lấy một key miễn phí và thực hiện lệnh gọi đầu tiên trong chưa đầy năm phút.
