剪裁影片,輸出影格精準的片段,不必打包 ffmpeg。
剪裁影片,讓片段正好停在你指定的那一影格——關鍵影格交給 Fotovid 處理,前後邊界都乾淨俐落。這個隨插即用的 ffmpeg 微服務會直接給你一個託管的 MP4 URL。
curl -X POST https://api.fotovid.co/v1/video/trim \
-H "Authorization: Bearer p6_YOUR_KEY_ID:YOUR_SECRET" \
-H "Content-Type: application/json" \
-d '{
"source_url": "https://cdn.yoursite.com/recording.mp4",
"params": {
"start": "00:00:05",
"end": "00:00:20"
}
}'在 serverless 上剪裁影片,比想像中麻煩
剪一段片子聽起來就是一行 ffmpeg 指令,但要在 Vercel、Lambda 或 Workers 上跑這行指令,代表你得隨程式部署一個 70MB 以上的靜態二進位檔,跟冷啟動和記憶體上限纏鬥,還要把輸入串流進來、再把輸出送到某個能長久存放的地方。影格精準的剪裁一定得重新編碼,CPU 用量和執行時間會直接超出多數 serverless 函式的容許範圍。到頭來,你維護的是一整套跟自家產品毫無關係的基礎設施。
- ffmpeg 二進位檔遠遠超出 serverless 的打包體積與記憶體上限
- 影格精準的剪裁必須重新編碼——這種又慢又吃 CPU 的工作,函式常常還沒做完就逾時
- 你還是得自己處理輸入檔的下載,以及成品片段的存放與託管
- 當你需要乾淨的精華片段、社群短片或簡短的預覽片段,又不想自己養一條媒體處理管線時,就用這個端點
請求參數
POST /v1/video/trim
| Field | Type | Default | Description |
|---|---|---|---|
| source_url* | string (URL) | — | 來源影片的 HTTPS URL |
| params.start* | string | number | — | "HH:MM:SS(.mmm)" 或秒數(例如 5.5) |
| params.end* | string | number | — | 必須大於 start;超過檔案結尾(EOF)會自動截斷 |
三個步驟完成第一次呼叫
- 1取得免費 API 金鑰
註冊後在儀表板建立金鑰。驗證方式是送出 Authorization: Bearer p6_<key_id>:<secret> 標頭。每個新帳號一開始都有免費的用量 credits,$1 可買 100 credits——每呼叫一次剪裁只扣 1 credit。
- 2呼叫 POST /v1/video/trim
向 https://api.fotovid.co/v1/video/trim 送出請求,JSON 主體包含 source_url(輸入影片的 HTTPS URL),以及一個帶有 start 和 end 的 params 物件。兩者都接受 HH:MM:SS.mmm 時間戳或單純的秒數;剪裁會在半開區間 [start, end) 上做到影格精準,並以 x264 重新編碼為 MP4。
- 3使用回傳的片段 URL
回應是扁平的 JSON,含有 id、type、指向剪裁後 MP4 的 fotovid 託管 url、一個 expires_at,以及片段長度。把檔案下載下來、保留一份自己的副本,這樣檔案放在哪裡由你決定——接著就能直接對外提供、當成附件送出,或交給工作流程的下一個步驟。
