- Amazon Kinesis›
- 影片串流›
- 常見問答集
Amazon Kinesis Video Streams 常見問答集
一般問題
什麼是 Amazon Kinesis Video Streams?
Amazon Kinesis Video Streams 可讓您安全輕鬆地將媒體從連線裝置串流到 AWS,以進行儲存、分析、機器學習 (ML)、播放及其他處理。Kinesis Video Streams 可自動佈建和彈性地擴展所需的全部基礎設施,以便從數百萬台裝置導入串流媒體。此外,還能長期存放及加密串流媒體並編製索引,方便您透過容易使用的 API 存取媒體。Kinesis Video Streams 透過與 Amazon Rekognition Video、Amazon SageMaker整合和 ML 架構程式庫 (如 Apache MxNet、TensorFlow、OpenCV 等),讓您快速建立電腦視覺和 ML 應用程式。對於即時和隨選播放,Kinesis Video Streams 為 HTTP 即時串流 (HLS) 和經由 HTTP 的動態調整串流 (DASH) 提供全受管的功能。Kinesis Video Streams 還透過 WebRTC 支援超低延遲的雙向媒體串流,這是一項全受管的功能。
什麼是時間編碼資料?
時間編碼資料是指其記錄會按時間序列排列的任何資料,每一筆記錄都與其上一筆記錄和下一筆記錄有關。影片是時間編碼資料的一個例子,在空間轉換時,每一個畫面會與前一個和下一個畫面有關。時間編碼資料的其他例子包括音訊、RADAR 和 LIDAR 信號。Amazon Kinesis Video Streams 專門針對分析和 ML 使用案例的各種時間編碼資料提供經濟實惠且有效地導入和儲存。
Kinesis Video Streams 有哪些常用案例?
Kinesis Video Streams 非常適合為啟用攝影機的 IoT 裝置建置媒體串流應用程式,以及建置即時電腦視覺支援的 ML 應用程式,這些應用程式在諸如以下的廣泛使用案例中得到越來越普遍的運用:
智慧家居
使用 Kinesis Video Streams 可輕鬆將配備攝影機的家用裝置視訊和音訊串流到 AWS,像是嬰兒監視器、網路攝影機及住家監視系統等。然後,您可以使用串流建立各種智慧住家應用程式,範圍包括簡單的媒體播放到智慧照明、氣候控制系統以及安全解決方案等。
智慧城市
許多城市都已在交通號誌、停車場、購物商場,以及幾乎每個公共場所設置大量的攝影機,全年無休地擷取影片。您可以使用 Kinesis Video Streams 以安全且符合成本效益的方式擷取、存放、播放及分析這些龐大的媒體資料,以協助解決交通問題、防治犯罪、派遣緊急救難人員等等。
工業自動化
您可以使用 Kinesis Video Streams 收集各種時間編碼資料,像是 RADAR 和 LIDAR 信號、溫度曲線及工業設備的深度資料。然後,您可以針對預測性維護等工業自動化使用案例使用最愛的機器學習架構 (包括 Apache MxNet、TensorFlow 和 OpenCV 等) 分析資料。例如,您可以預測墊圈或閥門的壽命,然後預先排定更換零件的時間,以降低生產線的停機時間和瑕疵。
Amazon Kinesis Video Streams 可代我管理哪些項目?
Amazon Kinesis Video Streams 是一項用於媒體擷取、儲存和處理的全受管服務。該服務可讓支援機器人、智慧城市、工業自動化、安全監控、機器學習 (ML) 等功能的應用程式,以安全的方式大規模擷取、處理和存放影片。Kinesis Video Streams 還可以擷取其他類型的時間編碼資料,例如音訊、RADAR 和 LIDAR 信號。您可以在裝置上安裝 Kinesis Video Streams 提供的軟體開發套件,輕鬆安全地將媒體串流到 AWS。Kinesis Video Streams 可自動佈建和彈性地擴展所需的全部基礎設施,以便從數百萬台裝置擷取媒體串流。此外,還可持久地存放和加密媒體串流及編製索引,並提供簡單好用的 API,讓應用程式能夠根據標籤與時間戳記擷取和處理經過索引編目的媒體片段。Kinesis Video Streams 提供的程式庫可用來整合 ML 架構 (例如 Apache MxNet、TensorFlow 與 OpenCV) 與影片串流,以建立機器學習應用程式。Kinesis Video Streams 整合了 Amazon Rekognition Video,可讓您建置能偵測物體、事件和人物的電腦視覺應用程式。
主要概念
什麼是影片串流?
影片串流是可讓您擷取即時影片和其他時間編碼資料的資源,您可視需要存放影片串流,並以批次或臨機操作的方式將資料提供即時運用。當您選擇將資料存放在影片串流時,Kinesis Video Streams 會加密資料,並對存放的資料產生以時間為基礎的索引。在一般組態中,Kinesis 影片串流只有一個生產者將資料發布到其中。Kinesis 影片串流可以有多個處理影片串流內容的消費應用程式。
什麼是片段?
片段是一系列內容完整的媒體畫格。屬於片段的畫格不得與其他片段的任何畫格存在相依性。當片段送達,Kinesis Video Streams 會以遞增順序指派唯一的片段編號,同時將每個片段的生產者端和伺服器端時間戳記保存為 Kinesis Video Streams 專用中繼資料。
什麼是生產者?
生產者一詞泛指將資料放入 Kinesis 影片串流的裝置或來源。生產者可以是任何產生影片的裝置,例如安全監控攝影機、穿戴式攝影機、智慧型手機相機,或行車記錄器。生產者也可以傳送非影片的時間編碼資料,如音訊摘要、影像或 RADAR 資料。一個生產者可以產生一或多個影片串流。例如,一台攝影機可以將影片資料推送至一個 Kinesis 影片串流,而將音訊資料推送至另一個影片串流。
什麼是取用者?
取用者是您的自訂應用程式,可即時取用和處理 Kinesis 影片串流中的資料,也可等到資料長久存放並建立時間索引後,在不需要低延遲處理時再進行。您可以建立這些取用者應用程式,以便在 Amazon EC2 執行個體上執行。您也可以使用其他 Amazon AI 服務 (如 Amazon Rekognition) 或第三方影片分析供應商來處理您的影片串流。
什麼是區塊?
Kinesis Video Streams 從生產者收到資料時,會將內送的媒體資料保存為區塊。每個區塊都是由實際的媒體片段、生產者傳送的媒體中繼資料副本、Kinesis Video Streams 專用的中繼資料 (如片段編號),以及伺服器端和生產者端的時間戳記所組成。取用者透過 GetMedia API 操作請求媒體資料時,Kinesis Video Streams 會傳回區塊串流 (從您在請求中指定的片段編號開始)。
如何看待 Amazon Kinesis Video Streams 中的延遲?
端對端媒體資料流中的延遲有四個主要因素。
- 花在裝置的硬體媒體管道的時間:這個管道包括影像感應器和任何適當的硬體編碼器。理論上這時間最少可到單一畫格持續時間,但實際上很難做到。所有編碼器都會累積多個畫格來建構片段,以便有效地進行媒體編碼 (壓縮)。這個程序和任何對應的動作補償演算法會在資料完成封裝以便傳輸前,在裝置上增加一秒到數秒的延遲。
- 在網際網路實際傳輸資料所產生的延遲:根據生產裝置的所在位置,網路傳輸量的品質和延遲可能會有明顯差異。
- Kinesis Video Streams 在從生產者裝置接收資料時增加的延遲:傳入資料可立即透過 GetMedia API 操作供任何消費應用程式使用。如果您選擇保留資料,則 Kinesis Video Streams 會使用 AWS Key Management Service (AWS KMS) 加密該資料,並對影片串流中的個別片段產生以時間為基礎的索引。當您使用 GetMediaforFragmentList API 存取這項保留的資料時,Kinesis Video Streams 會從耐久儲存擷取片段、解密資料,再將資料提供給消費應用程式使用。
- 將資料傳回給取用者時的時間延遲:網際網路或其他 AWS 區域上可能有消費裝置請求媒體資料。根據消費裝置的所在位置,網路傳輸量的品質和延遲可能會有明顯差異。
將資料發布到串流
如何將資料發布到 Kinesis 影片串流?
您可以透過 PutMedia 操作或使用適用於 Java、C++ 或 Android 的 Kinesis Video Streams Producer 軟體開發套件,將媒體資料發布到 Kinesis 影片串流。如果您選擇直接使用 PutMedia 操作,則您將負責根據 Kinesis Video Streams 資料規格封裝媒體串流、處理串流建立、字符輪換,以及進行其他將媒體資料可靠地串流到 AWS 雲端所需的動作。建議您使用 Producer 軟體開發套件來簡化這些任務,並更快速開始使用。
什麼是 Kinesis Video Streams PutMedia 操作?
Kinesis Video Streams 提供 PutMedia API 以將媒體資料寫入 Kinesis 影片串流。在 PutMedia 請求中,生產者會傳送媒體片段的串流。當片段送達,Kinesis Video Streams 會以遞增順序指派唯一的片段編號,同時將每個片段的生產者端和伺服器端時間戳記保存為 Kinesis Video Streams 專用中繼資料。
什麼是 Kinesis Video Streams Producer 軟體開發套件?
Amazon Kinesis Video Streams Producer 軟體開發套件是一組簡單易用且高度可設定的程式庫,供您為特定生產者安裝及自訂。軟體開發套件讓您能夠輕鬆建置可安全連接到影片串流,並可靠地將影片和其他媒體資料發布到 Kinesis Video Streams 的裝置型應用程式。它會處理封裝裝置的媒體管道產生的畫格和片段所需的所有基礎任務。軟體開發套件還會處理串流建立、字符輪換 (用於進行安全且不間斷的串流)、處理 Kinesis Video Streams 傳回的確認以及其他任務。
哪些程式設計平台提供 Kinesis Video Streams Producer 軟體開發套件?
使用 Kinesis Video Streams Producer 軟體開發套件之前應該要注意哪些事項?
Kinesis Video Streams Producer 軟體開發套件會負責所有封裝畫格和片段的繁重工作、建立安全連線,以及可靠地將影片串流到 AWS。不過,在其上執行的硬體裝置和媒體管道類型不勝枚舉。為了簡化與媒體管道整合的程序,建議您先了解下列事項:1) 畫格邊界,2) 邊界所使用的畫格類型 (I-frame 或非 I-frame),以及 3) 畫格編碼時間戳記。
從串流讀取資料
什麼是 GetMedia API?
您可以使用 GetMedia API 從 Kinesis 影片串流擷取媒體內容。在請求中,您會識別串流名稱或串流的 Amazon Resource Name (ARN) 以及起始區塊。Kinesis Video Streams 接著會根據片段編號,依序傳回區塊串流。當您將媒體資料 (片段) 放入串流時,Kinesis Video Streams 將所有傳入的片段和相關的中繼資料保存在所謂的「區塊」中。 GetMedia API 會傳回這些區塊的串流 (從您在請求中指定的區塊開始)。
什麼是 GetMediaForFragmentList API?
您可以使用 GetMediaForFragmentList API 從 Kinesis 影片串流的存檔資料中擷取片段清單 (由片段編號指定) 的媒體資料。這個 API 操作的呼叫通常晚於 ListFragments API 的呼叫。
什麼是 ListFragments API?
您可以使用 ListFragments API 從保留資料內指定的影片串流和起始位置傳回片段清單 (使用片段編號或時間戳記)。
資料可以存放在 Kinesis Video Streams 多長時間?
您可以將資料存放在其串流中,沒有時間限制。Kinesis Video Streams 可讓您根據自己的存檔和儲存需求來設定資料保留期。
什麼是 Kinesis Video Streams 解析程式庫?
Kinesis Video Streams 解析程式庫可讓開發人員輕鬆取用和處理 Kinesis Video Streams GetMedia 操作的輸出內容。應用程式開發人員可以將這個程式庫納入自己的影片分析以及操作影片串流的處理應用程式。雖然應用程式可以在任何位置執行,但它們本身是在 EC2 執行個體上執行。程式庫提供的功能可讓您輕鬆取得畫格層級物件及其相關的中繼資料、擷取及收集連接到片段和連續片段的 Kinesis Video Streams 特定中繼資料。接著您可以建置自訂應用程式,以更輕鬆地將原始影片資料運用到您的使用案例。
如果我有需要使用 Kinesis 影片串流傳送之畫格 (和片段) 的自訂處理應用程式,該怎麼做?
一般來說,如果您想取用影片串流,然後加以操控以符合自訂應用程式的需求,您要考量兩個主要步驟。首先,從 GetMedia API 發布的格式化串流取得以位元組計的畫格。您可以使用串流解析程式庫來取得畫格物件。接著,取得解碼畫格所需的中繼資料,例如像素高度、寬度、解碼器 ID 和解碼器私有資料。這類中繼資料是內嵌在追蹤元素中。解析程式庫會提供協助程式類別來收集片段的追蹤資訊,藉此簡化擷取追蹤資訊的程序。
後續步驟則視應用程式而有所不同。您可能希望解碼畫格、為播放引擎設定畫格格式、將畫格轉碼以分發內容,或是將畫格轉換成自訂的深度學習應用程式格式。Kinesis Video Streams 串流解析程式庫採用開放原始碼,因此您可以根據特定使用案例予以擴充。
從串流播放影片
如何在我自己的應用程式中播放擷取的影片?
您可以使用 Amazon Kinesis Video Streams 的 HTTP 即時串流 (HLS) 和經由 HTTP 的動態調整串流 (DASH) 功能,以片段 MP4 或 MPEG_TS 打包格式播放擷取的影片。HLS 和 DASH 是產業標準 HTTP 媒體串流協定。使用 Amazon Kinesis Video Streams 從裝置擷取影片時,您可以使用 HLS 或 DASH API 播放即時或錄製的影片。這是一個全受管功能,因此無須建立任何雲端基礎設施來支援影片播放。有關低延遲播放和雙向媒體串流的資訊,請參閱有關 WebRTC 串流的常見問答集。
如何開始使用 Kinesis Video Streams HLS 或 DASH API?
要使用 HLS 或 DASH 觀賞 Kinesis 影片串流,首先使用 GetHLSStreamingSessionURL 或 GetDASHStreamingSessionURL API 建立串流工作階段。這個動作會傳回一個存取 HLS 或 DASH 工作階段的 URL (包括工作階段字符),之後您便可在媒體播放程式或獨立應用程式中使用它來播放串流。您可以使用第三方播放程式 (如 Video.js 或 Google Shaka Player) 來顯示影片串流,只需以程式設計或手動方式提供 HLS 或 DASH 串流工作階段 URL 即可。在 Apple Safari 或 Microsoft Edge 瀏覽器的「位置」列輸入 HLS 或 DASH 串流工作階段 URL,也可播放影片。此外,行動應用程式可使用 Android (Exoplayer) 和 iOS (AVMediaPlayer) 的影片播放程式。
使用 Kinesis Video Streams HLS API 的基本要求有哪些?
Amazon Kinesis 影片串流對於透過 HLS 提供資料有以下要求:
- 媒體必須包含 h.264 或 h.265 編碼的影片,以及 AAC 編碼音訊 (可選)。具體而言,軌道 1 的編解碼器 ID 對於 h.264 應該是 V_MPEG/ISO/AVC,對於 h.265 應該是 V_MPEG/ISO/HEVC。軌道 2 的編解碼器 ID 應該為 A_AAC (可選)。
- 對於 h.264 格式,每個片段的視訊軌道必須包含進階影片編碼 (AVC) 的編解碼器私有資料,對於 h.265 格式則是 HEVC 的編解碼器私有資料 (MPEG-4 規範 ISO/IEC 14496-15) 。如需將串流資料轉換為特定格式的相關資訊,請參閱 NAL Adaptation Flags。
- 資料保留時間必須大於 0。
- 每個片段的音軌 (如果存在) 必須包含 AAC 格式 (AAC 規範 ISO/IEC 13818-7) 的編解碼器私有資料。
使用 Kinesis Video Streams DASH API 的基本要求有哪些?
Amazon Kinesis 影片串流對於透過 DASH 提供資料有以下要求:
- 媒體必須包含 h.264 或 h.265 編碼的影片,以及 AAC 或 G.711 編碼音訊 (可選)。具體而言,軌道 1 的編解碼器 ID 對於 h.264 應該是 V_MPEG/ISO/AVC,對於 h.265 應該是 V_MPEGH/ISO/HEVC。可選地,軌道 2 的編解碼器 ID 應該是 A_AAC (對於 AAC) 或 A_MS/ACM (對於 G.711)。
- 對於 h.264 格式,每個片段的視訊軌道必須包含進階影片編碼 (AVC) 的編解碼器私有資料,對於 h.265 格式則是 HEVC 的編解碼器私有資料 。如需詳細資訊,請參閱 MPEG-4 規範 ISO/IEC 14496-15。如需將串流資料轉換為特定格式的相關資訊,請參閱 NAL Adaptation Flags。
- 資料保留時間必須大於 0。
- 每個片段的音軌 (如果存在) 必須包含 AAC 格式 (AAC 規範 ISO/IEC 13818-7) 或 MS Wave 格式的編解碼器私有資料。
Kinesis Video Streams 中 HLS 或 DASH 串流可使用哪些播放模式?
HLS 和 DASH 支援兩種不同的播放模式:即時和隨選。
即時:如果是即時工作階段,HLS 媒體播放清單會在最新片段推出時持續更新。媒體播放程式播放這類工作階段時,使用者界面通常會顯示 "live" 通知,不會提供 scrubber 控制項讓您在播放視窗選擇顯示位置。
隨選:如果是隨選工作階段,HLS 媒體播放清單會包含工作階段中所有片段,最多可有 MaxMediaPlaylistFragmentResults 中指定的數目。每個工作階段只能擷取一次播放清單。
此外,HLS 還支援 LIVE_REPLAY 模式下的播放。在此模式下,HLS 媒體播放清單的更新方式與即時模式下的更新方式類似,不同之處在於,它在開始時包含給定開始時間的片段。當您在儲存的媒體上想要從過去的某個時間點開始播放,然後繼續進行即時串流時,此模式很有用。
使用 API 播放影片的延遲為多久?
即時播放的延遲通常是 3 到 5 秒,但是可能有所不同。我們強烈建議您自行執行測試和概念證明以判斷目標延遲。無論是輸入串流到 AWS 或從 AWS 輸出串流,有各種原因會影響播放延遲,包括使用案例、生產者產生影片片段的方式、影片片段的大小、播放程式調校及網路狀況。對於低延遲播放,請參閱有關 WebRTC 串流的常見問答集。
使用 HLS 或 DASH 的相關限制為何?
Kinesis 影片串流支援最多十個作用中 HLS 或 DASH 串流工作階段。如果達到作用中工作階段數目上限時又建立了新的工作階段,則會關閉最舊 (最早建立) 的工作階段。Kinesis 影片串流上作用中 GetMedia 連線數不會計入此限制,作用中 HLS 工作階段數也不會計入作用中 GetMedia 連線數限制。如需更多詳細資訊,請參閱 Kinesis Video Streams 限制。
Kinesis Video Streams 與 AWS Elemental MediaLive 有何不同?
AWS Elemental MediaLive 是廣播級的即時影片編碼服務。它讓您建立高品質的影片串流以交付到廣播電視和與網際網路連線的多螢幕裝置,像是連網電視、平板電腦、智慧手機以及電視機上盒。服務可獨立運作,也可以與 AWS Media Services 一起運作。
Amazon Kinesis Video Streams 可讓您安全輕鬆地將影片從連線裝置串流到 AWS,以進行即時和批次導向的機器學習 (ML)、影片播放、分析及其他處理。它可讓客戶建立機器視覺應用程式,以支援智慧住家、智慧城市、工業自動化和安全監控等情況。
這項功能如何收費?
Kinesis Video Streams 使用簡單的按使用量付費定價。無需預付費用,只需按使用的資源付費。Kinesis Video Streams 是依擷取的資料量 (GB)、取用的資料量 (GB) (包括透過 HLS 或 DASH API),以及您帳戶中所有影片串流存放的資料 (每月 GB) 來決定定價。如需更多詳細資訊,請參閱定價頁面。
什麼是 Amazon Kinesis Video Streams 邊緣代理程式
什麼是 Amazon Kinesis Video Streams 邊緣代理程式?
Kinesis Video Streams 邊緣代理程式是一組簡單易用且高度可設定的程式庫,您可以安裝和自訂本機影片儲存,以及排程上傳至雲端。您可以下載邊緣代理程式,並將其部署至內部部署邊緣運算裝置。或者,您可以輕鬆地將其部署在執行於 Amazon EC2 機器的 Docker 容器中。部署完成後,您可以使用 Amazon Kinesis Video Streams API 來更新影片錄製和雲端上傳組態。該功能適用於可透過 RTSP 協定進行串流的任何 IP 攝影機,並且無需在攝影機上進行額外的軔體部署。我們在 AWS Snowball Edge 裝置上提供 Amazon Kinesis Video Streams 邊緣代理程式安裝,做為 AWS Greengrass 元件或原生 IoT 部署。 如需了解 Amazon Kinesis Video Streams 邊緣代理程式的存取權,請參閱這裡。
使用 WebRTC 實現低延遲雙向媒體串流
什麼是 WebRTC?Kinesis Video Streams 如何支援此功能?
WebRTC 是一種開放技術規範,用於透過簡單的 API 在瀏覽器和行動應用程式之間實現即時通訊 (RTC)。它利用對等技術在連線的對等端之間進行即時資料交換,並提供了人與人互動所需的低媒體串流延遲。WebRTC 規範包括一組 IETF 協定,例如用於建立點對點連線的 Interactive Connectivity Establishment (ICE RFC5245)、Traversal Using Relay around NAT (TURN RFC5766) 和 Session Traversal Utilities for NAT (STUN RFC5389),以及用於即時媒體和資料串流的協定規範。Kinesis Video Streams 提供了符合標準的 WebRTC 實作,讓它成為一種全受管的功能。您可以使用此功能來安全地即時串流媒體,或在任何具有攝影機的 IoT 裝置與 WebRTC 相容的行動或 Web 播放器之間執行雙向音訊或視訊互動。作為一項全受管功能,您無需建置、執行或擴展任何與 WebRTC 相關的雲端基礎設施,例如訊號或媒體轉送伺服器,即可在應用程式和裝置之間安全地串流媒體。
Amazon Kinesis Video Streams 代表我管理什麼以透過 WebRTC 啟用即時媒體串流?
Kinesis Video Streams 為 WebRTC 訊號提供受管端點,使應用程式可以安全地相互連線以進行點對點即時媒體串流。其次,它包含 TURN 的受管端點,當應用程式無法串流點對點媒體時,它可以透過雲端進行媒體轉送。它還包含了 STUN 的受管端點,在應用程式位於 NAT 或 防火牆之後時,可讓應用程式探索其公有 IP 地址。此外,它提供易於使用的軟體開發套件,以啟用具有 WebRTC 功能的攝影機 IoT 裝置。最後,它提供了 Android、iOS 和 Web 應用程式的客戶端軟體開發套件,將 Kinesis Video Streams WebRTC 訊號、TURN 和 STUN 功能與任何 WebRTC 合規行動或 Web 播放器整合在一起。
我可以使用 Kinesis Video Streams WebRTC 功能建置什麼?
借助 Kinesis Video Streams WebRTC,您可以輕鬆建置用於攝影機 IoT 裝置、Web 瀏覽器和行動裝置之間的即時媒體串流或即時音訊或視訊互動應用程式,以用於各種使用案例,例如幫助父母監控嬰兒房、讓屋主可以利用視訊門鈴查看來訪者、允許配備攝影機的機器人吸塵器擁有者透過在手機上觀看即時攝影機串流來遠端控制機器人等等。
如何開始使用 Kinesis Video Streams WebRTC 功能?
您可以先在適用於 WebRTC (支援 Web 瀏覽器、Android 或 iOS 行動裝置以及以 Linux、Raspbian 和 MacOS 為基礎的 IoT 裝置) 的 Kinesis Video Streams 軟體開發套件中建置和執行範例應用程式。您還可以在 Kinesis Video Streams 管理主控台中執行此功能的快速演示,方法是建立一個訊號頻道,然後執行演示應用程式,以即時串流筆記型電腦內建的攝影機和麥克風的音訊和視訊。
什麼是訊號頻道?
訊號頻道是一種資源,使應用程式可以透過交換訊號訊息來發現、建立、控制和終止點對點連線。訊號訊息是兩個應用程式相互交換以建立點對點連線的中繼資料。此中繼資料包括本機媒體資訊,例如媒體編解碼器和編解碼器參數,以及兩個應用程式相互連線以進行即時串流可能使用的網路候選路徑。
應用程式如何使用訊號頻道來啟用點對點連線?
串流應用程式可以維持與訊號頻道的持久連線,並等待其他應用程式連線到它們,或者僅當它們需要即時串流媒體時,它們才連線到訊號頻道。訊號頻道使應用程式可以採行一個主機連線到多個觀看端的概念,以一對多的模式相互連線。發起連線的應用程式透過 ConnectAsMaster API 承擔主機的責任,並等待觀看端。然後,可以有最多 10 個應用程式作為觀看端,透過 ConnectAsViewer API 連線到該訊號頻道。連線到訊號頻道後,主機應用程式和觀看端應用程式可以互相傳送訊號訊息,以建立即時媒體串流的點對點連線。
當應用程式位於 NAT 或防火牆後面時,它們如何即時串流點對點媒體?
當應用程式位於 NAT 或防火牆後面時,它們會使用 Kinesis Video Streams STUN 端點來發現其公有 IP 地址。應用程式提供其公有 IP 地址作為可能的位置,在該位置它可以接收來自其他應用程式的連線請求以進行即時串流。所有 WebRTC 通訊的預設選項是直接點對點連線,但是如果 NAT 或防火牆不允許直接連線 (例如,在對稱 NAT 的情況下),則應用程式可以連線到 Kinesis Video Streams TURN 端點,以透過雲端轉送媒體。GetIceServerConfig API 提供了應用程式可以在其 WebRTC 組態中使用的必要 TURN 端點資訊。此組態允許應用程式在無法建立直接點對點連線以進行即時串流時,將 TURN 轉送用作後援。
Kinesis Video Streams 如何透過 WebRTC 保護即時媒體串流?
端到端加密是 WebRTC 的一項強制性功能,Kinesis Video Streams 在所有元件 (包括訊號、媒體或資料串流) 上都實作了這項功能。無論通訊是點對點通訊還是透過 Kinesis Video Streams TURN 端點進行轉送,所有 WebRTC 通訊都透過標準化加密協定進行了安全加密。使用安全的 Websocket (WSS) 交換訊號訊息,使用 Datagram Transport Layer Security (DTLS) 加密資料串流,並使用 Secure Real-time Transport Protocol (SRTP) 加密媒體串流。
主控台
什麼是 Kinesis Video Streams 管理主控台?
Kinesis Video Streams 管理主控台可讓您建立、更新、管理和監控影片串流。而且只要串流中的內容採用支援的媒體類型,管理主控台還可以即時或隨選的方式播放您的媒體串流。使用播放器控制項,您可以檢視即時串流、快轉或倒轉 10 秒、使用日期和時間挑選器倒帶到過去的時間點 (如果您為影片串流設定了對應的保留期的話)。Kinesis Video Streams 管理主控台的影片播放功能是以一項快速診斷工具的形式提供,讓開發人員在使用 Kinesis Video Streams 建置解決方案時,應用到各種開發和測試案例。
主控台支援哪些媒體類型?
Kinesis Video Streams 管理主控台唯一支援播放的影片媒體類型是常見的 H.264 格式。這種媒體格式受到各種裝置、硬體和軟體編碼器及播放引擎廣泛支援。您可以為自己的取用者應用程式和使用案例,導入任何影片、音訊或其他自訂的時間編碼資料類型,但管理主控台不會執行這些資料類型的播放動作。
Kinesis Video Streams 管理主控台上影片播放的延遲為多久?
對於將影片資料傳輸到影片串流的生產者,Kinesis Video Streams 管理主控台中的即時播放會出現 2 到 10 秒的延遲。此延遲主要是因為生產者裝置在透過網際網路傳輸資料之前,會將畫格累積成片段所致。一旦資料進入 Kinesis Video Streams 端點,且您請求播放時,主控台就會從耐久儲存取得 H.264 媒體類型片段、將片段轉封裝成適合在不同網際網路瀏覽器上播放的媒體格式。轉封裝後的媒體內容接著會傳輸到您請求透過網際網路播放的位置。
加密
什麼是 Kinesis Video Streams 的伺服器端加密?
伺服器端加密是 Kinesis Video Streams 的一項功能,可使用您指定的 AWS KMS key,在資料處於靜態狀態之前自動加密資料。資料會在寫入 Kinesis Video Streams 儲存層之前加密,而從儲存擷取後會解密。因此,您的資料在 Kinesis Video Streams 服務中總是會保持靜態加密狀態。
如何開始使用伺服器端加密?
Kinesis 影片串流的伺服器端加密一直處於啟用的狀態。如果在建立串流時未指定使用者提供的金鑰,則會使用預設金鑰 (由 Kinesis Video Streams 提供)。
在建立 Kinesis Video Streams 串流時,必須將使用者提供的 AWS KMS 金鑰指派給串流。您無法在之後使用 UpdateStream API 指派其他金鑰。
您可透過兩種方式將使用者提供的 AWS KMS 金鑰指派給 Kinesis 影片串流:透過主控台建立 Kinesis 影片串流時,在 Create new Kinesis Video stream 頁面的 Encryption 部分中指定 AWS KMS 金鑰。或者,在使用 CreateStream API 建立 Kinesis Video Streams 串流時,在 KmsKeyId 參數中指定金鑰 ID。
使用伺服器端加密的費用為何?
當您套用伺服器端加密時,必須支付 AWS KMS API 用量和金鑰費用。不同於自訂 AWS KMS 金鑰,(預設) aws/kinesis-video KMS 金鑰為免費提供。不過,您仍需支付 Kinesis Video Streams 產生的 API 用量費用。API 用量費用適用於所有 KMS 金鑰,包含自訂項目。Kinesis Video Streams 在輪換資料金鑰時,大約每 45 分鐘呼叫一次 AWS KMS。以一個月 30 天來說,由 Kinesis Video Stream 啟動的 AWS KMS API 呼叫總費用應該只有幾美元。此費用會隨著您在資料生產者和取用者使用的使用者登入資料數量而增加,因為每個使用者登入資料都需要唯一的 AWS KMS API 呼叫。
定價和帳單
Amazon Kinesis Video Streams 是否可用於 AWS 免費方案?
否。AWS 免費方案目前不包括 Amazon Kinesis Video Streams。
Kinesis Video Streams 的費用為何?
Kinesis Video Streams 使用簡單的按使用量付費定價。既無預付費用也沒有最低費用,只需為您使用的資源付費。Kinesis Video Streams 是依導入的資料量 (GB)、取用的資料量 (GB),以及您帳戶中所有影片串流儲存的資料 (每月 GB) 來決定定價。
此外,Kinesis Video Streams 只會針對成功接收的媒體資料收費 (區塊大小下限為 4 KB)。以下舉例來做比較,假設 64 kbps 音訊取樣的大小為 8 KB,則區塊大小下限會設為足以容納最小音訊或影片串流的最低大小。
Kinesis Video Streams 針對存放在串流中的資料如何計費?
Kinesis Video Streams 會按照長久保存在任何指定串流中的資料總量向您收費。每個影片串流保存的資料總量可使用保留小時數來控制。
Kinesis Video Streams WebRTC 功能如何計費?
使用 Amazon Kinesis Video Streams WebRTC 功能時,您要為一個月使用的信號頻道數量、傳送和接收的信號訊息數量,以及用於轉送媒體的 TURN 串流分鐘數付費。如果一個月期間有裝置或應用程式連線至信號頻道,系統會認定該月使用該信號頻道。TURN 串流分鐘數以 1 分鐘為增量計算。如需更多詳細資訊,請參閱定價頁面。
服務水準協議
Amazon Kinesis Video Streams SLA 提供哪些保證?
Amazon Kinesis Video Streams SLA 保證 Amazon Kinesis Video Streams 每個月正常執行時間百分比至少為 99.9%。
如何知道自己是否符合 SLA 服務抵扣的資格?
如果您在一個以上的可用區域內執行某項任務,而且在每個月結算週期內,同一個區域每個月的正常執行時間百分比低於 99.9%,則根據 Amazon Kinesis Video Streams SLA,您有資格獲得 Amazon Kinesis Video Streams 的 SLA 積分。
如需 SLA 所有條款與條件的完整詳細資訊,以及如何提交索賠的詳細資訊,請參閱 Amazon Kinesis Video Streams SLA 詳細資訊頁面。