

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 擷取媒體
<a name="ingest-media"></a>

有下列限制：
+ **工作階段持續時間：**一小時，最長
+ **訊號頻道：**每個已啟用儲存組態的帳戶最多 100 個

**Topics**
+ [從瀏覽器擷取媒體](#ingest-browser)
+ [從 WebRTC C SDK 擷取媒體](#ingest-webrtc-sdk)
+ [將檢視器新增至擷取工作階段](#ingest-add-viewers)

## 從瀏覽器擷取媒體
<a name="ingest-browser"></a>

**重要**  
Chrome 目前是唯一支援的瀏覽器。

1. 在 JavaScript [範例頁面](https://awslabs.github.io/amazon-kinesis-video-streams-webrtc-sdk-js/examples/index.html)中開啟 Amazon Kinesis Video Streams with WebRTC SDK。

1. 請填妥下列資訊：
   + **KVS 端點** - 在**區域**欄位中，選取您的區域。

     例如 `us-west-2`。
   + **AWS 憑證**

     完成下列欄位：
     + **Access Key ID (存取金鑰 ID)**
     + **Secret Access Key (私密存取金鑰)**
     + **工作階段字符** - 範例應用程式支援臨時和長期登入資料。如果您使用長期 IAM 登入資料，請將此欄位保留空白。如需詳細資訊，請參閱 [IAM 中的臨時安全登入](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_credentials_temp.html)資料。
   + **訊號頻道** - 在**頻道名稱**欄位中，輸入您先前設定的訊號頻道名稱。如需詳細資訊，請參閱[設定目的地](configure-ingestion.md)。
   + **音軌** - 選取**傳送視訊**和**傳送音訊**。
   + **WebRTC 擷取和儲存** - 展開節點，然後選取**自動判斷擷取模式**。此選項可讓範例應用程式呼叫 [DescribeMediaStorageConfiguration](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/API_DescribeMediaStorageConfiguration.html) API，以判斷要在哪個模式下執行。

1. 選取**啟動主伺服器**。

   如果訊號頻道設定為使用 [DescribeMediaStorageConfiguration](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/API_DescribeMediaStorageConfiguration.html) API 擷取，則範例應用程式會在連線至訊號頻道以啟動 WebRTC 擷取工作流程後立即自動叫用 [JoinStorageSession](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/API_webrtc_JoinStorageSession.html) API。

## 從 WebRTC C SDK 擷取媒體
<a name="ingest-webrtc-sdk"></a>

依照[Amazon Kinesis Video Streams with WebRTC SDK in C for embedded device](kvswebrtc-sdk-c.md)程序建置範例應用程式。

1. 使用 AWS 帳戶 登入資料設定您的環境：

   ```
   export AWS_ACCESS_KEY_ID=YourAccessKey
   export AWS_SECRET_ACCESS_KEY=YourSecretKey
   export AWS_DEFAULT_REGION=YourAWSRegion
   ```

   如果您使用的是暫時 AWS 登入資料，也請匯出工作階段字符：

   ```
   export AWS_SESSION_TOKEN=YourSessionToken
   ```

1. 執行範例：

   **主要範例**

   導覽至 `build` 資料夾，並使用「1」做為第二個引數。類型：

   ```
   ./samples/kvsWebrtcClientMaster channel-name 1
   ```

   **GStreamer 主要範例**

   導覽至 `build` 資料夾，並使用「audio-video-storage」做為第二個引數。類型：

   ```
   ./samples/kvsWebrtcClientMasterGstSample channel-name audio-video-storage testsrc
   ```

這會啟動 WebRTC 擷取。

**注意**  
您提供的訊號頻道必須設定為儲存。使用 [DescribeMediaStorageConfiguration](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/API_DescribeMediaStorageConfiguration.html) API 進行確認。

## 將檢視器新增至擷取工作階段
<a name="ingest-add-viewers"></a>

一旦訊號頻道進入 WebRTC 擷取模式，檢視器參與者就不會再直接連線至主要參與者。檢視器參與者會直接連線至儲存工作階段。檢視器參與者會收到主要參與者傳送的媒體，檢視器參與者可以將選用的音訊傳回給主要參與者。只要主要參與者連線至儲存工作階段，檢視器傳回的任何音訊都會傳送至連線至儲存工作階段並擷取至 Kinesis Video Stream 的所有其他對等。

有下列限制：
+ **檢視器數量上限：**3 
+ **檢視器參與者可以在沒有主要參與者的情況下連線到儲存工作階段的時間上限：**3 分鐘 

**重要**  
如果檢視器與儲存工作階段中斷連線 （關閉對等連線），其配額 （檢視器限制） 會維持 1 分鐘。在此 1 分鐘期間，檢視器可以使用相同的用戶端 ID 叫用此 API，以重新加入工作階段，而不需要額外的檢視器配額。1 分鐘後，會釋出檢視器配額，供其他檢視器加入。

**瀏覽器**

**重要**  
Chrome 是唯一支援的瀏覽器。

1. 在 JavaScript [範例頁面](https://awslabs.github.io/amazon-kinesis-video-streams-webrtc-sdk-js/examples/index.html)的 Amazon Kinesis Video Streams with WebRTC SDK 中開啟另一個索引標籤。上一頁的所有資訊都會自動填入。如果沒有，請完成下列資訊：
   + **KVS 端點** - 在**區域**欄位中，選取您的區域。

     例如 `us-west-2`。
   + **AWS 憑證**

     完成下列欄位：
     + **Access Key ID (存取金鑰 ID)**
     + **Secret Access Key (私密存取金鑰)**
     + **工作階段字符** - 範例應用程式支援臨時和長期憑證。如果您使用長期 IAM 登入資料，請將此欄位保留空白。如需詳細資訊，請參閱 [IAM 中的臨時安全登入](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_credentials_temp.html)資料。
   + **訊號頻道** - 在**頻道名稱**欄位中，輸入您先前設定的訊號頻道名稱。如需詳細資訊，請參閱[設定目的地](configure-ingestion.md)。
   + **音軌** - 選取**傳送音訊**。請注意，如果已勾選**傳送視訊**，則選擇**啟動檢視器**時會自動取消勾選。
   + **WebRTC 擷取和儲存** - 展開節點，然後選取**自動判斷擷取模式**。此選項可讓範例應用程式呼叫 [DescribeMediaStorageConfiguration](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/API_DescribeMediaStorageConfiguration.html) API，以判斷要在哪個模式下執行。

1. 選取**啟動檢視器**。

   應用程式會在連線至訊號頻道後立即自動呼叫 [JoinStorageSessionAsViewer](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/API_webrtc_JoinStorageSessionAsViewer.html) API，以觸發從工作階段傳送給檢視器的 SDP 優惠。

**注意**  
透過peer-to-peer WebRTC，檢視器參與者是控制對等，而主參與者是控制對等。在 WebRTC 擷取模式中，儲存工作階段現在是控制對等。連線至訊號並叫用 [JoinStorageSessionAsViewer](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/API_webrtc_JoinStorageSessionAsViewer.html) 之後，檢視器將需要回應 SDP 優惠，並透過 WebRTC 建立與儲存工作階段的連線。

**注意**  
儲存工作階段只會傳送`TURN`候選項目。從參與者的觀點來指定 ICE 候選配對時，遠端候選一律為類型 `relay`。