影片操作

剪裁影片,輸出影格精準的片段,不必打包 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

FieldTypeDefaultDescription
source_url*string (URL)來源影片的 HTTPS URL
params.start*string | number"HH:MM:SS(.mmm)" 或秒數(例如 5.5)
params.end*string | number必須大於 start;超過檔案結尾(EOF)會自動截斷
How it works

三個步驟完成第一次呼叫

  1. 1
    取得免費 API 金鑰

    註冊後在儀表板建立金鑰。驗證方式是送出 Authorization: Bearer p6_<key_id>:<secret> 標頭。每個新帳號一開始都有免費的用量 credits,$1 可買 100 credits——每呼叫一次剪裁只扣 1 credit。

  2. 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. 3
    使用回傳的片段 URL

    回應是扁平的 JSON,含有 id、type、指向剪裁後 MP4 的 fotovid 託管 url、一個 expires_at,以及片段長度。把檔案下載下來、保留一份自己的副本,這樣檔案放在哪裡由你決定——接著就能直接對外提供、當成附件送出,或交給工作流程的下一個步驟。

常見問題

一次 API 呼叫就能上線

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