使用手冊

Video Cloud 工作流

整合 Live WebRTC signaling、encrypted clip、snapshot、browser 與 playback。

Stored video upload, browser, and playback flow

Live WebRTC signaling

  1. App 透過 RTK SDK 呼叫 HTTPS ICE API。
  2. App 的 platform WebRTC component 建立 SDP offer。
  3. RTK SDK 透過 HTTPS 建立 signaling session。
  4. Cloud 經目前 device owner 的 MQTT 或 WebSocket transport 送出 webrtc_offer;不 fan-out,也不自動 fallback 到非 owner transport。
  5. Device SDK/firmware 接收 offer、連接 camera/audio track 並建立 answer。
  6. Device 經 HTTPS answer API 回覆。
  7. App 經 RTK SDK 取得 answer並完成 media negotiation。
  8. App 或 device 關閉 session;expired、timeout、offline、busy 與 unsupported capability 都必須成為可見 terminal/error state。

Cloud 協調 signaling,但不接收或儲存 Live media frame。Live WebRTC 不會自動形成 Stored Clip。

Encrypted clip upload

完成錄製 MP4 並加密 stored bytes,計算 ciphertext size 與 base64 SHA-256,再建立 encryption descriptor。透過 SDK authorize upload,將所有 signed header 與 encrypted bytes 送到 HTTPS presigned PUT URL,complete 後輪詢到 readyfailedexpired。目前 technical defaults 為 MP4 256 MiB、JPEG 5 MiB、signed URL 10 分鐘、upload lifecycle 30 分鐘;retention 可依 deployment 設定 1/7/30 天,均不是價格或 SLA。

目前不支援 S3 multipart upload,streaming PUT 的 read source 必須產生精確 body_size

Browser、thumbnail、playback 與 delete

Android/iOS listClips 回傳 typed ClipPage,以 skiplimit、filter 與 nextSkip 分頁;empty page 是正常狀態。Thumbnail 必須透過 SDK 下載。Playback session 回傳短效、支援 HTTP range 的 URL,App 交給 Media3/ExoPlayer 或 AVPlayer,過期後 refresh,不可持久保存。Delete 前確認使用者意圖,404 表示 stale/deleted clip。

Snapshot 是獨立 JPEG workflow。Live、recording、stored clip 與 snapshot 必須在 UI 與 operational state 中分開。

Current release boundary

目前版本不包含 server-side transcoding、S3 multipart upload、simulcast negotiation、renegotiation,也不提供完整的 SDK 內建 WebRTC media renderer。

其他手冊章節

繼續閱讀相關手冊章節。

SDK 總覽

選擇 package 並理解支援邊界。

開啟章節

開始使用

安裝 SDK、設定 client 並完成第一次 request。

開啟章節

認證與安全

安全處理 token、PKI、TLS、key 與 media。

開啟章節

生命週期與錯誤

處理 timeout、retry、cancel、callback 與 shutdown。

開啟章節

能力工作流

整合 provisioning、device、telemetry、OTA、command 與 signaling。

開啟章節

Native C/C++ SDK

使用 stable C ABI、C++ wrapper、transport 與 streaming upload。

開啟章節

Android Kotlin SDK

使用 coroutine、signaling、Media3 與 secure key provider。

開啟章節

iOS Swift SDK

使用 async API、signaling、AVPlayer、Keychain 與 Secure Enclave。

開啟章節

JavaScript/TypeScript SDK

在 browser 與 Node.js 整合 typed ESM package。

開啟章節

Go SDK

用 pure Go client 整合 device、tool 與 automation。

開啟章節

FreeRTOS/Pro2 SDK

整合 board、transport、media 與 WebRTC answerer adapter。

開啟章節

Sample applications

正確使用 Android、iOS、Web、Linux 與 Pro2 sample。

開啟章節

除錯與相容性

診斷認證、transport、upload、playback 與版本問題。

開啟章節