一般問題

問:什麼是 Amazon Kinesis Video Streams?

Amazon Kinesis Video Streams 可讓您安全輕鬆地將影片從連線裝置串流到 AWS,以進行分析、機器學習 (ML) 及其他處理。Kinesis Video Streams 可自動佈建和彈性地擴展所需的全部基礎設施,以便從數百萬台裝置導入串流影片資料。它還能持久地存放和加密串流影片資料並編製索引,讓您透過易於使用的 API 存取資料。Kinesis Video Streams 透過與 Amazon Rekognition Video 整合和 ML 架構程式庫 (如 Apache MxNet、TensorFlow、OpenCV 等),讓您快速建立電腦視覺和 ML 應用程式。

問:什麼是時間編碼資料?

時間編碼資料是記錄按照時間序列的任何資料,且每個記錄都與其上一個及下一個記錄相關。影片是時間編碼資料的一個例子,在空間轉換時,每一個畫面會與前一個和下一個畫面有關。時間編碼資料的其他例子包括音訊、RADAR 和 LIDAR 信號。Amazon Kinesis Video Streams 專門針對分析和 ML 使用案例的各種時間編碼資料提供經濟實惠且有效地導入和儲存。

問:Kinesis Video Streams 有哪些常用案例?

Kinesis Video Streams 適合用來建置啟用電腦視覺的 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 Video Streams 管理主控台最終會擷取支援的 H.264 媒體類型、將它轉封裝供各種瀏覽器使用,並讓您為了開發或測試用途來播放串流。

將資料發布到串流

問:如何將資料發布到 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 軟體開發套件的核心是以 C 建置,因此可輕鬆移植到各種硬體平台。大多數開發人員偏好使用 C++Java 版本的 Kinesis Video Streams Producer 軟體開發套件。Producer 軟體開發套件也提供 Android 版本,適用於想從 Android 裝置串流影片資料的行動應用程式開發人員。

問:使用 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) 功能,以 HLS 封裝的格式播放導入的影片。HLS 是產業標準 HTTP 媒體串流協定。使用 Amazon Kinesis Video Streams 從裝置擷取影片時,您可以使用 HLS API 播放即時或錄製的影片。這是一個全受管功能,因此無須建立任何雲端基礎設施來支援影片播放。

問:如何開始使用 Kinesis Video Streams HLS API?

要使用 HLS 觀賞 Kinesis 影片串流,首先使用 GetHLSStreamingSessionURL 建立串流工作階段。這個動作會傳回一個存取 HLS 工作階段的 URL (包括工作階段字符),之後您便可在媒體播放程式或獨立應用程式中使用它來顯示串流。您可以使用第三方播放程式 (如 Video.js 或 Google Shaka Player) 來顯示影片串流,只需以程式設計或手動方式提供 HLS 串流工作階段 URL 即可。在 Apple Safari 或 Microsoft Edge 瀏覽器的「位置」列輸入 HLS 串流工作階段 URL,也可播放影片。此外,行動應用程式可使用 Android (Exoplayer) 和 iOS (AVMediaPlayer) 的影片播放程式。


問:使用 Kinesis Video Streams HLS API 的基本要求有哪些?

Amazon Kinesis 影片串流對於透過 HLS 提供資料有以下要求:

  • 媒體類型必須是影片/H.264。
  • 片段的 H.264 格式 (MPEG-4 規格 ISO/IEC 14496-15) 必須包含 AVC (進階影片編碼) 編解碼器私有資料。如需將串流資料轉換為特定格式的相關資訊,請參閱 NAL Adaptation Flags
  • 資料保留時間必須大於 0。

Kinesis Video Streams HLS 工作階段包含片段 MPEG-4 格式 (也稱為 fMP4 或 CMAF) 的片段,而不是 MPEG-2 格式 (也稱為 TS 區塊),HLS 規格也支援這個格式。如需 HLS 片段類型的詳細資訊,請參閱 HLS specification

問:Kinesis Video Streams 中 HLS 串流可使用哪些播放模式?

有兩種不同的播放模式:即時和隨選。

即時:如果是即時工作階段,HLS 媒體播放清單會在最新片段推出時持續更新。媒體播放程式播放這類工作階段時,使用者界面通常會顯示 "live" 通知,不會提供 scrubber 控制項讓您在播放視窗選擇顯示位置。

隨選:如果是隨選工作階段,HLS 媒體播放清單會包含工作階段中所有片段,最多可有 MaxMediaPlaylistFragmentResults 中指定的數目。每個工作階段只能擷取一次播放清單。

問:使用 API 播放影片的延遲為多久?

即時播放的延遲通常是 3 到 5 秒,但是可能有所不同。我們強烈建議您自行執行測試和概念證明以判斷目標延遲。無論是輸入串流到 AWS 或從 AWS 輸出串流,有各種原因會影響播放延遲,包括使用案例、生產者產生影片片段的方式、影片片段的大小、播放程式調校及網路狀況。

問:使用此功能的相關限制為何?

Amazon Kinesis Video Streams 的 HLS 工作階段有下列限制:

  • 播放程式之間不應共享串流工作階段 URL。如果多個媒體播放程式共享一個工作階段,服務可能會對其進行調節。有關連線限制,請參閱Kinesis Video Streams Limits
  • Kinesis 影片串流最多可有 5 個作用中 HLS 串流工作階段。如果達到作用中工作階段數目上限時又建立了新的工作階段,則會關閉最舊 (最早建立) 的工作階段。Kinesis 影片串流上作用中 GetMedia 連線數不會計入此限制,作用中 HLS 工作階段數也不會計入作用中 GetMedia 連線數限制。

問: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 API),以及您帳戶中所有影片串流存放的資料 (每月 GB) 來決定定價。請參閱 定價頁面了解詳細資訊。

主控台

問:什麼是 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 客戶主金鑰 (CMK),在資料處於靜態狀態之前自動加密資料。資料會在寫入 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 客戶主金鑰 (CMK) 為免費提供。不過,您仍需支付 Kinesis Video Streams 產生的 API 用量費用。API 用量費用適用於所有 CMK,包含自訂項目。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 會按照長久保存在任何指定串流中的資料總量向您收費。每個影片串流保存的資料總量可使用保留小時數來控制。

進一步了解 Amazon Kinesis Video Streams 定價

瀏覽定價頁面
準備好開始使用了嗎?
註冊
還有其他問題嗎?
聯絡我們