

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

# 使用 Amazon Chime SDK 會議
<a name="mtgs-sdk-mtgs"></a>

本節中的主題說明如何使用 Amazon Chime SDK 會議來建立自訂會議應用程式。我們建議您依照列出的順序遵循這些主題。

**Topics**
+ [遷移至 Amazon Chime SDK 會議命名空間](meeting-namespace-migration.md)
+ [使用會議區域進行 Amazon Chime SDK 會議](chime-sdk-meetings-regions.md)
+ [使用 Amazon Chime SDK 建立會議](create-mtgs.md)
+ [使用 Amazon Chime SDK 選取會議功能](js-meeting-features.md)
+ [Amazon Chime SDK 會議如何使用 WebRTC 媒體](webrtc-media.md)
+ [為 Amazon Chime SDK 會議設定視訊轉碼器](js-meeting-manage-codecs.md)
+ [為 Amazon Chime SDK 會議設定您的網路](network-config.md)
+ [了解 Amazon Chime SDK 會議生命週期事件](using-events.md)
+ [了解 Amazon Chime SDK 會議的 Amazon CloudWatch 指標](sdk-usage-metrics.md)
+ [建立 Amazon Chime SDK 媒體管道](media-pipelines.md)
+ [使用 Amazon Chime SDK 即時轉錄](meeting-transcription.md)
+ [使用媒體複寫進行 Amazon Chime SDK 會議](media-replication.md)
+ [Amazon Chime SDK 會議疑難排解和偵錯](troubleshoot-sdk-meetings.md)

# 遷移至 Amazon Chime SDK 會議命名空間
<a name="meeting-namespace-migration"></a>

[Amazon Chime SDK Meetings](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Meetings.html) 命名空間是建立和管理 Amazon Chime SDK 會議資源APIs 的專用空間。您可以使用 命名空間來解決 Amazon Chime SDK 在任何 AWS 可用區域的 API 端點。如果您剛開始使用 Amazon Chime SDK，請使用此命名空間。如需區域的詳細資訊，請參閱本指南[Amazon Chime SDK 的可用 AWS 區域](sdk-available-regions.md)中的 。

使用 [Amazon Chime](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime.html) 命名空間的現有應用程式應計劃遷移到專用命名空間，以便使用最新的 APIs和功能。

**Topics**
+ [遷移的原因](#migration-reasons)
+ [遷移之前](#before-migrating)
+ [命名空間之間的差異](#namespace-differences)

## 遷移的原因
<a name="migration-reasons"></a>

基於下列原因，建議您遷移至 [Amazon Chime SDK Meetings](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Meetings.html) 命名空間：

**API 端點的選擇**  
Amazon Chime SDK Meetings 命名空間是唯一可在任何[區域中使用 API 端點的 API ](https://docs.aws.amazon.com/chime-sdk/latest/dg/sdk-available-regions.html)命名空間。如果您想要使用 以外的 API 端點`us-east-1`，則必須使用 Amazon Chime SDK Meetings 命名空間。  
如需 Amazon Chime SDK 會議如何使用 AWS 區域的詳細資訊，請參閱本指南中的[會議區域](https://docs.aws.amazon.com/chime-sdk/latest/dg/chime-sdk-meetings-regions.html)。

**已更新和新的會議 APIs**  
我們只在 Amazon Chime SDK Meetings 命名空間中新增或更新會議 APIs。

## 遷移之前
<a name="before-migrating"></a>

遷移之前，請注意命名空間之間的差異。下表列出並說明它們。


|  | Amazon Chime SDK Meetings 命名空間 | Amazon Chime 命名空間 | 
| --- | --- | --- | 
| AWS SDK 命名空間 | ChimeSDKMeetings | Chime | 
| 區域 | 多個 | 僅限 us-east-1 | 
| 端點 | https://meetings-chime.region.amazonaws.com | https://service.chime.aws.amazon.com | 
| 服務主體 | meetings.chime.amazonaws.com | chime.amazonaws.com | 
| API | 只有會議APIs  | Amazon Chime 會議和其他部分的 APIs  | 
| [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateMeeting.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateMeeting.html) | ExternalMeetingId 和 MediaRegion為必要項目。 | ExternalMeetingId 和 MediaRegion 為選用。 | 
| [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateMeetingWithAttendees.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateMeetingWithAttendees.html) | ExternalMeetingId 和 MediaRegion為必要項目。 | ExternalMeetingId 和 MediaRegion 為選用。 | 
| ListMeetings | 無 | 可用性 | 
| ExternalMeetingId | 驗證包含模式比對 | 可用性 | 
| ExternalUserId | 驗證包含模式比對  | 可用性 | 
| 會議標籤 APIs | TagResource, UntagResource, ListTagsForResource | TagMeeting, UntagMeeting, ListMeetingTags | 
| 出席者標籤 | 無 | 可用性 | 
| 回音減少 | 可用性 | 無 | 
| 即時轉錄語言識別 | 可用性 | 無 | 
| 出席者功能 | 可用性 | 無 | 
| 媒體複寫 | 可用性 | 無 | 
| AppKeys 和 TenantIds | 可用性 | 無 | 
| 媒體管道 | 媒體管道支援 Amazon Chime SDK Meetings 命名空間中的多個區域。如需詳細資訊，請參閱[遷移至 Amazon Chime SDK 媒體管道命名空間](migrate-pipelines.md)。 | 透過 us-east-1 端點提供 | 
| SIP 媒體應用程式 | JoinChimeMeeting 動作需要 MeetingId | JoinChimeMeeting 動作不需要 MeetingId | 
|  **直接 SIP 整合**  | 無 | 可用性 | 

## 命名空間之間的差異
<a name="namespace-differences"></a>

下列各節說明 `Amazon Chime`和 `Amazon Chime SDK Meetings`命名空間之間的差異。

### AWS SDK 命名空間
<a name="namespace-diffs"></a>

Amazon Chime SDK 命名空間使用`Chime`正式名稱。Amazon Chime SDK Meetings 命名空間使用`ChimeSDKMeetings`正式名稱。名稱的精確格式因平台而異。

例如，如果您使用 Node.js 中的 AWS SDK 來建立會議，您可以使用一行程式碼來解決命名空間。

```
const chimeMeetings = AWS.Chime();
```

若要遷移至 Amazon Chime Meetings 開發套件，請使用新的命名空間和端點區域更新這行程式碼。

```
const chimeMeetings = AWS.ChimeSDKMeetings({ region: "eu-central-1" });
```

### 區域
<a name="region-diffs"></a>

[Amazon Chime](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime.html) 命名空間只能處理 us-east-1 區域中的 API 端點。[Amazon Chime SDK Meetings](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Meetings.html) 命名空間可以解決 Amazon Chime SDK 在任何可用區域中滿足 API 端點的問題。如需最新的會議區域清單，請參閱本指南[Amazon Chime SDK 的可用 AWS 區域](sdk-available-regions.md)中的 。

### 端點
<a name="endpoint-diffs"></a>

[Amazon Chime SDK Meetings](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Meetings.html) 命名空間使用與 [Amazon Chime](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime.html) 命名空間不同的 API 端點。

只有用來建立會議的端點才能用來修改它。這表示透過 EU-CENTRAL-1 中端點建立的會議只能透過 EU-CENTRAL-1 進行修改。這也表示您無法處理透過 `Chime` 命名空間與 中 `ChimeSDKMeetings`命名空間建立的會議`US-EAST-1`。如需目前端點的詳細資訊，請參閱本指南[API 映射](migrate-from-chm-namespace.md#name-end-map)中的 。

### 服務主體
<a name="service-principal-diffs"></a>

[Amazon Chime SDK Meetings](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Meetings.html) 命名空間使用新的服務主體：`meetings.chime.amazonaws.com`。如果您有授予服務存取權的 SQS、SNS 或其他 IAM 存取政策，則需要更新這些政策，以授予新服務主體存取權。

### API
<a name="api-diffs"></a>

[Amazon Chime SDK Meetings](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Meetings.html) 命名空間僅包含用於建立和管理會議APIs。[Amazon Chime](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime.html) 命名空間包含會議APIs 和 Amazon Chime 服務的其他部分。

### CreateMeeting 必要欄位
<a name="create-meeting-diffs"></a>

在 Amazon Chime SDK Meetings 命名空間中， [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeeting.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeeting.html)和 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeetingWithAttendees.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeetingWithAttendees.html) APIs 需要指定 `ExternalMeetingId`和 `MediaRegion` 欄位。

### 外部 ID 值
<a name="external-id-diffs"></a>

[Amazon Chime SDK Meetings](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Meetings.html) 命名空間會對可用於 `ExternalMeetingId`和 的值強制執行額外的驗證`ExternalUserId`。

### 回音減少
<a name="echo-reduction-diffs"></a>

[Amazon Chime SDK Meetings](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Meetings.html) 命名空間提供以機器學習為基礎的回音減少功能，協助從本機喇叭移除噪音和聲音，從循環回會議。如需詳細資訊，請參閱 GitHub 上的 指南。

### 出席者功能
<a name="capabilities-diffs"></a>

[Amazon Chime SDK Meetings](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Meetings.html) 命名空間可精細控制會議內的出席者功能，以傳送和接收音訊、影片和內容。

### 媒體複寫
<a name="media-replication-diffs"></a>

[Amazon Chime SDK Meetings](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Meetings.html) 命名空間提供媒體複寫功能，可將主要會議連結至複本會議，以將最多 10，000 人集合在一起進行即時工作階段。連接至複本工作階段的參與者會收到連接至主要工作階段的簡報者媒體，但可以提升為主要會議。如需詳細資訊，請參閱本指南[使用媒體複寫進行 Amazon Chime SDK 會議](media-replication.md)中的 。

### AppKeys 和 TenantIds
<a name="app-keys-diffs"></a>

[Amazon Chime SDK Meetings](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Meetings.html) 命名空間提供一種方法，將網路存取限制在特定的 Amazon Chime SDK 會議。如需詳細資訊，請參閱本指南[針對 Amazon Chime SDK 使用 AppKeys 和 TenantIDs](app-keys-tenant-ids.md)中的 。

### 媒體管道
<a name="media-pipe-diffs"></a>

Amazon Chime SDK 媒體管道適用於任何會議端點所建立的會議，包括 [Amazon Chime SDK Meetings](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Meetings.html) 或 [Amazon Chime](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime.html) 命名空間。如需媒體管道區域的最新清單，請參閱[可用](https://docs.aws.amazon.com/chime-sdk/latest/dg/sdk-available-regions.html)區域。

### SIP 媒體應用程式
<a name="sip-app-diffs"></a>

Amazon Chime SDK SIP 媒體應用程式可與任何會議端點建立的會議搭配使用，包括 [Amazon Chime SDK Meetings](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Meetings.html) 或 [Amazon Chime](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime.html) 命名空間。使用 SIP 媒體應用程式搭配透過 Amazon Chime SDK Meetings 命名空間建立的會議時， [JoinChimeMeeting](join-chime-meeting.md)動作需要 `MeetingId` 參數。

### 其他 APIs
<a name="additional-api-diffs"></a>

會議命名空間有越來越多的 API，而 Chime 命名空間沒有這些 APIs。如果您開始使用 Amazon Chime SDK，請使用會議命名空間來存取最新的功能。

# 使用會議區域進行 Amazon Chime SDK 會議
<a name="chime-sdk-meetings-regions"></a>

Amazon Chime SDK 會議具有*控制*區域和*媒體*區域。控制區域具有用於建立、更新和刪除會議的 API 端點。媒體區域會主持實際會議。

一般而言，您的應用程式服務會使用 [AWS SDK](https://aws.amazon.com/tools/) 在控制區域中[簽署和呼叫](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) APIs。您的應用程式用戶端使用適用於 [JavaScript](js-sdk-intro.md)、[iOS](sdk-for-ios.md) 或 [Android](sdk-for-android.md) 的 Amazon Chime SDK 用戶端程式庫來連線至媒體區域中的會議。

控制區域可以在相同 AWS 分割區中的任何媒體區域中建立會議。不過，您只能在用來建立會議的控制區域中更新會議。若要尋找最接近客戶的媒體區域，請呼叫 https：//[https://nearest-media-region.l.chime.aws](https://nearest-media-region.l.chime.aws)。

在會議控制區域中`AttendeeJoined`呼叫 [EventBridge、Amazon Simple Queue Service (SQS) 或 Amazon Simple Notification Service (SNS)](https://docs.aws.amazon.com/chime-sdk/latest/dg/mtgs-sdk-notifications.html) 等會議[事件](https://docs.aws.amazon.com/chime-sdk/latest/ag/automating-chime-with-cloudwatch-events.html#sdk-events)。

 如需可用 Amazon Chime SDK 會議控制和媒體區域的清單，請參閱本指南[Amazon Chime SDK 的可用 AWS 區域](sdk-available-regions.md)中的 。

此圖表顯示透過控制項和媒體區域的典型資料流程。

![\[圖表顯示透過 Amazon Chime SDK 控制和媒體區域的資料流程。\]](http://docs.aws.amazon.com/zh_tw/chime-sdk/latest/dg/images/control-media-regions.png)


## 選擇控制區域
<a name="choose-meeting-region"></a>

為 Amazon Chime SDK 會議選擇控制區域時，請記住這些因素：
+ **法規要求**。您的應用程式是否需要位於地緣政治邊界內，或是使用具有 FIPS 140-2 驗證密碼編譯模組的端點？
+ **API 延遲**。使用最接近應用程式服務區域的控制 AWS 區域，有助於減少 APIs的網路延遲。反之，這有助於減少建立會議所需的時間，並讓使用者更快加入會議。
+ **高可用性**。您可以使用多個控制區域來實作高可用性架構。不過，每個控制區域都會獨立運作。此外，您只能在用來建立會議的控制區域中更新會議。此外，您必須使用相同的區域來使用 [ EventBridge、Amazon Simple Queue Service (SQS) 或 Amazon Simple Notification Service (SNS)](https://docs.aws.amazon.com/chime-sdk/latest/dg/mtgs-sdk-notifications.html) 的會議事件。

## 選擇媒體區域
<a name="choose-media-region"></a>

**注意**  
建議您一律在 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateMeeting.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateMeeting.html) API 動作的 `MediaRegion` 參數中指定值。如需 區域的詳細資訊，請參閱 [Amazon Chime SDK 的可用 AWS 區域](sdk-available-regions.md)。

選擇要用於 Amazon Chime SDK 會議的媒體區域時，請考慮下列常見因素：

**法規要求**  
如果您的 Amazon Chime SDK 會議受法規要求在地緣政治邊界內託管，請考慮根據固定的應用程式邏輯硬式編碼會議區域。  
例如，遠距醫療應用程式可能需要在醫療從業人員的司法管轄區內主持所有會議。如果應用程式支援位於歐洲和美國的診所，您可以使用每個診所的地址來選取其司法管轄區內的區域。

**會議品質**  
在媒體區域中託管 Amazon Chime SDK 會議時，會從該區域傳送和接收每位出席者的音訊和視訊。隨著出席者與區域之間的距離增加，會議品質可能會受到網路延遲的影響。為您的 Amazon Chime SDK 會議指定區域有助於增強出席者的會議品質，無論他們位於彼此附近還是地理上分佈。

您可以使用下列其中一種方法來選擇 Amazon Chime SDK 會議的媒體區域：

**媒體區域的硬式程式碼**  
如果您的 Amazon Chime SDK 會議都託管在特定 AWS 區域內，則建議使用。

**選擇最近的媒體區域**  
如果您的 Amazon Chime SDK 會議出席者位於相同 AWS 區域，但您的會議託管在不同區域，則建議使用此選項。

## 尋找最近的媒體區域
<a name="choose-nearest-media-region"></a>

若要尋找能夠託管 Amazon Chime SDK 會議的最近媒體區域，請呼叫 https：//[https://nearest-media-region.l.chime.aws](https://nearest-media-region.l.chime.aws)。此端點會傳回單一區域，例如 `{"region": "us-west-2"}`。從用戶端應用程式呼叫 URL 以識別最接近使用者的 區域，然後使用 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeeting.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeeting.html) API `MediaRegion` 參數中的結果在該區域中建立會議。

您通常會在用戶端應用程式啟動或其網路連線變更時呼叫 URL。透過預先確定最近的區域，您可以避免在會議建立時新增通話的延遲。

## 尋找 nearest AWS GovCloud (US) 媒體區域
<a name="choose-gov-cloud-region"></a>

若要尋找可主持 Amazon Chime SDK 會議的 nearest AWS GovCloud (US) 區域，請呼叫 https：//[https://nearest-us-gov-media-region.l.chime.aws](https://nearest-us-gov-media-region.l.chime.aws)。此端點會傳回最近的區域，例如 `{"region": "us-gov-west-1"}`。從用戶端應用程式呼叫 URL，以識別最接近使用者的 AWS GovCloud (US)，並使用 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeeting.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeeting.html) API `MediaRegion` 參數中的結果在該區域中建立會議。

您通常會在用戶端應用程式啟動或其網路連線變更時呼叫 URL。透過預先確定最近的區域，您可以避免在會議建立時新增通話的延遲。

## JavaScript 範例
<a name="region-javascript"></a>

下列範例使用 HTML 和 JavaScript 傳回最近的媒體區域和 AWS GovCloud (US) 媒體區域。

```
<html>
<head>
  <title>Amazon Chime SDK - Nearest Media Region</title>
  <script>

async function getNearestMediaRegion(partition)  {

    console.log('Nearest media region partition: ' + partition);

    const url = ('aws-us-gov' == partition) ? 'https://nearest-us-gov-media-region.l.chime.aws' : 'https://nearest-media-region.l.chime.aws';
    let result = ('aws-us-gov' == partition) ? 'us-gov-west-1' : 'us-west-2';

    try { //Find the nearest media region
        console.log('Nearest media region URL: ' + url);
        const response = await fetch(url, {method: 'GET'} );
        const body = await response.json();
        result = body.region;
    } catch (error) {
        console.log(error.message);
    } finally {
        console.log('Nearest media region found: ' + result);
        return result;
    }
}

async function findRegions(partition) {
  aws.innerText = await getNearestMediaRegion();
  awsusgov.innerText = await getNearestMediaRegion('aws-us-gov');
}
  </script>
</head>
<body>
  <h3>Nearest media region, by AWS partition</h3>
  <table>
    <tr><th>Partition</th><th>Media Region</th></tr>
    <tr><td>aws</td><td id="aws">Finding...</td></tr>
    <tr><td>aws-us-gov</td><td id="awsusgov">Finding...</td></tr>
  </table>
  <script>
    findRegions();
  </script>
</body>
</html>
```

## 檢查區域狀態
<a name="region-status"></a>

呼叫 [https://region.status.chime.aws/](https://region.status.chime.aws/)：// 以擷取每個區域中 Amazon Chime SDK 服務的運作狀態。結果會顯示建議的 區域。如果媒體區域的狀態不是**建議的**，則最近的媒體區域端點不會傳回該區域。

下列範例顯示典型結果。

```
{
  "MeetingsControlRegions": {
    "us-east-1": "recommended",
    "us-west-2": "recommended",
    "eu-central-1": "recommended",
    "eu-west-2": "recommended",
    "ap-south-1": "recommended",
    "ap-southeast-1": "recommended",
    "ap-southeast-2": "recommended",
    "ap-northeast-1": "recommended",
    "ap-northeast-2": "recommended",
    "il-central-1": "recommended",
    "ca-central-1": "recommended",
    "af-south-1": "recommended"
  },
  "MeetingsMediaRegions": {
    "af-south-1": "recommended",
    "ap-northeast-1": "recommended",
    "ap-northeast-2": "recommended",
    "ap-south-1": "recommended",
    "ap-southeast-1": "recommended",
    "ap-southeast-2": "recommended",
    "ca-central-1": "recommended",
    "eu-central-1": "recommended",
    "eu-north-1": "recommended",
    "eu-south-1": "recommended",
    "eu-west-1": "recommended",
    "eu-west-2": "recommended",
    "eu-west-3": "recommended",
    "sa-east-1": "recommended",
    "us-east-1": "recommended",
    "us-west-2": "recommended",
    "us-east-2": "recommended",
    "us-west-1": "recommended",
    "il-central-1": "recommended"
  },
  "MediaPipelineControlRegions": {
    "us-east-1": "recommended",
    "us-west-2": "recommended",
    "eu-central-1": "recommended",
    "eu-west-2": "recommended",
    "ap-south-1": "recommended",
    "ap-southeast-1": "recommended",
    "ap-southeast-2": "recommended",
    "ap-northeast-1": "recommended",
    "ap-northeast-2": "recommended",
    "ca-central-1": "recommended"
  },
  "MediaPipelineDataRegions": {
    "af-south-1": "recommended",
    "ap-northeast-1": "recommended",
    "ap-northeast-2": "recommended",
    "ap-south-1": "recommended",
    "ap-southeast-1": "recommended",
    "ap-southeast-2": "recommended",
    "ca-central-1": "recommended",
    "eu-central-1": "recommended",
    "eu-north-1": "recommended",
    "eu-south-1": "recommended",
    "eu-west-1": "recommended",
    "eu-west-2": "recommended",
    "eu-west-3": "recommended",
    "sa-east-1": "recommended",
    "us-east-1": "recommended",
    "us-west-2": "recommended",
    "us-east-2": "recommended",
    "us-west-1": "recommended"
  }
}
```

# 使用 Amazon Chime SDK 建立會議
<a name="create-mtgs"></a>

下列程序示範如何為您的伺服器和用戶端應用程式建立具有音訊和視訊的會議。開始之前，您必須將用戶端應用程式與 Amazon Chime SDK 用戶端程式庫整合。如需詳細資訊，請參閱 [了解 Amazon Chime SDK 用戶端程式庫](mtgs-sdk-client-lib.md)。

**使用音訊和視訊建立會議**

1. 從伺服器應用程式完成下列步驟：

   1. 使用 Amazon Chime SDK [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateMeeting.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateMeeting.html) API 參考中的 API 動作來建立會議。 **使用 `MediaRegion` 參數指定 AWS 區域。如需選擇會議區域的詳細資訊，請參閱 [會議區域](sdk-available-regions.md#sdk-meeting-regions)。

   1. 使用 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateAttendee.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateAttendee.html) API 動作或 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_BatchCreateAttendee.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_BatchCreateAttendee.html) API 動作將出席者新增至會議。將會議和出席者從您的伺服器應用程式安全地轉移到授權為個別出席者的用戶端。如需會議和出席者的詳細資訊，請參閱《*Amazon Chime SDK API 參考*[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_Attendee.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_Attendee.html)》中的 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_Meeting.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_Meeting.html)和 。

1. 從用戶端應用程式完成下列步驟：

   1. 使用 Amazon Chime SDK 用戶端程式庫來建構`MeetingSessionConfiguration`物件。使用先前步驟中的會議和出席者資訊。

   1. 實作 `AudioVideoObserver` 介面。

   1. `MeetingSession` 使用 建立 `MeetingSessionConfiguration`。

   1. 使用 `AudioVideoFacade` 中的 `MeetingSession`來控制即時媒體。

      1. 註冊 `AudioVideoObserver` 界面的執行個體。這可讓您在會議狀態變更時接收事件。

      1. 選取音訊輸入、音訊輸出和視訊輸入的初始裝置。

      1. 啟動影音工作階段。

      1. 當使用者想要共用視訊時，啟動本機視訊擷取。

      1. 若要顯示視訊圖磚、管理視訊圖磚事件，並將圖磚繫結至用戶端應用程式中的視訊表面。

      1. 管理其他使用者互動，例如靜音和取消靜音，或啟動和停止本機視訊擷取。

      1. 若要離開會議，請停止影音工作階段。

   1. （選用） 使用 `AudioVideoFacade` 中的 `MeetingSession` 與其他用戶端共用媒體內容，例如螢幕擷取。

      1. 啟動螢幕共用工作階段。內容會以其他出席者的身分加入會議。

      1. 若要檢視共用內容，請管理影片圖磚事件，並將圖磚繫結至用戶端應用程式中的表面。

      1. 管理其他互動，例如暫停、重新啟動或停止內容共用。

會議會在您執行 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_DeleteMeeting.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_DeleteMeeting.html) API 動作時結束。此外，會議會在下列情況自動結束：
+ 會議時間超過 24 小時。
+ 會議是[複本會議](media-replication.md)，主要會議結束。
+ 在非複本會議中，連續五分鐘沒有出席者連線。

# 使用 Amazon Chime SDK 選取會議功能
<a name="js-meeting-features"></a>

當您呼叫 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeeting.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeeting.html) API 時，您可以指定可供加入工作階段的用戶端使用的功能。請注意，某些功能選項會產生額外的帳單。

下列功能適用於 工作階段：
+ `Audio.EchoReduction` – 機器學習回音減少。
+ `Video.MaxResolution` – 網路攝影機影片解析度上限。
+ `Content.MaxResolution` – 內容共用解析度上限。
+ `Attendees.MaxCount` – 出席者人數上限。

**Topics**
+ [使用 Audio.EchoReduction](#audio-echo-reduction)
+ [使用 Video.MaxResolution](#video-max-resolution)
+ [使用 Content.MaxResolution](#js-content-resolution)
+ [使用 Attendees.MaxCount](#js-max-attendees)
+ [在用戶端應用程式中使用會議功能](#meeting-features-client-app)

## 使用 Audio.EchoReduction
<a name="audio-echo-reduction"></a>

使用 `Audio.EchoReduction`協助保持來自使用者喇叭的聲音，從傳播回會議。

回音降低非常適合使用者揚聲器將成為會議音訊主要輸出裝置的情況。例如，當多個使用者從會議室中的相同裝置參加會議，或個別遠端出席者未佩戴耳機時。

回音減少功能可在 JavaScript 和 React 用戶端程式庫中使用。如需詳細資訊，請參閱 [ GitHub 上的 文件](https://aws.github.io/amazon-chime-sdk-js/modules/amazonvoice_focus.html#what-is-echo-reduction)。需支付額外費用，詳細資訊請參閱 [Amazon Chime SDK 定價頁面](https://aws.amazon.com/chime/chime-sdk/pricing/)。

## 使用 Video.MaxResolution
<a name="video-max-resolution"></a>

使用 `Video.MaxResolution` 指定會議的網路攝影機視訊解析度上限。此功能提供下列選項：
+ `None`：不允許攝影機視訊
+ `HD`：高畫質攝影機視訊 (1280x720p)
+ `FHD`：full-high-definition攝影機視訊 (1920x1080)

如果請求 FHD (1080p) 影片，則會建立高畫質 WebRTC 工作階段。如需詳細資訊，請參閱 [Amazon Chime SDK 定價頁面](https://aws.amazon.com/chime/chime-sdk/pricing/)。

如果用戶端嘗試傳送超過指定上限的網路攝影機視訊，服務會拒絕視訊並傳送下列錯誤：

`Disabled video/content send capability, reason: Video resolution is above limit of current meeting feature selection.`

## 使用 Content.MaxResolution
<a name="js-content-resolution"></a>

使用 `Content.MaxResolution` 指定會議的最大內容共用解析度。此功能提供下列選項：
+ `None`：不允許共用內容
+ `FHD`：full-high-definition內容共享 (1920x1080)
+ `UHD`：ultra-high-definition內容共享 (3840x2160)

如果請求 UHD (4K) 內容，則會建立高解析度 WebRTC 工作階段。

如果傳送內容共享的用戶端屬性超過最大解析度，則該解析度會縮減至指定的最大值。您可以將 套用至內容共用軌道`MediaTrackConstraints`來擴展。下列範例示範如何擴展共享軌道。

```
const constraint: MediaTrackConstraints = {
    width: { ideal: videoQualitySettings.videoWidth },
    height: { ideal: videoQualitySettings.videoHeight },
    frameRate: { ideal: videoQualitySettings.videoFrameRate },
  };
  this.context.logger.info(
    `Video track (content = ${isContentAttendee}) with constraint: ${JSON.stringify(
      constraint
    )}, trackSettings: ${JSON.stringify(trackSettings)}`
  );
  try {
    await mediaStreamTrack.applyConstraints(constraint);
  } catch (error) {
    this.context.logger.info(
      `Could not apply constraint for video track (content = ${isContentAttendee})`
    );
  }
```

下表顯示內容共用的預期行為。


| 內容功能 | 內容共用原生解析度 | 擴展 | 內容編碼解析 | 
| --- | --- | --- | --- | 
|  FHD | 1280x720  | 否 | 1280x720 | 
| FHD | 1920x1080 | 否 | 1920x1080 | 
| FHD | 3840X2160 | 是 | 1920x1080 | 
| UHD | 1920x1080 | 否 | 1920x1080 | 
| UHD | 3840X2160 | 否 | 3840X2160 | 
| UHD | 4200x2400 | 是 | 3780x2160 | 

## 使用 Attendees.MaxCount
<a name="js-max-attendees"></a>

使用 `Attendee.MaxCount` 指定會議允許的出席者人數上限。Attendee.MaxCount 的上限取決於工作階段類型。對於標準工作階段，您最多可以選取 250 名出席者。對於高解析度工作階段，*您必須*選取最多 25 名出席者的值。

如果您請求 FHD (1080p) 影片或 UHD (4K) 內容，您的工作階段將是高畫質工作階段。

出席者容量成本適用於高解析度工作階段。如需詳細資訊，請參閱 [Amazon Chime SDK 定價頁面](https://aws.amazon.com/chime/chime-sdk/pricing/)。

## 在用戶端應用程式中使用會議功能
<a name="meeting-features-client-app"></a>



### 使用指定的功能建立會議
<a name="js-create-meetings-sdk-namespace"></a>

若要建立會議，請呼叫 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeeting.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeeting.html) API 並指定所需的會議功能。下列範例示範如何指定所有功能。

```
// You must migrate to the Amazon Chime SDK Meetings namespace.
const chime = AWS.ChimeSDKMeetings({ region: "eu-central-1" });

// Create meeting 
const meetingInfo = await chime.createMeeting({
    ...
    MeetingFeatures: {
      Audio: {
        EchoReduction: 'AVAILABLE' 
      },
      Video: {
        MaxResolution: 'FHD' 
      },
      Content: {
        MaxResolution: 'UHD' 
      },
      Attendee: {
        MaxCount: 25 
      },
    } 
  }).promise();
```

### 在用戶端中使用會議功能
<a name="js-client-level"></a>

建立具有所需功能的會議之後，您可以在建立`MeetingSessionConfiguration`物件`joinInfo`時傳入 。會議功能用於`meetingSession`建立網路攝影機影片解析度和位元速率，以及內容共用解析度和位元速率。

```
const configuration = new MeetingSessionConfiguration(this.joinInfo.Meeting, this.joinInfo.Attendee);

this.meetingSession = new DefaultMeetingSession(
    configuration,
    this.meetingLogger,
    this.deviceController,
    new DefaultEventController(configuration, this.meetingLogger, this.eventReporter)
);
```

# Amazon Chime SDK 會議如何使用 WebRTC 媒體
<a name="webrtc-media"></a>

Amazon Chime SDK 支援兩種類型的 WebRTC 工作階段，標準和高解析度。下列主題說明使用適用於 JavaScript、React、iOS 和 Android 的 Amazon Chime SDK 用戶端程式庫時，每種工作階段類型中可用的媒體。

**Topics**
+ [音訊](#webrtc-audio)
+ [影片](#video)
+ [內容共用](#content-share)
+ [資料訊息](#data-messages)

## 音訊
<a name="webrtc-audio"></a>

每個 Amazon Chime 用戶端都會傳送一個音訊串流到工作階段，並從工作階段接收一個音訊串流。一般而言，本機裝置上的麥克風會產生音訊。收到的音訊是來自其他工作階段用戶端的音訊組合。

這兩種工作階段類型都支援高達 48kHz 的取樣率，以及使用 Opus 轉碼器以高達 128kbps 的位元速率編碼的最多 2 個頻道 （立體聲）。不過，傳送和接收的音訊串流會因用戶端程式庫類型而有所不同：
+ 適用於 JavaScript 和 React 的 Amazon Chime SDK 用戶端程式庫支援以裝置和瀏覽器支援的最高範例速率傳送和接收單聲道和立體聲音訊，最高可達 48kHz。
+ 適用於 iOS 和 Android 的 Amazon Chime SDK 用戶端程式庫支援傳送高達 48kHz 的單聲道音訊，並以 48kHz 接收立體聲音訊。

## 影片
<a name="video"></a>

每個 Amazon Chime 用戶端可以將一個影片串流傳送至工作階段，並從工作階段接收最多 25 個影片串流。傳送的影片通常來自本機裝置的網路攝影機。每個用戶端最多可以選取要接收的 25 個影片串流，並在工作階段期間隨時變更選擇。

標準工作階段支援高達 1280x720 的影片解析度，每秒 30 個影格，使用 H.264、VP8, VP9和 AV1 以高達 1500kbps 的位元速率編碼。

高解析度工作階段支援高達 1920x1080 的影片解析度，每秒 30 個影格，使用 H.264、VP8, VP9和 AV1 以高達 2500kbps 的位元速率編碼。

適用於 JavaScript 和 React 的 Amazon Chime SDK 用戶端程式庫支援以每秒 15 個影格的模擬傳送視訊，或使用可擴展的視訊編碼 (SVC)。SVC 會以 100%、50% 和 25% 的目標值，對具有三個空間層和三個時間層的單一影片串流進行編碼。服務會根據檢視器的可用頻寬，自動選取要傳送給每個檢視器的圖層。

適用於 iOS 和 Android 的 Amazon Chime SDK 用戶端程式庫支援每秒傳送高達 15 個影格。不過，實際的影格速率和解析度是由 Amazon Chime SDK 自動管理。

視訊編碼和解碼使用硬體加速來改善效能。

 如果用戶端傳送的影片位元速率大於允許的位元速率上限，工作階段會先開始透過即時控制通訊協定傳送用戶端接收者預估位元速率上限訊息。如果用戶端繼續傳送位元速率大於允許的位元速率上限的影片，工作階段會捨棄傳入的影片串流封包。

## 內容共用
<a name="content-share"></a>

最多兩個用戶端可以將內容共用至工作階段。內容共用可以包含影片音軌、音訊音軌或兩者。內容共用的常見範例是螢幕共用，其使用螢幕擷取做為內容的來源。另一個範例是與視訊和音訊音軌共用預先錄製的內容。

內容音訊會混合到工作階段傳送的音訊串流中。內容音訊支援高達 48kHz 的取樣率，以及使用 Opus 轉碼器以高達 128kbps 的位元速率編碼的最多 2 個頻道 （立體聲）。

影片內容會傳送至工作階段，並在個別影片串流中轉送給用戶端。標準工作階段支援高達 1920x1080 的內容影片，每秒 30 個影格。高解析度工作階段支援高達 3840 x 2160 的內容影片，每秒 30 個影格。

內容共用的螢幕擷取會使用所擷取螢幕或視窗的解析度，最高可達工作階段類型的最大內容解析度，以及每秒最多 30 個影格。不過，裝置和瀏覽器功能可能會限制這些值。

適用於 JavaScript 和 React 的 Amazon Chime SDK 用戶端程式庫支援螢幕擷取和其他來源的內容共用。

適用於 iOS 和 Android 的 Amazon Chime SDK 用戶端程式庫僅支援螢幕擷取的內容共享。

## 資料訊息
<a name="data-messages"></a>

資料訊息可讓用戶端將資訊廣播到工作階段中的其他用戶端。例如，應用程式可能會使用資料訊息在工作階段期間共用表情符號反應。

每個資料訊息都包含：
+ 主題，最多 64 個字元的字串。
+ 最多 2 KB 的資料，包括 主題。

用戶端會將資料訊息傳送至工作階段，而工作階段會將資料訊息傳送至所有連線的用戶端。

工作階段可以選擇性地快取資料訊息最多五分鐘。如果用戶端加入或重新連線至工作階段，工作階段會自動傳送任何先前尚未傳送的快取資料訊息給用戶端。工作階段快取最多可儲存 1024 則資料訊息。

工作階段每秒最多支援 100 個傳送的資料訊息。使用[即時轉錄](https://docs.aws.amazon.com/chime-sdk/latest/dg/meeting-transcription.html)時，每個用戶端都會透過資料訊息接收[轉錄訊息](https://docs.aws.amazon.com/chime-sdk/latest/dg/process-msgs.html)，這些訊息會計入每秒傳送的訊息總數。

# 為 Amazon Chime SDK 會議設定視訊轉碼器
<a name="js-meeting-manage-codecs"></a>

用戶端裝置使用視訊轉碼器來壓縮原始視訊，再傳送到服務，並在轉譯之前解壓縮收到的視訊。

使用適用於 JavaScript 的 Amazon Chime SDK 用戶端程式庫時，您可以指定傳送視訊的編解碼器偏好設定。

適用於 iOS 和 Android 的 Amazon Chime SDK 用戶端程式庫會根據裝置的功能自動為您選取轉碼器。

## 設定視訊轉碼器偏好設定
<a name="codec-list"></a>

在適用於 JavaScript 的 Amazon Chime SDK 用戶端程式庫中，您可以為網路攝影機和內容視訊指定獨立的視訊編解碼器偏好設定。

使用 [ AudioVideoControllerFacade.setVideoCodecSendPreferences ](https://aws.github.io/amazon-chime-sdk-js/interfaces/audiovideocontrollerfacade.html#setvideocodecsendpreferences) 函數來設定傳送網路攝影機影片的編解碼器偏好設定。此連結會帶您前往 GitHub。

您的偏好設定會以有序陣列傳遞，您最偏好的編解碼器為先，最不偏好的編解碼器為最後。

提供多個轉碼器偏好設定時，服務會自動選取所有工作階段出席者可以解碼的最偏好轉碼器。

下列範例示範如何使用 VP8 的備用選項設定 VP9 的視訊轉碼器偏好設定： VP8

```
// A meeting session has already been created and stored in `this.meetingSession`
this.meetingSession.audioVideo.setVideoCodecSendPreferences(
	[
		VideoCodecCapability.vp9(), 
		VideoCodecCapability.vp8()
	]
);
```

下列案例適用於 偏好設定：
+ **最佳 ** – 用戶端使用 VP9 轉碼器編碼視訊。
+ **本機備用** – 如果用戶端不支援 VP9 編碼，則會回復為 VP8 編碼。如果用戶端不支援 VP8 編碼，則會回到瀏覽器和服務支援的任何轉碼器。
+ **遠端備用** – 如果工作階段中的另一個用戶端沒有 VP9 解碼器，則此用戶端會回復為 VP8 編碼。
+ **本機失敗** – 如果用戶端不支援 VP9 或 VP8 編碼，則不會傳送視訊。

若要設定內容共享的偏好設定，請使用 [ ContentShareControllerFacade.setContentShareVideoCodecPreferences ](https://aws.github.io/amazon-chime-sdk-js/interfaces/contentsharecontrollerfacade.html#setcontentsharevideocodecpreferences) 函數來設定傳送內容影片的編解碼器偏好設定。此連結會帶您前往 GitHub。

 下列範例為 VP9 設定內容視訊轉碼器偏好設定，並使用 VP8 的備用選項。

```
// A meeting session has already been created and stored in `this.meetingSession`
    this.meetingSession.audioVideo.setContentShareVideoCodecPreferences(
	[
	VideoCodecCapability.vp9(), 
	VideoCodecCapability.vp8()
	]
);
```

# 為 Amazon Chime SDK 會議設定您的網路
<a name="network-config"></a>

當您將 Amazon Chime 開發套件整合到您的用戶端應用程式時，開發套件會連線至其後端服務，以傳送和接收音訊、影片、內容共用和資料訊息。如果您使用者的網路封鎖流向 Amazon Chime SDK 服務的流量，其使用該服務的能力將會受到影響。網路管理員可以使用此資訊來重新設定其網路，以允許存取 Amazon Chime SDK 服務。

**注意**  
當您設定網路時，預設必須啟用 DNS (EDNS0) 的延伸機制。這可讓您的應用程式透過確保主機資訊是 UDP 封包的正確大小來連接 Amazon Chime SDK 服務。

**Topics**
+ [針對媒體和訊號設定](#media-signaling)
+ [為 Amazon Voice Focus 設定](#voice-focus-config)
+ [設定 以降低回音](#echo-reduction)
+ [設定背景替換和模糊](#config-blur)
+ [設定瀏覽器內容安全政策](#configure-browser-policy)
+ [針對 Amazon Chime SDK 使用 AppKeys 和 TenantIDs](app-keys-tenant-ids.md)

## 針對媒體和訊號設定
<a name="media-signaling"></a>

Amazon Chime SDK 音訊、影片和內容會盡可能使用使用者資料包通訊協定 (UDP) 傳輸。如果 UDP 遭到封鎖，Amazon Chime SDK 會嘗試建立用於雙向媒體傳輸的 Transport Layer Security (TLS) 連線。Amazon Chime SDK 訊號和資料訊息使用傳輸控制通訊協定 (TCP) 和 WebSocket 連線。

下圖顯示具有執行 Amazon Chime SDK 應用程式的一般網路。

![\[設定為執行 Amazon Chime SDK 應用程式的網路，可在 SDK 與會議之間進行雙向通訊。\]](http://docs.aws.amazon.com/zh_tw/chime-sdk/latest/dg/images/net-config-diagram.png)


Amazon Chime SDK 使用下列目的地和連接埠進行媒體和訊號傳送。


| 網域 | IPv4 子網路 | IPv6 子網路 | 連接埠 | 
| --- | --- | --- | --- | 
| \$1.chime.aws | 99.77.128.0/18 | 2600：f0f0：4100：：/40 | TCP:443 UDP:3478 | 

此子網路是 [AWS IP 地址範圍內](https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html)`CHIME_MEETINGS`的服務。

## 為 Amazon Voice Focus 設定
<a name="voice-focus-config"></a>

適用於 iOS 和 Android 的 Amazon Chime SDK 用戶端程式庫包含 Amazon Voice Focus 模組。適用於 JavaScript 的 Amazon Chime SDK 用戶端程式庫會從 Amazon CloudFront 下載 Amazon Voice Focus 模組。適用於 Windows 的 Amazon Chime SDK 用戶端程式庫不支援 Voice Focus。

Amazon Voice Focus 使用以下目的地和連接埠。


| 網域 | 連接埠 | 
| --- | --- | 
| \$1.sdkassets.chime.aws | TCP:443 | 

此子網路是 [AWS IP 地址範圍內](https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html)`CLOUDFRONT`的服務。

## 設定 以降低回音
<a name="echo-reduction"></a>

適用於 JavaScript 的 Amazon Chime SDK 用戶端程式庫會從 Amazon CloudFront 下載回聲消除模組。

回音縮減使用下列目的地和連接埠。


| 網域 | 連接埠 | 
| --- | --- | 
| \$1.sdkassets.chime.aws | TCP:443 | 

此子網路是 [AWS IP 地址範圍內](https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html)`CLOUDFRONT`的服務。

## 設定背景替換和模糊
<a name="config-blur"></a>

適用於 JavaScript 的 Amazon Chime SDK 用戶端程式庫會從 Amazon CloudFront 下載背景替換和模糊模組。

背景替換和模糊使用下列目的地和連接埠。


| 網域 | 連接埠 | 
| --- | --- | 
| \$1.sdkassets.chime.aws | TCP:443 | 

此子網路是 [AWS IP 地址範圍內](https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html)`CLOUDFRONT`的服務。

## 設定瀏覽器內容安全政策
<a name="configure-browser-policy"></a>

當您使用適用於 JavaScript 的 Amazon Chime SDK 用戶端程式庫建置應用程式時，您需要在應用程式中設定瀏覽器內容安全政策。如需詳細資訊，請參閱 GitHub 上的[內容安全政策指南](https://aws.github.io/amazon-chime-sdk-js/modules/contentsecurity_policy.html)。

# 針對 Amazon Chime SDK 使用 AppKeys 和 TenantIDs
<a name="app-keys-tenant-ids"></a>

您可以使用 AppKeys 和 TenantIDs限制*從網路*到特定應用程式的 Amazon Chime SDK WebRTC 媒體工作階段的存取。

開發人員使用 Amazon Chime 開發套件來建立應用程式，透過 UDP 傳送和接收即時影片。應用程式使用者需要 UDP 存取[https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html](https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html)子網路。Organizations （網路擁有者） 可以使用 AppKeys 和 TenantIDs將網路的存取限制為僅限特定應用程式的 WebRTC 媒體工作階段。

**範例 1：使用 AppKeys**  
如果 App-A 和 App-B 使用 Amazon Chime SDK，組織可以允許 App-A 從其網路存取 WebRTC 媒體工作階段，但會封鎖 App-B 和任何其他使用 Amazon Chime SDK 的應用程式。組織可以使用 App-A 的 AppKey 和 HTTPS 代理來執行此操作。如需詳細資訊[限制對特定應用程式的存取](#limit-app-access)，請參閱本主題稍後的 。

**範例 2：使用 AppKeys和 TenantIDs**  
如果 App-A 可公開使用，且許多客戶使用，則組織可能希望允許 App-A 僅在其使用者屬於工作階段的一部分時，才從其網路存取 WebRTC 媒體工作階段，並封鎖對所有其他 App-A 工作階段的存取。組織可以使用應用程式的 AppKey、組織的 TenantID 和 HTTPS 代理來執行此操作。如需詳細資訊，請參閱本主題[限制對特定租用戶的存取](#limit-tenant-access)稍後的 。

若要使用 AppKeys 和 TenantIDs您必須具有 HTTPS 代理伺服器，允許將 HTTPS 標頭新增至請求。下圖顯示 AppKeys 和 TenantIDs 的運作方式。

![\[圖表顯示 AppKeys 和 TenantIDs如何控制應用程式和租戶對 WebRTC 工作階段的存取。\]](http://docs.aws.amazon.com/zh_tw/chime-sdk/latest/dg/images/app-key-diagram.png)


在映像中，App-A 具有租用戶 A-1 和 A-2，而 App-B 具有租用戶 B-1 和 B-2。在此情況下，AppKey 僅允許 App-A 連線至 WebRTC 媒體工作階段，而租戶 ID 僅允許租戶 A-1 連線至工作階段。

**Topics**
+ [限制對特定應用程式的存取](#limit-app-access)
+ [限制對特定租用戶的存取](#limit-tenant-access)
+ [HTTPS 標頭範例](#header-examples)

## 限制對特定應用程式的存取
<a name="limit-app-access"></a>

*AppKey* 是 Amazon Chime 為每個 AWS 帳戶建立的一致且唯一的 256 位元值。如果您沒有 AppKey，您可以從 Amazon Support 請求。如果您有多個 AWS 帳戶，您可以為所有帳戶請求通用 AppKey。

**注意**  
您可以安全地公開共用您的 AppKeys並讓其他組織限制從其網路存取。

Amazon Chime SDK 會根據用於建立工作階段 AWS 的帳戶 ID，自動將每個 WebRTC 媒體工作階段與 AppKey 建立關聯。若要限制*從網路*存取特定應用程式，請執行下列動作：

1. 透過 HTTPS Proxy 伺服器將所有傳出請求路由到`CHIME_MEETINGS`子網路。

1. 設定代理伺服器，將下列標頭新增至`CHIME_MEETINGS`子網路的所有傳出請求：

   `X-Amzn-Chime-App-Keys:` *允許 AppKeys 的逗號分隔清單*。

   例如， `X-Amzn-Chime-App-Keys:AppKey-A,AppKey-B,AppKey-C` 允許與這些 AppKeys 相關聯的應用程式存取子網路。

Amazon Chime SDK 會檢查 `X-Amzn-Chime-App-Keys`標頭的傳入 WebRTC 媒體工作階段連線，並套用下列邏輯：

1. 如果`X-Amzn-Chime-App-Keys`標頭存在並包含工作階段的 AppKey，請接受連線。

1. 如果`X-Amzn-Chime-App-Keys`標頭存在，但不包含工作階段的 AppKey，請拒絕 403 錯誤的連線。

1. 如果`X-Amzn-Chime-App-Keys`標頭不存在，請接受連線。如果使用者可以從組織網路外部存取應用程式，他們也可以存取工作階段。

## 限制對特定租用戶的存取
<a name="limit-tenant-access"></a>

*TenantID* 是由開發人員建立的不透明識別符。請記住下列有關 TenantIDs的事項：
+ TenantIDs 不保證應用程式之間是唯一的，因此您必須為每個 TenantID 清單指定 AppKey。
+ TenantIDs 具有大小寫意義。完全依照開發人員的處方輸入。
+ 組織可以限制對多個應用程式的存取，但只能為其中一些應用程式指定 TenantIDs。沒有 TenantIDs的應用程式可以連線至所有 WebRTC 媒體工作階段。

若要將媒體工作階段與 TenantIDs建立關聯，開發人員必須先將 `TenantIds` 屬性和 TenantIDs清單新增至 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeeting.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeeting.html)或 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeetingWithAttendees.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeetingWithAttendees.html)請求。

例如：

`CreateMeeting(..., TenantIds : [ tenantId1, tenantId2 ] )`

若要在特定應用程式中限制從組織網路到其 WebRTC 媒體工作階段的存取，請執行下列動作：

1. 請遵循 [限制對特定應用程式的存取](#limit-app-access) 中的步驟。

1. 設定 HTTPS Proxy 伺服器，在傳出連線上新增 `X-Amzn-Chime-Tenants` 標頭。包含 AppKeys 和 TenantIDs的清單，如本範例所示進行分隔： `X-Amzn-Chime-Tenants: AppKey-A:tenantId-A-1,tenantId-A-2;AppKey-B:tenantId-B-1,tenantId-B-2`

Amazon Chime SDK 會檢查 `X-Amzn-Chime-Tenants`標頭的傳入 WebRTC 媒體工作階段連線，並套用下列邏輯：
+ 如果 標頭包含工作階段的 `AppKey:tenantId`，請接受連線。
+ 如果標頭包含工作階段的 ，`AppKey`但沒有相符的 `tenantId`，請拒絕具有 403 錯誤的連線。
+ 如果標頭*不包含*工作階段的 `AppKey`，請接受連線。
+ 如果標頭包含工作階段的 `AppKey`，但工作階段沒有至少一個允許的 `tenantId`，請拒絕具有 403 錯誤的連線。這可能是開發人員錯誤。
+ 如果標頭不存在，請接受連線。如果使用者可以從組織網路外部存取應用程式，他們也可以存取所有工作階段。

## HTTPS 標頭範例
<a name="header-examples"></a>

下列範例顯示使用 HTTPS 標頭中的 AppKeys 和 TenantIDs 的一些方法。

**一個具有一個租用戶的應用程式**  
`X-Amzn-Chime-App-Keys: AppKey`  
`X-Amzn-Chime-Tenants: AppKey:orgId`  
使用者只能在指定的應用程式中存取組織的 WebRTC 媒體工作階段。所有其他應用程式都會遭到封鎖。

**一個具有兩個租用戶的應用程式**  
`X-Amzn-Chime-App-Keys: AppKey`  
`X-Amzn-Chime-Tenants: AppKey:engineeringId,salesId`  
使用者只能在指定的應用程式中存取用於工程和銷售的媒體工作階段。所有其他應用程式都會遭到封鎖。

**兩個應用程式，一個僅限租用戶**  
`X-Amzn-Chime-App-Keys: AppKey1,AppKey2`  
`X-Amzn-Chime-Tenants: AppKey1:orgId`  
使用者只能存取應用程式 1 中的組織媒體工作階段，以及應用程式 2 中的任何工作階段。所有其他應用程式都會遭到封鎖。

# 了解 Amazon Chime SDK 會議生命週期事件
<a name="using-events"></a>

Amazon Chime SDK 會傳送會議生命週期事件，您可以用來觸發通知和啟動下游工作流程。使用會議事件的一些範例包括：
+ 當出席者加入或離開 Amazon Chime SDK 會議時更新中繼資料。
+ 實作 Amazon Chime SDK 會議的推送通知或名單。
+ 測量 Amazon Chime SDK 會議的影片和內容共用使用情況。

您可以將事件傳送至 Amazon EventBridge、Amazon Simple Notification Service (SNS) 和 Amazon Simple Queue Service (SQS)。如需詳細資訊，請參閱《*Amazon EventBridge 使用者指南*》中的[來自 AWS 服務的事件](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-service-event.html)。

## Amazon Chime SDK 會議開始
<a name="sdk-start-mtg"></a>

Amazon Chime SDK 會在新會議開始時傳送此事件。

**Example 事件資料**  
下列範例顯示此事件的資料。  

```
{
  "version": "0",
  "source": "aws.chime",
  "account": "111122223333",  
  "region": "us-east-1",
  "detail-type": "Chime Meeting State Change",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "resources": []
  "detail": {
    "version": "0",
    "eventType": "chime:MeetingStarted",
    "timestamp": 12344566754,
    "meetingId": "87654321-4321-4321-1234-111122223333",    
    "externalMeetingId": "87654321-4321-4321-1234-111122223333",
    "mediaRegion": "us-east-1"
  }
}
```

## Amazon Chime SDK 會議結束
<a name="sdk-end-mtg"></a>

Amazon Chime SDK 會在作用中會議結束時傳送此事件。

**注意**  
為了提高效率，當您呼叫 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_DeleteMeeting.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_DeleteMeeting.html) API 時，服務也會傳送此事件。

**Example 事件資料**  
下列範例顯示此事件的資料。  

```
{
  "version": "0",
  "source": "aws.chime",
  "account": "111122223333",  
  "region": "us-east-1",
  "detail-type": "Chime Meeting State Change",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "resources": []
  "detail": {
    "version": "0",
    "eventType": "chime:MeetingEnded",
    "timestamp": 12344566754,
    "meetingId": "87654321-4321-4321-1234-111122223333",    
    "externalMeetingId": "87654321-4321-4321-1234-111122223333",
    "mediaRegion": "us-east-1"
  }
}
```

## 已新增 Amazon Chime SDK 出席者
<a name="sdk-add-attendee"></a>

當新的出席者新增至作用中會議時，Amazon Chime SDK 會傳送此事件。

**Example 事件資料**  
下列範例顯示此事件的資料。  

```
{
  "version": "0",
  "source": "aws.chime",
  "account": "111122223333",  
  "region": "us-east-1",
  "detail-type": "Chime Meeting State Change",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "resources": []
  "detail": {
    "version": "0",
    "eventType": "chime:AttendeeAdded",
    "timestamp": 12344566754,
    "meetingId": "87654321-4321-4321-1234-111122223333",
    "attendeeId": "87654321-4321-4321-1234-111122223333",
    "externalUserId": "87654321-4321-4321-1234-111122223333",
    "externalMeetingId": "87654321-4321-4321-1234-111122223333",
    "mediaRegion": "us-east-1"
  }
}
```

## Amazon Chime SDK 出席者已刪除
<a name="sdk-remove-attendee"></a>

當您使用 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_DeleteAttendee.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_DeleteAttendee.html) API 從作用中會議移除出席者時，Amazon Chime SDK 會傳送此事件。

**Example 事件資料**  
下列範例顯示此事件的資料。  

```
{
  "version": "0",
  "source": "aws.chime",
  "account": "111122223333", 
  "region": "us-east-1",
  "detail-type": "Chime Meeting State Change",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "resources": []
  "detail": {
    "version": "0",
    "eventType": "chime:AttendeeDeleted",
    "timestamp": 12344566754,
    "meetingId": "87654321-4321-4321-1234-111122223333",
    "attendeeId": "87654321-4321-4321-1234-111122223333",
    "externalUserId": "87654321-4321-4321-1234-111122223333",
    "externalMeetingId": "87654321-4321-4321-1234-111122223333",
    "mediaRegion": "us-east-1"
  }
}
```

## Amazon Chime SDK 出席者已獲授權
<a name="sdk-auth-attendee"></a>

當已加入會議的使用者使用相同的聯結字符再次加入會議時，Amazon Chime SDK 會傳送此事件。例如，使用者可以從桌上型電腦切換到行動裝置。這會有效地「將會議」交給新裝置。

**Example 事件資料**  
下列範例顯示此事件的資料。  

```
{
  "version": "0",
  "source": "aws.chime",
  "account": "111122223333",  
  "region": "us-east-1",
  "detail-type": "Chime Meeting State Change",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "resources": []
  "detail": {
    "version": "0",
    "eventType": "chime:AttendeeAuthorized",
    "timestamp": 12344566754,
    "meetingId": "87654321-4321-4321-1234-111122223333",
    "attendeeId": "87654321-4321-4321-1234-111122223333",
    "externalUserId": "87654321-4321-4321-1234-111122223333",
    "externalMeetingId": "87654321-4321-4321-1234-111122223333",
    "mediaRegion": "us-east-1"
  }
}
```

## Amazon Chime SDK 出席者參加會議
<a name="sdk-join-attendee"></a>

當現有出席者使用指定的網路傳輸加入 Amazon Chime SDK 會議時，Amazon Chime SDK 會傳送此事件。

**Example 事件資料**  
下列範例顯示此事件的資料。  

```
{
  "version": "0",
  "source": "aws.chime",
  "account": "111122223333", 
  "region": "us-east-1",
  "detail-type": "Chime Meeting State Change",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "resources": []
  "detail": {
    "version": "0",
    "eventType": "chime:AttendeeJoined",
    "timestamp": 12344566754,
    "meetingId": "87654321-4321-4321-1234-111122223333",
    "attendeeId": "87654321-4321-4321-1234-111122223333",
    "externalUserId": "87654321-4321-4321-1234-111122223333",    
    "networkType": "Voip",
    "externalMeetingId": "87654321-4321-4321-1234-111122223333",
    "mediaRegion": "us-east-1"
  }
}
```

## Amazon Chime SDK 出席者離開會議
<a name="sdk-leave-attendee"></a>

當現有出席者使用指定的網路傳輸離開 Amazon Chime SDK 會議時，Amazon Chime SDK 會傳送此事件。

**注意**  
服務絕不會針對相同的「離開」動作傳送 `chime:AttendeeLeft` AND `chime:AttendeeDropped`事件。捨棄和離開是不同的動作，系統會傳送對應至每個動作的事件。  
例如，假設連線不佳的出席者在上午 11 點參加會議。您可以預期下列動作：  

```
11:00 API – CreateAttendee, CreateMeetingWithAttendee, or BatchCreateAttendee
11:00   Event – chime:AttendeeAdded
11:01 Action – user joins meeting
11:01   Event – chime:AttendeeJoined
11:02 Action – user's connection drops
11:02   Event – chime:AttendeeDropped
11:03 Action – user's connection restored
11:03   Event – chime:AttendeeJoined
11:30 Action – user leaves meeting
11:30   Event – chime:AttendeeLeft
```

**Example 事件資料**  
下列範例顯示此事件的資料。  

```
{
  "version": "0",
  "source": "aws.chime",
  "account": "111122223333",  
  "region": "us-east-1",
  "detail-type": "Chime Meeting State Change",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "resources": []
  "detail": {
    "version": "0",
    "eventType": "chime:AttendeeLeft",
    "timestamp": 12344566754,
    "meetingId": "87654321-4321-4321-1234-111122223333",
    "attendeeId": "87654321-4321-4321-1234-111122223333",
    "externalUserId": "87654321-4321-4321-1234-111122223333",
    "networkType": "Voip",
    "externalMeetingId": "87654321-4321-4321-1234-111122223333",
    "mediaRegion": "us-east-1"
  }
}
```

## Amazon Chime SDK 出席者已從會議中刪除
<a name="sdk-drop-attendee"></a>

Amazon Chime SDK 會在目前出席者從 Amazon Chime SDK 會議退出時傳送此事件，通常是因為連線不佳。當服務在 10-15 秒內未收到封包時，會認為用戶端已捨棄並發出事件。

服務通常會觸發捨棄動作，但用戶端也可以觸發它們。例如，假設使用者將其筆記型電腦從 Wi-Fi 切換到乙太網路。這會構成網路轉接器變更，並重設連線。反之，這會重設 Websocket 並觸發合併的捨棄加入動作。

**注意**  
服務絕不會針對相同的「離開」動作傳送 `chime:AttendeeLeft` AND `chime:AttendeeDropped`事件。捨棄和離開是不同的動作，系統會傳送對應至每個動作的事件。  
例如，假設連線不佳的出席者在上午 11 點參加會議。您可以預期下列動作：  

```
11:00 API – CreateAttendee, CreateMeetingWithAttendee, or BatchCreateAttendee
11:00   Event – chime:AttendeeAdded
11:01 Action – user joins meeting
11:01   Event – chime:AttendeeJoined
11:02 Action – user's connection drops
11:02   Event – chime:AttendeeDropped
11:03 Action – user's connection restored
11:03   Event – chime:AttendeeJoined
11:30 Action – user leaves meeting
11:30   Event – chime:AttendeeLeft
```

**Example 事件資料**  
下列範例顯示此事件的資料。  

```
{
  "version": "0",
  "source": "aws.chime",
  "account": "111122223333",  
  "region": "us-east-1",
  "detail-type": "Chime Meeting State Change",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "resources": []
  "detail": {
    "version": "0",
    "eventType": "chime:AttendeeDropped",
    "timestamp": 12344566754,
    "meetingId": "87654321-4321-4321-1234-111122223333",
    "attendeeId": "87654321-4321-4321-1234-111122223333",
    "externalUserId": "87654321-4321-4321-1234-111122223333",  
    "networkType": "Voip",
    "externalMeetingId": "87654321-4321-4321-1234-111122223333",
    "mediaRegion": "us-east-1"
  }
}
```

## Amazon Chime SDK 出席者開始串流影片
<a name="sdk-attendee-video-start"></a>

當現有出席者開始串流影片時，Amazon Chime SDK 會傳送此事件。

**Example 事件資料**  
下列範例顯示此事件的資料。  

```
{
  "version": "0",
  "source": "aws.chime",
  "account": "111122223333", 
  "region": "us-east-1",
  "detail-type": "Chime Meeting State Change",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "resources": []
  "detail": {
    "version": "0",
    "eventType": "chime:AttendeeVideoStarted",
    "timestamp": 12344566754,
    "meetingId": "87654321-4321-4321-1234-111122223333",
    "attendeeId": "87654321-4321-4321-1234-111122223333",
    "externalUserId": "87654321-4321-4321-1234-111122223333",
    "externalMeetingId": "87654321-4321-4321-1234-111122223333",
    "mediaRegion": "us-east-1"
  }
}
```

## Amazon Chime SDK 出席者停止串流影片
<a name="sdk-attendee-video-stop"></a>

當現有出席者停止串流影片時，Amazon Chime SDK 會傳送此事件。

**Example 事件資料**  
下列範例顯示此事件的資料。  

```
{
  "version": "0",
  "source": "aws.chime",
  "account": "111122223333", 
  "region": "us-east-1",
  "detail-type": "Chime Meeting State Change",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "resources": []
  "detail": {
    "version": "0",
    "eventType": "chime:AttendeeVideoStopped",
    "timestamp": 12344566754,
    "meetingId": "87654321-4321-4321-1234-111122223333",
    "attendeeId": "87654321-4321-4321-1234-111122223333",
    "externalUserId": "87654321-4321-4321-1234-111122223333",
    "externalMeetingId": "87654321-4321-4321-1234-111122223333",
    "mediaRegion": "us-east-1"
  }
}
```

## Amazon Chime SDK 出席者開始共用畫面
<a name="sdk-attendee-screenshare-start"></a>

當現有出席者開始共用其畫面時，Amazon Chime SDK 會傳送此事件。

**Example 事件資料**  
下列範例顯示此事件的資料。  

```
{
  "version": "0",
  "source": "aws.chime",
  "account": "111122223333",  
  "region": "us-east-1",
  "detail-type": "Chime Meeting State Change",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "resources": []
  "detail": {
    "version": "0",
    "eventType": "chime:AttendeeContentVideoStarted",
    "timestamp": 12344566754,
    "meetingId": "87654321-4321-4321-1234-111122223333",
    "attendeeId": "87654321-4321-4321-1234-111122223333",
    "externalUserId": "87654321-4321-4321-1234-111122223333",
    "externalMeetingId": "87654321-4321-4321-1234-111122223333",
    "mediaRegion": "us-east-1"
  }
}
```

## Amazon Chime SDK 出席者停止共用畫面
<a name="sdk-attendee-screenshare-stop"></a>

當現有出席者停止共用其畫面時，Amazon Chime SDK 會傳送此事件。

**Example 事件資料**  
下列範例顯示此事件的資料。  

```
{
  "version": "0",
  "source": "aws.chime",
  "account": "111122223333",  
  "region": "us-east-1",
  "detail-type": "Chime Meeting State Change",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "resources": []
  "detail": {
    "version": "0",
    "eventType": "chime:AttendeeContentVideoStopped",
    "timestamp": 12344566754,
    "meetingId": "87654321-4321-4321-1234-111122223333",
    "attendeeId": "87654321-4321-4321-1234-111122223333",
    "externalUserId": "87654321-4321-4321-1234-111122223333",
    "externalMeetingId": "87654321-4321-4321-1234-111122223333",
    "mediaRegion": "us-east-1"
  }
}
```

## Amazon Chime SDK 出席者功能已更新
<a name="sdk-attendee-capability-updated"></a>

更新現有出席者的功能時，Amazon Chime SDK 會傳送此事件。

**Example 事件資料**  

```
{
  "version": "0",
  "source": "aws.chime",
  "account": "111122223333",
  "id": "12345678-1234-1234-1234-111122223333",
  "region": "us-east-1",
  "detail-type": "Chime Meeting State Change",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "resources": [],
  "detail": {
    "version": "0",
    "eventType": "chime:AttendeeCapabilitiesUpdated",
    "success": "1", // value can be 1 or 0. 1 means success, 0 means failure
    "timestamp": 12344566754,
    "meetingId": "87654321-4321-4321-1234-111122223333",
    "externalMeetingId": "mymeeting",
    "attendeeId": "attendeeId",
    "externalUserId": "externalUserId"
    "mediaRegion": "us-east-1"
    "attendeeCapabilities": {
    "audio": "SendReceive",
    "video": "SendReceive",
    "content": "SendReceive"
   }
  }
}
```

## Amazon Chime SDK 出席者內容加入會議
<a name="sdk-content-join"></a>

當內容共用使用指定的網路傳輸加入 Amazon Chime SDK 會議時，Amazon Chime SDK 會傳送此事件。

**Example 事件資料**  
下列範例顯示此事件的資料。  

```
{
  "version": "0",
  "source": "aws.chime",
  "account": "111122223333",  
  "region": "us-east-1",
  "detail-type": "Chime Meeting State Change",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "resources": []
  "detail": {
    "version": "0",
    "eventType": "chime:AttendeeContentJoined",
    "timestamp": 12344566754,
    "meetingId": "87654321-4321-4321-1234-111122223333",
    "attendeeId": "87654321-4321-4321-1234-111122223333",
    "externalUserId": "87654321-4321-4321-1234-111122223333",
    "networkType": "Voip",
    "externalMeetingId": "87654321-4321-4321-1234-111122223333",
    "mediaRegion": "us-east-1"
  }
}
```

## Amazon Chime SDK 出席者內容離開會議
<a name="sdk-content-leave"></a>

當內容共用使用指定的網路傳輸離開 Amazon Chime SDK 會議時，Amazon Chime SDK 會傳送此事件。

**Example 事件資料**  
下列範例顯示此事件的資料。  

```
{
  "version": "0",
  "source": "aws.chime",
  "account": "111122223333",  
  "region": "us-east-1",
  "detail-type": "Chime Meeting State Change",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "resources": []
  "detail": {
    "version": "0",
    "eventType": "chime:AttendeeContentLeft",
    "timestamp": 12344566754,
    "meetingId": "87654321-4321-4321-1234-111122223333",
    "attendeeId": "87654321-4321-4321-1234-111122223333",
    "externalUserId": "87654321-4321-4321-1234-111122223333",
    "networkType": "Voip",
    "externalMeetingId": "87654321-4321-4321-1234-111122223333",
    "mediaRegion": "us-east-1"
  }
}
```

## Amazon Chime SDK 出席者內容從會議中刪除
<a name="sdk-content-drop"></a>

當內容共用從 Amazon Chime SDK 會議下降時，Amazon Chime SDK 會傳送此事件，通常是因為頻寬低。

**Example 事件資料**  
下列範例顯示此事件的資料。  

```
{
  "version": "0",
  "source": "aws.chime",
  "account": "111122223333",  
  "region": "us-east-1",
  "detail-type": "Chime Meeting State Change",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "resources": []
  "detail": {
    "version": "0",
    "eventType": "chime:AttendeeContentDropped",
    "timestamp": 12344566754,
    "meetingId": "87654321-4321-4321-1234-111122223333",
    "attendeeId": "87654321-4321-4321-1234-111122223333",
    "externalUserId": "87654321-4321-4321-1234-111122223333",
    "networkType": "Voip",
    "externalMeetingId": "87654321-4321-4321-1234-111122223333",
    "mediaRegion": "us-east-1"
  }
}
```

## Amazon Chime SDK 出席者內容開始串流影片
<a name="sdk-content-start-stream"></a>

當內容共用開始串流影片時，Amazon Chime SDK 會傳送此事件。

**Example 事件資料**  
下列範例顯示此事件的資料。  

```
{
  "version": "0",
  "source": "aws.chime",
  "account": "111122223333",  
  "region": "us-east-1",
  "detail-type": "Chime Meeting State Change",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "resources": []
  "detail": {
    "version": "0",
    "eventType": "chime:AttendeeContentVideoStarted",
    "timestamp": 12344566754,
    "meetingId": "87654321-4321-4321-1234-111122223333",
    "attendeeId": "87654321-4321-4321-1234-111122223333",
    "externalUserId": "87654321-4321-4321-1234-111122223333",
    "externalMeetingId": "87654321-4321-4321-1234-111122223333",
    "mediaRegion": "us-east-1"
  }
}
```

## Amazon Chime SDK 出席者內容會停止串流影片
<a name="sdk-content-stop-stream"></a>

當內容共用停止串流影片時，Amazon Chime SDK 會傳送此事件。

**Example 事件資料**  
下列範例顯示此事件的資料。  

```
{
  "version": "0",
  "source": "aws.chime",
  "account": "111122223333", 
  "region": "us-east-1",
  "detail-type": "Chime Meeting State Change",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "resources": []
  "detail": {
    "version": "0",
    "eventType": "chime:AttendeeContentVideoStopped",
    "timestamp": 12344566754,
    "meetingId": "87654321-4321-4321-1234-111122223333",
    "attendeeId": "87654321-4321-4321-1234-111122223333",
    "externalUserId": "87654321-4321-4321-1234-111122223333",
    "externalMeetingId": "87654321-4321-4321-1234-111122223333",
    "mediaRegion": "us-east-1"
  }
}
```

# 了解 Amazon Chime SDK 會議的 Amazon CloudWatch 指標
<a name="sdk-usage-metrics"></a>

當您使用 Amazon Chime SDK 時，它會將服務和用量指標傳送至 CloudWatch。這些指標可讓您使用 CloudWatch 圖形和儀表板來監控如何使用 Amazon Chime SDK 服務。指標會擷取您呼叫的每個 API 的資料。

下列各節會列出並描述指標。

**Topics**
+ [服務指標](#service-metrics)
+ [API 用量指標](#usage-metrics)

## 服務指標
<a name="service-metrics"></a>

Amazon Chime SDK 會將下列服務指標發佈至`AWS/ChimeSDK`命名空間：


| 指標 | 單位 | 描述 | 
| --- | --- | --- | 
| `AttendeeAuthorizationSuccess` | 計數 | 成功授權嘗試的總計數。成功表示允許出席者參加會議。 | 
| `AttendeeAuthorizationError` | 計數 | 授權失敗的總數，表示出席者無法加入會議。 | 
| `AttendeeAudioDrops` | 計數 | 音訊下降的總計數。 | 
| `AttendeeContentDrops` | 計數 | 內容共用捨棄的總計數。 | 
| `MeetingSQSNotificationErrors` | 計數 | SQS 通知錯誤的總計數。 | 
| `MeetingSNSNotificationErrors` | 計數 | SNS 通知錯誤的總計數。 | 

## API 用量指標
<a name="usage-metrics"></a>

API 用量指標對應至 AWS 服務配額。您可以設定警示，在您的用量接近服務配額時發出警示。如需 CloudWatch 整合服務配額的詳細資訊，請參閱《*Amazon CloudWatch 使用者指南*》中的 [AWS 用量指標](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Service-Quota-Integration.html)。

Amazon Chime SDK 會在`AWS/Usage`命名空間中發佈下列 API 指標，並使用`ChimeSDK`服務名稱。


| 指標 | 描述 | 
| --- | --- | 
| `CallCount` | 對 Amazon Chime SDK 中的 API 進行的呼叫總數。SUM 代表指定期間內對 API 的呼叫總數。 | 
| `ErrorCount` | API 在 Amazon Chime SDK 中擲出的錯誤總數。SUM 代表指定期間內對 API 的呼叫總數。 | 
| `ThrottleCount` | Amazon Chime SDK 中 API 擲回的調節錯誤總數。SUM，代表指定期間內對 API 的呼叫總數。 | 

Amazon Chime SDK 會將用量指標發佈至具有下列維度的`AWS/Usage`命名空間：


| 維度 | 描述 | 
| --- | --- | 
| Service (服務) | 包含 資源 AWS 的服務名稱。對於 Amazon Chime SDK 用量指標，此維度的值為 `ChimeSDK`。 | 
| Type | 要報告的實體類型。Amazon Chime SDK 用量指標的唯一有效值是 `API`。 | 
| 資源 | 報告 指標的資源類型。對於 Amazon Chime SDK 用量指標，此維度的值是 API 的名稱。 | 
| 類別 | 正在追蹤的資源類別。Amazon Chime SDK 指標的唯一有效值是 `None`。 | 

# 建立 Amazon Chime SDK 媒體管道
<a name="media-pipelines"></a>

在本節中，我們會示範如何建立用來擷取或串流 Amazon Chime SDK 會議的媒體管道。開始之前，您必須將用戶端應用程式與 Amazon Chime SDK 用戶端程式庫整合。如需詳細資訊，請參閱[了解 Amazon Chime SDK 用戶端程式庫](mtgs-sdk-client-lib.md)。如需媒體管道的詳細資訊，請參閱*AWS 商業生產力部落格*中的[使用媒體管道擷取 Amazon Chime SDK 會議](https://aws.amazon.com/blogs//business-productivity/capture-amazon-chime-sdk-meetings-using-media-capture-pipelines/)。

**重要**  
您和您的最終使用者必須了解，錄製 Amazon Chime SDK 會議可能受到有關錄製電子通訊的法律和法規的約束。您和您的最終使用者有責任遵守有關錄製的所有適用法律，包括正確通知錄製工作階段中的所有參與者正在錄製工作階段或通訊，並取得他們的同意。  
您和您的最終使用者需負責使用媒體即時連接器服務進行所有內容串流，且必須確保此類內容不會違反法律、侵犯或盜用任何第三方的權利，或以其他方式違反您與 Amazon 協議的重要條款。

**Topics**
+ [建立 Amazon Chime SDK 媒體管道的考量事項](creating-media-pipelines-considerations.md)
+ [了解作用中 Amazon Chime SDK 媒體管道的預設限制](media-pipelines-limits.md)
+ [遷移至 Amazon Chime SDK 媒體管道命名空間](migrate-pipelines.md)
+ [了解 Amazon Chime SDK 媒體管道的建立](create-pipeline.md)
+ [為 Amazon Chime SDK 會議建立媒體擷取管道](capture-pipe-config.md)
+ [為 Amazon Chime SDK 會議建立媒體串連管道](create-concat-pipe.md)
+ [為 Amazon Chime SDK 會議建立媒體即時連接器管道](connector-pipe-config.md)
+ [使用 Amazon Chime SDK 建立媒體串流管道](create-media-stream-pipeline.md)
+ [在 Amazon Chime SDK 會議中將音訊和視訊合成為單一檢視](pipeline-compositing.md)
+ [為 Amazon Chime SDK 媒體管道建立服務連結角色](create-pipeline-role.md)
+ [使用 Amazon Chime SDK 媒體管道事件](media-pipe-events.md)
+ [停止 Amazon Chime SDK 媒體管道的最佳實務](stop-pipe-best-practices.md)

# 建立 Amazon Chime SDK 媒體管道的考量事項
<a name="creating-media-pipelines-considerations"></a>

媒體管道可以包含下列其中一個管道：
+ **媒體擷取** – 使用媒體擷取管道來擷取音訊、影片和內容共用串流，以及會議事件和資料訊息。所有媒體擷取管道都會將其資料儲存至您建立的 [Amazon Simple Storage Service](https://aws.amazon.com/s3/) (S3) 儲存貯體。您可以為每個 Amazon Chime SDK 會議建立一個媒體擷取管道。如需詳細資訊，請參閱 [了解 Amazon Chime SDK 媒體管道的建立](create-pipeline.md)。
+ **媒體串連** – 使用媒體串連管道串連媒體擷取管道中的成品。串連管道的運作與媒體擷取和即時連接器管道無關。如需詳細資訊，請參閱 [為 Amazon Chime SDK 會議建立媒體串連管道](create-concat-pipe.md)。
+ **媒體即時連接器** – 使用媒體即時連接器管道來連線至可讓您將 Amazon Chime SDK 會議串流至 RTMP 端點的服務。每個 Amazon Chime SDK 會議最多可以建立一個媒體即時連接器管道。如需詳細資訊，請參閱 [為 Amazon Chime SDK 會議建立媒體即時連接器管道](connector-pipe-config.md)。
+ **媒體串流** – 使用媒體串流管道來擷取會議中所有出席者的個別音訊，以及媒體串連管道所產生的混合音訊。所有媒體串流管道都會將其資料儲存至 [ Amazon Kinesis Video Streams ](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/what-is-kinesis-video.html)(KVS)。如需詳細資訊，請參閱 [使用 Amazon Chime SDK 建立媒體串流管道](create-media-stream-pipeline.md)。

您建立的管道取決於您使用的命名空間。如果您使用 `Chime` 命名空間，您只能建立媒體擷取管道。如果您使用 `ChimeSdkMediaPipelines` 命名空間，也可以建立媒體串連和媒體即時連接器管道，並使用合成功能。如果您想要遷移到 `ChimeSdkMediaPipelines` 命名空間，請參閱 [遷移至 Amazon Chime SDK 媒體管道命名空間](migrate-pipelines.md)。

# 了解作用中 Amazon Chime SDK 媒體管道的預設限制
<a name="media-pipelines-limits"></a>

下表列出每個區域中作用中媒體管道的預設限制。每種管道類型都會計入限制。如果您超過任何區域的限制，[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaCapturePipeline.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaCapturePipeline.html)、 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaConcatenationPipeline.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaConcatenationPipeline.html)和 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaLiveConnectorPipeline.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaLiveConnectorPipeline.html) APIs 將擲回**資源限制超過例外**狀況。

您可以使用 AWS 主控台中的 **Service Quotas** 頁面來調整作用中管道限制，也可以聯絡[客戶支援代表](https://docs.aws.amazon.com/awssupport/latest/user/getting-started.html)。如需 Amazon Chime SDK 會議限制的詳細資訊，請參閱 [Amazon Chime SDK 的配額](meetings-sdk.md#mtg-limits)。


| 區域 | 預設作用中管道限制 | 
| --- | --- | 
| us-east-1 | 100 | 
| us-west-2 | 10 | 
| ap-northeast-1 | 10 | 
| ap-northeast-2 | 10 | 
| ap-south-1 | 10 | 
| ap-southeast-1 | 10 | 
| ap-southeast-2 | 10 | 
| ca-central-1 | 10 | 
| eu-central-1 | 10 | 
| eu-west-2 | 10 | 

# 遷移至 Amazon Chime SDK 媒體管道命名空間
<a name="migrate-pipelines"></a>

您可以使用 `ChimeSdkMediaPipelines` 命名空間來處理任何可用 AWS 區域中的媒體管道 API 端點。如果您剛開始使用 Amazon Chime SDK，請使用此命名空間。如需區域的詳細資訊，請參閱本指南[Amazon Chime SDK 的可用 AWS 區域](sdk-available-regions.md)中的 。

使用 [Amazon Chime](https://docs.aws.amazon.com/chime/latest/APIReference/API_Operations_Amazon_Chime.html) 命名空間的現有應用程式應計劃遷移到專用命名空間。

**Topics**
+ [遷移管道的原因](#pipeline-migration-reasons)
+ [遷移管道之前](#migration-prerequisites)

## 遷移管道的原因
<a name="pipeline-migration-reasons"></a>

基於下列原因，建議您遷移至 `ChimeSdkMediaPipelines` 命名空間：

**API 端點的選擇**  
Amazon Chime SDK Media Capture 命名空間是唯一可在任何區域中使用 API 端點的 API 命名空間。如需區域的詳細資訊，請參閱[Amazon Chime SDK 的可用 AWS 區域](sdk-available-regions.md)。如果您想要使用 以外的 API 端點`us-east-1`，則必須使用 `ChimeSdkMediaPipelines` 命名空間。如需目前端點的詳細資訊，請參閱本指南[API 映射](migrate-from-chm-namespace.md#name-end-map)中的 。

**更新和新的媒體管道 APIs**  
我們只會在`ChimeSdkMediaPipelines`命名空間中新增或更新媒體管道 APIs。

## 遷移管道之前
<a name="migration-prerequisites"></a>

遷移之前，請注意命名空間之間的差異。下表列出並說明它們。


| 項目 | 媒體管道命名空間 | Chime 命名空間 | 
| --- | --- | --- | 
|  命名空間名稱  |  ChimeSdkMediaPipelines  |  Chime  | 
|  區域  |  多個  |  僅限 us-east-1  | 
|  端點  |  https://media-pipelines-chime.*region*.amazonaws.com  |  https://service.chime.aws.amazon.com  | 
|  服務主體  |  mediapipelines.chime.amazonaws.com  |  chime.amazonaws.com  | 
|  API  |  僅限媒體管道APIs   |  Amazon Chime 媒體管道和其他部分的 APIs   | 
|  會議  |  `us-west-2`、 `ap-southeast-1`和 `eu-central-1`區域中的媒體管道僅適用於在 Amazon Chime SDK Meetings 命名空間中建立的會議。`us-east-1` 區域中的媒體管道可與任一命名空間中任何會議端點所建立的會議搭配使用。  |  媒體管道可與任一命名空間中任何會議端點建立的會議搭配使用。  | 
| 預設作用中媒體管道 | us-east-1 區域中為 100，us-west-2、ap-southeast-1 和 eu-central-1 區域中為 10。 | 僅限 us-east-1 中的 100。 | 
|  服務連結角色  |  AWSServiceRoleForAmazonChimeSDKMediaPipelines  |     | 
|  標籤  |  可用性  |  不適用於媒體管道 APIs。  | 
| CloudTrail 事件來源 | chime-sdk-media-pipelines.amazonaws.com | https：//chime.amazonaws.com。 | 
| 媒體即時連接器 | 可用性 |  不適用於媒體管道 APIs。  | 
| 合成 | 可用性 |  不適用於媒體管道 APIs。  | 
| 串連 | 可用性 | 不可用。 | 

下列清單提供有關 Chime 和 AWS ChimeSdkMediaPipelines 命名空間差異的詳細資訊。

**命名空間名稱**  
Amazon Chime SDK 命名空間使用`AWS.Chime`正式名稱。Amazon Chime SDK 媒體管道命名空間使用`AWS.ChimeSDKMediaPipelines`正式名稱。名稱的精確格式因平台而異。  
例如，Node.js 程式碼的這行會處理`chime`命名空間：  

```
const chimeMediaPipelines = AWS.Chime();
```
若要遷移至 Media Pipelines SDK 命名空間，請使用新的命名空間和端點區域更新該程式碼。  

```
const chimeMediaPipelines = AWS.ChimeSDKMediaPipelines({ region: "eu-central-1" });
```

**區域**  
Amazon Chime 命名空間僅處理 US-EAST-1 區域中的 API 端點。Amazon Chime SDK Media Pipelines 命名空間可處理任何區域中的 Amazon Chime SDK 媒體管道 API 端點。如需媒體管道區域的最新清單，請參閱本指南[Amazon Chime SDK 的可用 AWS 區域](sdk-available-regions.md)中的 。

**端點**  
若要修改媒體擷取管道，您必須使用您建立管道的相同端點。例如，如果您透過 eu-central-1 中的端點建立管道，則必須使用 eu-central-1 與該管道互動。如需目前端點的詳細資訊，請參閱本指南[API 映射](migrate-from-chm-namespace.md#name-end-map)中的 。

**服務主體**  
[Amazon Chime SDK 媒體管道](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Meetings.html)命名空間使用新的服務主體：`mediapipelines.chime.amazonaws.com`。如果您有授予服務存取權的 Amazon S3 儲存貯體或其他 IAM 政策，您需要更新這些政策，以授予新服務主體存取權。  
例如，當您建立媒體管道時，必須將 中列出的政策許可新增至[為 Amazon Chime SDK 媒體擷取管道建立 Amazon S3 儲存貯體](create-s3-bucket.md)新的服務主體。如需政策的詳細資訊，請參閱《IAM 使用者指南》中的 [ AWS JSON 政策元素：主體](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html)。

**API**  
Amazon Chime SDK 媒體管道命名空間僅包含建立和管理媒體管道APIs。Amazon Chime 命名空間包含媒體管道、會議和 Amazon Chime 服務其他部分的 APIs。

**會議**  
IAD 區域中的媒體管道可與任何具有任一命名空間的會議端點所建立的會議搭配使用。

**服務連結角色**  
僅適用於 Amazon Chime SDK Media Pipelines 命名空間。建立 *AWSServiceRoleForAmazonChimeSDKMediaPipelines* 角色。

**標籤**  
[Amazon Chime SDK 媒體管道](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Meetings.html)命名空間支援標籤。該角色在呼叫具有一或多個標籤的 [CreateMediaCapturePipeline](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaCapturePipeline.html) 或 [CreateMediaLiveConnectorPipeline](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaLiveConnectorPipeline.html) APIs 時，必須具有呼叫 `TagResource`操作的許可。

# 了解 Amazon Chime SDK 媒體管道的建立
<a name="create-pipeline"></a>

您可以遵循多步驟程序來建立 Amazon Chime SDK 媒體管道，也可以建立多種管道類型。下列清單概述了建立程序，並提供建立各種管道的詳細資訊連結。
+ 建立 Amazon S3 儲存貯體。您必須在與會議相同的區域中建立儲存貯 AWS 體。如需詳細資訊，請參閱 [為 Amazon Chime SDK 媒體擷取管道建立 Amazon S3 儲存貯體](create-s3-bucket.md)。
+ 建立名為 的服務連結角色`AWSServiceRoleForAmazonChimeSDKMediaPipelines`。這可讓媒體管道代表您存取會議。如需詳細資訊，請參閱 [為 Amazon Chime SDK 媒體管道建立服務連結角色](create-pipeline-role.md)。
+ 建立具有與 [Amazon Chime SDK 媒體管道 APIs ](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Media_Pipelines.html)互動足夠許可的 IAM 角色。若要建立該角色，建議您從 IAM 主控台新增 [AmazonChimeSDK](https://docs.aws.amazon.com/chime-sdk/latest/ag/security_iam_id-based-policy-examples.html#security_iam_id-based-policy-examples-chime-sdk) 受管政策。政策包含必要的 APIs。

  您的 IAM 角色也必須具有在所有 資源上呼叫 Amazon S3 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicy.html) API 的許可。下列範例顯示執行此作業的典型政策。

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Action": "s3:GetBucketPolicy",
              "Effect": "Allow",
              "Resource": "*"
          }
      ]
  }
  ```

------

取得這些項目後，請參閱這些主題，以取得建立管道的相關資訊。
+ [為 Amazon Chime SDK 會議建立媒體擷取管道](capture-pipe-config.md)
+ [為 Amazon Chime SDK 會議建立媒體串連管道](create-concat-pipe.md)
+ [為 Amazon Chime SDK 會議建立媒體即時連接器管道](connector-pipe-config.md)
+ [使用 Amazon Chime SDK 建立媒體串流管道](create-media-stream-pipeline.md)

# 為 Amazon Chime SDK 會議建立媒體擷取管道
<a name="capture-pipe-config"></a>

媒體擷取管道會擷取音訊、影片和內容共用串流，以及會議事件和資料訊息。所有媒體擷取管道都會將其資料儲存至您建立的 [Amazon Simple Storage Service](https://aws.amazon.com/s3/) (S3) 儲存貯體。您可以為每個 Amazon Chime SDK 會議建立一個媒體擷取管道。

下列各節說明如何建立媒體擷取管道。請按照所列順序參閱。

**Topics**
+ [為 Amazon Chime SDK 媒體擷取管道建立 Amazon S3 儲存貯體](create-s3-bucket.md)
+ [為 Amazon Chime SDK 媒體擷取管道的 Amazon S3 儲存貯體啟用伺服器端加密](sse-kms.md)
+ [使用 AWS KMS 金鑰啟用物件層級伺服器端加密](using-kms-keys-for-encryption.md)
+ [建立 Amazon Chime SDK 媒體擷取管道](create-capture-pipe.md)
+ [使用 Amazon Chime SDK 媒體擷取成品](artifacts.md)
+ [設定 Amazon Chime SDK 媒體擷取管道的音訊資料夾](configure-audio.md)
+ [設定 Amazon Chime SDK 媒體擷取管道的視訊資料夾](configure-video.md)
+ [了解 Amazon Chime SDK 媒體擷取管道的資料通道資料夾中的訊息](data-channel.md)
+ [了解 Amazon Chime SDK 媒體擷取管道的 Amazon S3 儲存貯體資料夾結構](capture-folder-structure.md)
+ [了解 Amazon Chime SDK 媒體擷取管道的會議事件檔案](meeting-events.md)
+ [了解 Amazon Chime SDK 媒體擷取管道的轉錄檔案](transcription-messages.md)
+ [串連 Amazon Chime SDK 媒體擷取管道的資料串流](concatenate-streams.md)

# 為 Amazon Chime SDK 媒體擷取管道建立 Amazon S3 儲存貯體
<a name="create-s3-bucket"></a>

您可以使用 Amazon S3 主控台的 AWS SDKs 或 AWS CLI 來建立 Amazon S3 儲存貯體。如需詳細資訊，請參閱《*Amazon Simple Storage Service (S3) 使用者指南*》中的[建立儲存貯](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)體。

媒體擷取管道的 Amazon S3 儲存貯體必須屬於與 Amazon Chime SDK 會議相同的 AWS 帳戶。此外，您必須將 `s3:PutObject`和 `s3:PutObjectAcl`許可授予 Amazon Chime SDK 服務主體 [mediapipelines.chime.amazonaws.com](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html)：//。您可以使用 Amazon S3 主控台或 AWS Command Line Interface () 來執行此操作AWS CLI。Amazon S3 儲存貯體必須屬於其中一個可用的 [Amazon Chime SDK 媒體區域](https://docs.aws.amazon.com/chime-sdk/latest/dg/sdk-available-regions.html)。

**注意**  
請務必將政策新增至 IAM 使用者，以授予對儲存貯體的存取權。此外，如果您使用預設 AWS 停用的區域，則必須在該區域中具有 Amazon S3 儲存貯體。  
根據預設，AWS 會停用下列區域，且您無法在其中託管會議資源，直到您啟用它們：  
非洲 (開普敦)
亞太地區 (香港)
亞太地區 (雅加達)
歐洲 (米蘭)
Middle East (Bahrain)
如果您使用其中一個區域，則必須有 Amazon S3 儲存貯體。即使您使用 Amazon S3 APIs 與預設未封鎖且已有儲存貯體的區域進行通訊，這也適用。如需啟用封鎖區域的詳細資訊，請參閱 [AWS 一般參考中的管理 AWS 區域](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html)。 **

建立儲存貯體後，請記錄其 ARN。您可以使用它來建立媒體擷取管道。

下列範例顯示 Amazon S3 儲存貯體政策。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "AWSChimeMediaCaptureBucketPolicy",
    "Statement": [
        {
            "Sid": "AWSChimeMediaCaptureBucketPolicy",
            "Effect": "Allow",
            "Principal": {
                "Service": "mediapipelines.chime.amazonaws.com"
            },
            "Action": [ "s3:PutObject", "s3:PutObjectAcl" ],
            "Resource": "arn:aws:s3:::Bucket_Name/*",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                },
                "ArnLike": {
                "aws:SourceArn": "arn:aws:chime:*:123456789012:*"
                }
            }
        }
    ]
}
```

------

# 為 Amazon Chime SDK 媒體擷取管道的 Amazon S3 儲存貯體啟用伺服器端加密
<a name="sse-kms"></a>

若要啟用 Amazon Simple Storage Service (Amazon S3) 儲存貯體的伺服器端加密，您可以使用以下類型的加密金鑰：
+ Amazon S3 受管金鑰
+ Key AWS Management Service (KMS) 中的客戶受管金鑰
**注意**  
Key Management Service 支援兩種類型的金鑰：客戶受管金鑰和 AWS 受管金鑰。Amazon Chime SDK 會議僅支援客戶受管金鑰。

## 使用 Amazon S3 受管金鑰
<a name="s3-keys"></a>

您可以使用 Amazon S3 主控台、CLI 或 REST API 來啟用 Amazon S3 儲存貯體的伺服器端加密。在這兩種情況下，選擇 **Amazon S3 金鑰**做為加密金鑰類型。不需要進一步的動作。當您使用 儲存貯體進行媒體擷取時，成品會在伺服器端上傳和加密。如需詳細資訊，請參閱《[Amazon S3 使用者指南》中的指定 Amazon S3 加密](https://docs.aws.amazon.com/AmazonS3/latest/userguide/specifying-s3-encryption.html)。 *Amazon S3 * 

## 使用您擁有的金鑰
<a name="customer-key"></a>

若要使用您管理的金鑰啟用加密，您需要使用客戶受管金鑰啟用 Amazon S3 儲存貯體的伺服器端加密，然後將陳述式新增至金鑰政策，以允許 Amazon Chime 使用金鑰並加密任何上傳的成品。

1. 在 KMS 中建立客戶受管金鑰。如需這麼做的相關資訊，請參閱《*Amazon S3 使用者指南*》中的[使用 AWS KMS (SSE-KMS) 指定伺服器端加密](https://docs.aws.amazon.com/AmazonS3/latest/userguide/specifying-kms-encryption.html)。

1. 將陳述式新增至金鑰政策，允許 `GenerateDataKey`動作產生金鑰以供 Amazon Chime SDK 服務主體 使用`mediapipelines.chime.amazonaws.com`。

   此範例顯示典型的 陳述式。

   ```
   ...
   {
       "Sid": "MediaPipelineSSEKMS",
       "Effect": "Allow",
       "Principal": {
           "Service": "mediapipelines.chime.amazonaws.com"
       },
       "Action": "kms:GenerateDataKey",
       "Resource": "*",
       "Condition": {
           "StringEquals": {
              "aws:SourceAccount": "Account_Id"
           },
           "ArnLike": {
               "aws:SourceArn": "arn:aws:chime:*:Account_Id:*"
           }
       }
   }
   ...
   ```

1. 如果您使用媒體串連管道，請將陳述式新增至金鑰政策，`mediapipelines.chime.amazonaws.com`以允許 Amazon Chime SDK 服務主體 使用 `kms:Decrypt`動作。

1. 設定 Amazon S3 儲存貯體以使用 金鑰啟用伺服器端加密。

# 使用 AWS KMS 金鑰啟用物件層級伺服器端加密
<a name="using-kms-keys-for-encryption"></a>

媒體擷取管道和媒體串連管道可以使用 AWS Key Management Service (AWS KMS) 客戶受管金鑰，為 Amazon S3 儲存貯體中的個別物件啟用伺服器端加密 (SSE)。若要設定此項目，您必須使用 [CreateMediaCapturePipeline](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaCapturePipeline.html) API 呼叫。媒體串連管道將使用相關聯媒體擷取管道的伺服器端加密參數。

若要使用客戶受管金鑰為個別物件啟用 SSE AWS KMS （物件層級 SSE)，您必須在 [CreateMediaCapturePipeline](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaCapturePipeline.html) API 呼叫`SinkIamRoleArn`期間提供 `SseAwsKeyManagementParams`結構和 ：

1. 使用 `SseAwsKeyManagementParams` 結構中的 `AwsKmsKeyId` 參數來指定 AWS KMS 金鑰。您可以使用金鑰的 ID、ARN 或別名來指定金鑰 ID。

1. 使用 `SinkIamRoleArn` 參數指定 IAM 角色來存取 AWS KMS 金鑰和目的地 Amazon S3 儲存貯體。

1. 或者，您可以使用 `SseAwsKeyManagementParams`結構中的 `AwsKmsEncryptionContext` 參數來指定要使用的加密內容，以及增強安全性的 AWS KMS 金鑰成品。

**注意**  
`AwsKmsKeyId` 和 `SinkIamRoleArn` 參數是相互依存的。當兩者都存在且有效時，媒體擷取管道將擔任 角色，並將每個成品放入具有指定 AWS KMS 金鑰的指定 Amazon S3 儲存貯體接收器。[CreateMediaConcatenationPipeline](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaConcatenationPipeline.html) API 呼叫沒有新參數，但如果指定，將使用上述參數。如果您打算串連成品，請確定您的資源組態已如下[Configuration](#using-kms-keys-for-encryption-config)節所述進行設定，並且會隨著時間持續存在。

## Configuration
<a name="using-kms-keys-for-encryption-config"></a>

`SinkIamRoleArn` 必須有與主體相同的許可和存取權，才能將成品放入 Amazon S3 儲存貯體。如需 Amazon S3 儲存貯體中預期預設許可的詳細資訊，請參閱[為 Amazon Chime SDK 媒體擷取管道建立 Amazon S3 儲存貯體](https://docs.aws.amazon.com/chime-sdk/latest/dg/create-s3-bucket.html)。若要為個別物件啟用 SSE，您的 Amazon S3 儲存貯體必須允許使用 指定的 IAM 角色`SinkIamRoleArn`執行您從呼叫 IAM 身分預期的相同動作集。您可以將下列主體新增至 Amazon S3 儲存貯體許可政策，以達到此目的。

```
...
"Principal": {
    ...
    "AWS": "arn:aws:iam::<YOUR_ACCOUNT_ID>;:role/<SINK_IAM_ROLE_NAME>"
    ...
},
...
```

`AwsKmsKeyId` 應指向允許 執行 `SinkIamRoleArn`的金鑰`GenerateDataKey`。如果將使用媒體串連管道， AWS KMS 金鑰也應該允許使用 `Decrypt`動作。請參閱以下範例。

**注意**  
資源設定為使用萬用字元 `“*”`，在這種情況下， AWS KMS 金鑰政策表示「本身」。

```
{
    "Effect": "Allow",
    "Principal": {
        "AWS": "arn:aws:iam::<YOUR_ACCOUNT_ID>:role/<YOUR_CUSTOMER_ROLE_ID>"
    },
    "Action": [
        "kms:GenerateDataKey",
        "kms:Decrypt"
    ],
    "Resource": "*"
}
```

`SinkIamRoleArn` 角色必須具有信任關係，允許服務擔任該角色。請參閱以下範例。

```
{
    "Effect": "Allow",
    "Principal": {
        "Service": "mediapipelines.chime.amazonaws.com"
    },
    "Action": "sts:AssumeRole",
    "Condition": {
        "StringEquals": {
            "aws:SourceAccount": "<YOUR_ACCOUNT_ID>"
        },
        "ArnLike": {
            "aws:SourceArn": "arn:aws:chime:*:<YOUR_ACCOUNT_ID>:*"
        }
    }
}
```

`SinkIamRoleArn` 應具有下列媒體擷取管道的最低許可政策。請參閱以下範例。

```
{
    "Effect": "Allow",
    "Action": "kms:GenerateDataKey",
    "Resource": "arn:aws:kms:<KMS_KEY_REGION>:<KMS_KEY_ACCOUNT_ID>:key/<MS_KEY_ID>",
    "Condition": {
        "StringEquals": {
            "aws:SourceAccount": "<YOUR_ACCOUNT_ID>"
        },
        "ArnLike": {
            "aws:SourceArn": "arn:aws:chime:*:<YOUR_ACCOUNT_ID>:*"
        }
    }
},
{
    "Effect": "Allow",
    "Action": ["s3:PutObject", "s3:PutObjectAcl"],
    "Resource": "arn:aws:s3:::<YOUR_DEDICATED_KMS_BUCKET_ID>/*",
    "Condition": {
        "StringEquals": {
            "aws:SourceAccount": "<YOUR_ACCOUNT_ID>"
        },
        "ArnLike": {
            "aws:SourceArn": "arn:aws:chime:*:<YOUR_ACCOUNT_ID>:*"
        }
    }
}
```

此外，必須允許呼叫者傳遞`SinkIamRoleArn`至 服務。如果發起人沒有此類許可，則應明確新增。請參閱以下範例。

```
{
    "Effect": "Allow",
    "Action": "iam:PassRole",
    "Resource": "<SINK_IAM_ROLE_ARN>",
    "Condition": {
        "ArnLike": {
            "iam:AssociatedResourceArn": "arn:aws:chime:*:<YOUR_ACCOUNT_ID>:media-pipeline/*"
        },
        "StringEquals": {
            "iam:PassedToService": "mediapipelines.chime.amazonaws.com"
        }
    }
}
```

## 媒體串連實作
<a name="media-concatenation-implementatoin"></a>

如果您打算在媒體擷取後使用媒體串連管道，請參閱 [建置 Amazon Chime SDK 媒體串連管道](create-concat-pipe-steps.md)以了解所需的許可。若要讓管道使用物件層級 SSE 的 AWS KMS 金鑰，必須擴展 AWS KMS 金鑰和 Amazon S3 儲存貯體的`SinkIamRoleArn`許可 （允許的動作）。請參閱以下範例。

```
...
{
    ...
    {
        ...
        "Action": ["kms:GenerateDataKey","kms:Decrypt"]
        "Resource": "arn:aws:kms:<KMS_KEY_REGION>:<KMS_KEY_ACCOUNT_ID>:key/<KMS_KEY_ID>",
        ...
    }
    ...
    {
        "Action": [ "s3:PutObject", "s3:PutObjectAcl", "s3:GetObject", "s3:ListBucket"],
        "Resource": "arn:aws:s3:::<YOUR_DEDICATED_KMS_BUCKET_ID>/*",
    }
    ...
}
...
```

# 建立 Amazon Chime SDK 媒體擷取管道
<a name="create-capture-pipe"></a>

建立和設定 Amazon S3 儲存貯體後，您可以建立媒體擷取管道。

**建立媒體擷取管道**
+ 呼叫 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaCapturePipeline.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaCapturePipeline.html) API。

  使用儲存貯體 ARN 做為 `SinkArn` 參數。

成功之後，Amazon Chime SDK 會建立加入並擷取會議的出席者。

建立媒體擷取管道並設定其許可後，您可以建立媒體串連管道，將 5 秒的媒體區塊串連至單一檔案。如需詳細資訊[為 Amazon Chime SDK 會議建立媒體串連管道](create-concat-pipe.md)，請參閱本節稍後的 。

# 使用 Amazon Chime SDK 媒體擷取成品
<a name="artifacts"></a>

在 Amazon Chime SDK 會議期間，媒體擷取管道會建立下列類型的成品。
+ 音訊
+ 影片
+ 資料管道訊息
+ 會議事件
+ 轉錄訊息

管道會在 Amazon S3 儲存貯體中的一組資料夾中建立成品，而且您可以設定音訊和視訊資料夾來限制特定類型的成品。下列各節說明資料夾結構、如何設定資料夾、如何設定 Amazon S3 儲存貯體的許可，以及如何串連成品檔案。

# 設定 Amazon Chime SDK 媒體擷取管道的音訊資料夾
<a name="configure-audio"></a>

音訊資料夾包含混合音訊串流的 5 秒 MP4 檔案，這表示它們包含來自所有出席者的音訊，以及作用中發言者的影片。資料夾包含整個會議的檔案。您可以視需要將 資料夾設定為僅包含音訊成品。每個檔案名稱都包含 *yyyy-mm-dd-hour-min-seconds-milleseconds* 時間戳記。時間戳記以 UTC 為單位，並標記開始時間。您可以將 資料夾設定為僅包含音訊成品。

```
"ArtifactsConfiguration": { 
         "Audio": { 
            "MuxType": "AudioOnly"
         },
         "Content": {
            "State": "Disabled"
         },
         "Video": {
            "State": "Disabled"
         }
      }
```

# 設定 Amazon Chime SDK 媒體擷取管道的視訊資料夾
<a name="configure-video"></a>

影片資料夾包含 5 秒的 MP4 檔案，其中包含影片串流，以及 API 請求中指定的內容共用串流。每個檔案名稱都包含 <yyyy-mm-dd-hour-min-seconds-milleseconds>-<attendeeID> 時間戳記與出席者 ID。內容共用影片區塊會附加為 <yyyy-mm-dd-hour-min-seconds-milleseconds>-<attendeeID>\$1content.mp4。您可以將 資料夾設定為僅包含視訊成品。

```
"ArtifactsConfiguration": { 
         "Audio": { 
            "MuxType": "AudioOnly"
         },
         "Content": {
            "State": "Disabled"
         },
         "Video": {
            "MuxType": "VideoOnly"
            "State": "Enabled"
         }
      }
```

# 了解 Amazon Chime SDK 媒體擷取管道的資料通道資料夾中的訊息
<a name="data-channel"></a>

資料通道資料夾包含 .txt 格式的資料訊息，每個訊息都是 JSON 物件。所有組態選項都會顯示訊息。檔案名稱包含 *yyyy-mm-dd-hour-min-seconds-milleseconds* 時間戳記。此範例顯示訊息中的資料欄位。

```
{
    "Timestamp": "string", 
    "Topic": "string", 
    "Data": "string", 
    "SenderAttendeeId": "string"
}
```

# 了解 Amazon Chime SDK 媒體擷取管道的 Amazon S3 儲存貯體資料夾結構
<a name="capture-folder-structure"></a>

媒體擷取管道的 Amazon S3 儲存貯體使用此資料夾結構。

```
S3 bucket path/
  audio
  video  
  data-channel
  meeting-events
  transcription-messages
```

# 了解 Amazon Chime SDK 媒體擷取管道的會議事件檔案
<a name="meeting-events"></a>

會議事件資料夾包含 .txt 格式的會議事件，每個事件都是 JSON 物件。所有組態選項都會顯示訊息。檔案名稱包含 <yyyy-mm-dd-hour-min-seconds-milleseconds> 時間戳記。此範例顯示典型事件檔案中的欄位和資料。

```
{
    "Timestamp": "string",
    "EventType": "AttendeeJoined | AttendeeLeft | AttendeeVideoJoined | AttendeeVideoLeft | ActiveSpeaker | CaptureStarted | CaptureEnded  | AudioTrackMute | AudioTrackUnmute",
    "EventParameters": {
        # ...
    }
}
```

# 了解 Amazon Chime SDK 媒體擷取管道的轉錄檔案
<a name="transcription-messages"></a>

轉錄訊息資料夾包含 .txt 格式的轉錄檔案。不過， 資料夾只會在您啟用即時轉錄時接收檔案。如需啟用即時轉錄的詳細資訊，請參閱 [使用 Amazon Chime SDK 即時轉錄](meeting-transcription.md)。

資料夾包含所有部分和完整的轉錄訊息，每個訊息都是 JSON 物件。檔案名稱包含 <yyyy-mm-dd-hour-min-seconds-milleseconds> 時間戳記。您可以在 中查看轉錄檔案範例[處理收到的 Amazon Chime SDK 即時文字記錄事件](delivery-examples.md)。

# 串連 Amazon Chime SDK 媒體擷取管道的資料串流
<a name="concatenate-streams"></a>

**注意**  
若要自動化串連媒體擷取成品的程序，請參閱本指南[為 Amazon Chime SDK 會議建立媒體串連管道](create-concat-pipe.md)中的 。

此範例使用 ffmpeg 將視訊或音訊檔案串連至單一 mp4 檔案。首先，建立包含所有輸入檔案的 filelist.txt 檔案。使用此格式：

```
file 'input1.mp4'
file 'input2.mp4'
file 'input3.mp4'
```

接著，使用此命令來串連輸入檔案：

```
ffmpeg -f concat -i filelist.txt -c copy output.mp4
```

如需媒體串連管道的詳細資訊，請參閱本指南[為 Amazon Chime SDK 會議建立媒體串連管道](create-concat-pipe.md)中的 。

# 為 Amazon Chime SDK 會議建立媒體串連管道
<a name="create-concat-pipe"></a>

您可以使用媒體串連管道串連媒體擷取管道產生的成品 （檔案）。

媒體擷取管道會壓縮媒體串流，並將這些成品存放在 Amazon S3 儲存貯體中，以擷取會議的內容。媒體擷取管道會建立下列類型的成品：
+ 音訊
+ 影片
+ 內容共用
+ 資料頻道訊息
+ 轉錄訊息
+ 會議事件
+ 合成視訊，表示內容共用和網格中顯示為視訊圖磚的多個視訊串流。

媒體串連管道可讓您將每種類型的成品串連至單一檔案，然後將這些較大的檔案存放在 Amazon S3 儲存貯體中。您可以建立媒體串連管道，而無需等待媒體擷取事件結束，但串連管道只會在擷取管道停止時開始串連。

**注意**  
媒體擷取管道、媒體串連管道和 Amazon S3 儲存貯體必須位於相同的 AWS 帳戶中。

**Topics**
+ [Amazon Chime SDK 串連管道架構](concat-architecture.md)
+ [建置 Amazon Chime SDK 媒體串連管道](create-concat-pipe-steps.md)
+ [了解 Amazon Chime SDK 串連管道的 Amazon S3 儲存貯體資料夾結構](concat-folder-structure.md)

# Amazon Chime SDK 串連管道架構
<a name="concat-architecture"></a>

下圖顯示媒體串連管道的架構。

![\[顯示媒體串連管道架構的圖表。\]](http://docs.aws.amazon.com/zh_tw/chime-sdk/latest/dg/images/concatenation-pipe-architecture-2.png)


在圖表中，在收到[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaCapturePipeline.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaCapturePipeline.html)請求時，媒體管道控制平面會在媒體管道資料平面中啟動媒體擷取管道。然後，資料平面會每 5 秒將擷取的區塊推送至擷取儲存貯體。收到[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaConcatenationPipeline.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaConcatenationPipeline.html)請求時，媒體管道控制平面會等待指定的媒體擷取管道完成，然後在媒體管道資料平面中啟動媒體串連管道。然後，資料平面會讀取儲存貯體中擷取的區塊，並將串連成品推送至串連儲存貯體。

# 建置 Amazon Chime SDK 媒體串連管道
<a name="create-concat-pipe-steps"></a>

您可以遵循多步驟程序來建立 Amazon Chime SDK 媒體串連管道。下列步驟說明 程序。

1. 建立 Amazon S3 儲存貯體以用作媒體擷取管道的資料接收器，然後設定儲存貯體政策。如需有關為 Amazon S3 儲存貯體啟用伺服器端加密的資訊，請參閱本指南中的[啟用 Amazon S3 儲存貯體的伺服器端加密](https://docs.aws.amazon.com/chime-sdk/latest/dg/sse-kms.html)。如果您建立了用於媒體擷取管道的 Amazon S3 儲存貯體，則必須將 `s3:GetObject`和 `s3:ListBucket`動作新增至該儲存貯體的政策。`s3:ListBucket` 動作需要儲存貯體的許可。其他動作需要儲存貯體中物件的許可。您必須使用兩個不同的 Amazon Resource Name (ARNs) 來指定儲存貯體層級和物件層級許可。

   下列範例顯示儲存貯體政策。視需要複製並貼上此範例。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Id": "AWSChimeMediaCaptureBucketPolicy",
       "Statement": [
           {
               "Sid": "AWSChimeMediaCaptureBucketPolicy",
               "Effect": "Allow",
               "Principal": {
                   "Service": [
                       "mediapipelines.chime.amazonaws.com"
                   ]
               },
               "Action": [
                   "s3:PutObject",
                   "s3:PutObjectAcl",
                   "s3:GetObject",
                   "s3:ListBucket"
               ],
               "Resource": [
                   "arn:aws:s3:::[Bucket-Name]/*",
                   "arn:aws:s3:::[Bucket-Name]"
               ],
               "Condition": {
                   "StringEquals": {
                       "aws:SourceAccount": "123456789012"
                   },
                   "ArnLike": {
                   "aws:SourceArn": "arn:aws:chime:*:123456789012:*"
                   }
               }
           }
       ]
   }
   ```

------

1.  建立 Amazon Amazon S3 儲存貯體以用作媒體串連管道的資料接收器，然後設定儲存貯體政策。如需有關為 Amazon S3 儲存貯體啟用伺服器端加密的資訊，請參閱本指南中的[啟用 Amazon S3 儲存貯體的伺服器端加密](https://docs.aws.amazon.com/chime-sdk/latest/dg/sse-kms.html)。

   下列範例顯示 政策。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Id": "AWSChimeMediaConcatenationBucketPolicy",
       "Statement": [
           {
               "Sid": " AWSChimeMediaConcatenationBucketPolicy ",
               "Effect": "Allow",
               "Principal": {
                   "Service": [
                       "mediapipelines.chime.amazonaws.com"
                   ]
               },
               "Action": [
                   "s3:PutObject",
                   "s3:PutObjectAcl",
                   "s3:GetObject",
                   "s3:ListBucket"
               ],
               "Resource": [
                   "arn:aws:s3:::[Bucket-Name]/*",
                   "arn:aws:s3:::[Bucket-Name]"
               ],
               "Condition": {
                   "StringEquals": {
                   "aws:SourceAccount": "123456789012"
                   },
                   "ArnLike": {
                   "aws:SourceArn": "arn:aws:chime:*:123456789012:*"
                   }
               }
           }
       ]
   }
   ```

------
**注意**  
您可以使用單一 Amazon S3 儲存貯體進行媒體擷取和媒體串連管道。不過，如果您這樣做，則必須將 `s3:GetObject`和 `s3:ListBucket`許可新增至步驟 2 中顯示的媒體串連儲存貯體政策。如果您不希望串連儲存貯體政策具有這些許可，請為每個管道建立單獨的儲存貯體。

1. 使用 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaCapturePipeline.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaCapturePipeline.html) API 建立媒體擷取管道。為此，請取得管道的 ARN。如需取得 ARN 的資訊，請參閱 [了解 Amazon Chime SDK 媒體管道的建立](create-pipeline.md)。您可以在下一個步驟中使用 ARN。

1. 使用 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaConcatenationPipeline.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaConcatenationPipeline.html) API 建立串連管道。

   下列範例顯示請求內文。*路徑*欄位是選用的，預設為串連管道的 ID。
**注意**  
您必須使用過去 30 天內`MediaPipelineArn`建立的 。

   ```
   {
       "Sources": [
           {
               "Type": "MediaCapturePipeline",
               "MediaCapturePipelineSourceConfiguration": {
                   "MediaPipelineArn": "Media_Pipeline_Arn",  //must be <30 days old
                   "ChimeSdkMeetingConfiguration": {
                       "ArtifactsConfiguration": {
                           "Audio": {
                               "State": "Enabled"
                           },
                           "Video": {
                               "State": "Enabled | Disabled"
                           },
                           "Content": {
                               "State": "Enabled | Disabled"
                           },
                           "DataChannel": {
                               "State": "Enabled | Disabled"
                           },
                           "TranscriptionMessages": {
                               "State": "Enabled | Disabled"
                           },
                           "MeetingEvents": {
                               "State": "Enabled | Disabled"
                           },
                           "CompositedVideo": {
                               "State": "Enabled | Disabled"
                           }
                       }
                   }
               }
           }
       ],
       "Sinks": [
           {
               "Type": "S3Bucket",
               "S3BucketSinkConfiguration": {
                   "Destination": "arn:aws:s3:::[Bucket_Name]/[Path]"
               }
           }
       ]
   }
   ```

   串連會在擷取管道停止時啟動。串連管道會在完成串連後停止。

# 了解 Amazon Chime SDK 串連管道的 Amazon S3 儲存貯體資料夾結構
<a name="concat-folder-structure"></a>

媒體串連管道的 Amazon S3 儲存貯體使用此資料夾結構：

```
S3 bucket path/
  audio
  video
  composited-video
  data-channel
  meeting-events
  transcription-messages
```

**注意**  
如果您在建立媒體管道時指定字首，資料夾的路徑會變成*儲存貯體名稱*/*字首*。如果沒有字首，路徑會變成儲存*貯體名稱*/*媒體管道 ID*。您可以在 `S3BucketSinkConfiguration` 物件的 `Destination`欄位中指定字首。串連檔案名稱由媒體檔案的媒體*管道 ID*.mp4 和文字檔案的*媒體管道 ID*.txt 組成。

# 為 Amazon Chime SDK 會議建立媒體即時連接器管道
<a name="connector-pipe-config"></a>

下列各節列出並說明媒體即時連接器管道的即時傳訊通訊協定 (RTMP)、音訊和視訊設定。

**RTMP 設定**  
媒體即時連接器管道透過 TLS/SSL 連線支援 RTMP。目的地 URL 包含串流 URL 和串流金鑰。URLs 遵循以下格式：

`rtmp(s)://stream-server/stream-key`

下列範例示範如何連線至常見的串流平台。
+ **Amazon Interactive Video Service (IVS)** – rtmps：//a1b2c3d4e5f6.global-contribute.live-video.net：443/app/*IVS-stream-key*
+ **YouTube** – rtmps：//a.youtube.com/live2/*stream-key*
+ **Twitch** – rtmps：//live.twitch.tv/app/*primary-stream-key*

**重要**  
RTMPS 使用加密來協助確保未經授權的實體不會攔截串流。最佳實務是，當您需要額外的資料安全性時，請使用 RTMPS。

**音訊設定**  
媒體即時連接器管道支援下列音訊設定：
+ **轉碼器** – AAC
+ **取樣率** – 44100 Hz 或 48000 Hz。預設值為 44100Hz。
+ **頻道** – 單聲道或立體聲。預設值為單體。

**影片設定**  
媒體即時連接器管道使用 H264 編碼器。您可以在 1280x720 使用 HD，或在 1920x1080 使用 FHD。兩種解析度每秒使用 30 個影格，每兩秒使用一個關鍵影格。

**停止媒體即時連接器管道**  
作為停止媒體即時連接器管道的最佳實務，請呼叫 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_DeleteMediaPipeline.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_DeleteMediaPipeline.html) API。在串流平台上結束串流，例如 IVS，並不會停止媒體即時連接器管道。

# 使用 Amazon Chime SDK 建立媒體串流管道
<a name="create-media-stream-pipeline"></a>

媒體串流管道會擷取會議中所有出席者的個別音訊，以及媒體串連管道所產生的混合音訊。所有媒體串流管道都會將其資料儲存至 [ Amazon Kinesis Video Streams ](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/what-is-kinesis-video.html)(KVS)。

您可以透過呼叫 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaPipelineKinesisVideoStreamPool.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaPipelineKinesisVideoStreamPool.html) API 來建立視訊串流。您可以為每個 Amazon Chime SDK 會議建立一個媒體串流管道。

**注意**  
如果會議使用選擇加入區域做為其 [MediaRegion](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeeting.html#chimesdk-meeting-chime_CreateMeeting-request-MediaRegion)，KVS 串流必須位於相同的區域。例如，如果會議使用 `af-south-1`區域，則 KVS 串流也必須位於 中`af-south-1`。不過，如果會議使用 AWS 預設開啟的區域，KVS 串流可以在任何可用區域中，包括選擇加入區域。例如，如果會議使用 `ca-central-1`，KVS 串流可以位於 `eu-west-2`、`af-south-1`、 `us-east-1`或 Amazon Chime SDK 支援的任何其他區域中。  
若要了解會議使用 AWS 的區域，請呼叫 [GetMeeting](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_GetMeeting.html) API 並使用回應中的 [MediaRegion](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeeting.html#chimesdk-meeting-chime_CreateMeeting-request-MediaRegion) 參數。  
如需選擇加入區域的詳細資訊，請參閱本指南[Amazon Chime SDK 的可用 AWS 區域](sdk-available-regions.md)中的 ，以及[《帳戶管理參考指南》中的指定您的帳戶可以使用 AWS 的區域](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-regions.html#rande-manage-enable.html)。 *AWS *

下列各節說明如何建立媒體串流管道。請按照所列順序參閱。

**Topics**
+ [為 Amazon Chime SDK 媒體串流管道建立 Kinesis Video Streams 集區](create-kvs-pool.md)
+ [Amazon Chime SDK 媒體串流管道 Kinesis Video Streams 集區的範例程式碼](pool-creation-code.md)
+ [建立 Amazon Chime SDK 媒體串流管道](create-stream-pipeline.md)
+ [Amazon Chime SDK 媒體串流管道的範例程式碼](pipeline-creation-code.md)
+ [針對 Amazon Chime SDK 媒體串流管道使用事件橋接通知](media-stream-event-bridge.md)
+ [使用 Amazon Chime SDK 媒體串流管道資料](media-stream-tips-tricks.md)

# 為 Amazon Chime SDK 媒體串流管道建立 Kinesis Video Streams 集區
<a name="create-kvs-pool"></a>

媒體串流管道的 Kinesis Video Streams (KVS) 集區必須屬於與 Amazon Chime SDK 會議相同的 AWS 帳戶。您可以透過呼叫 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaPipelineKinesisVideoStreamPool.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaPipelineKinesisVideoStreamPool.html) API 來建立 Kinesis Video Streams 集區。

下圖顯示媒體管道 Kinesis Video Streams 集區的架構。影像中的數字對應於下方的編號文字：

![\[圖表顯示建立 Kinesis Video Streams 集區的 API 呼叫。\]](http://docs.aws.amazon.com/zh_tw/chime-sdk/latest/dg/images/media-stream-pool-architecture.png)


在圖表中：

1. 您呼叫 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaPipelineKinesisVideoStreamPool.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaPipelineKinesisVideoStreamPool.html) API。

1. 媒體管道控制平面會代表您在帳戶中建立和管理 Kinesis Video Streams (KVS) 和集區。

KVS 集區操作是在集區中建立、更新和刪除串流的程序是非同步的。因此，Event Bridge 通知會使用 `Chime Media Pipeline Kinesis Video Pool State Change` 詳細資訊類型來傳達集區中串流的狀態。

您可以建立集區一次，並在不同的會議中重複使用。您也可以視需要建立不同的集區，並在不需要集區時將其刪除。

集區會根據並行呼叫爆量自動擴展。您可以刪除任何不需要的集區。

**注意**  
刪除集區時，您必須先等待集區完全刪除，才能刪除集區中的 KVS 串流。Event Bridge 通知會指出集區何時完全刪除。在使用集區的所有會議都結束後，就會發生這種情況。您也可以呼叫 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_GetMediaPipelineKinesisVideoStreamPool.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_GetMediaPipelineKinesisVideoStreamPool.html) API 來檢視指定 KVS 集`PoolId`區的 。  
當您叫用 Kinesis Video Streams [https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_DeleteStream.html](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_DeleteStream.html) API 時，您可以使用該命名字串來搜尋和刪除集區中的串流。您也可以呼叫 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_GetMediaPipelineKinesisVideoStreamPool.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_GetMediaPipelineKinesisVideoStreamPool.html) API 來檢視指定 KVS 集`PoolId`區的 。下一節中的範例說明如何進行。

# Amazon Chime SDK 媒體串流管道 Kinesis Video Streams 集區的範例程式碼
<a name="pool-creation-code"></a>

下列範例示範如何建立、更新、取得、列出和刪除 Kinesis Video Streams (KVS) 集區。展開每個區段以進一步了解。

## 匯入和常見變數
<a name="imports-variables"></a>

```
'''
Define imports and common variables
'''

import boto3
from uuid import uuid4
import json

client = boto3.client("chime-sdk-media-pipelines", region_name='us-east-1')
pool_name = 'MyDemoKvsPool'

def pretty_print_json(obj):
    print(json.dumps(obj, default=str, indent=4))
```

## CreateMediaPipelineKinesisVideoStreamPool
<a name="create-stream-sample"></a>

```
response = client.create_media_pipeline_kinesis_video_stream_pool(
        StreamConfiguration={
            'Region': 'us-east-1',
            'DataRetentionInHours': 24
        },
        PoolName=pool_name,
        ClientRequestToken=str(uuid4()),
        Tags=[
            {
                'Key': 'MyTagForAccessControl',
                'Value': 'SomeTagValue'
            },
        ]
)

pretty_print_json(response['KinesisVideoStreamPoolConfiguration'])
```

**輸出：**

```
{
    "PoolArn": "arn:aws:chime:us-east-1:account-ID:media-pipeline-kinesis-video-stream-pool/MyDemoKvsPool",
    "PoolName": "MyDemoKvsPool",
    "PoolId": "ChimeMediaPipelines-MyDemoKvsPool-1f4e1a69-e718-4884-bf92-8a393ac0405b",
    "PoolStatus": "CREATING",
    "StreamConfiguration": {
        "Region": "us-east-1",
        "DataRetentionInHours": 24
    },
    "CreatedTimestamp": "2023-10-13 01:26:09.979000+00:00",
    "UpdatedTimestamp": "2023-10-13 01:26:09.979000+00:00"
}
```

## GetMediaPipelineKinesisVideoStream
<a name="get-stream-sample"></a>

```
response = client.get_media_pipeline_kinesis_video_stream_pool(
        Identifier=pool_name
)

pretty_print_json(response['KinesisVideoStreamPoolConfiguration'])
```

**輸出：**

```
{
    "PoolArn": "arn:aws:chime:us-east-1:account-ID:media-pipeline-kinesis-video-stream-pool/MyDemoKvsPool",
    "PoolName": "MyDemoKvsPool",
    "PoolId": "ChimeMediaPipelines-MyDemoKvsPool-1f4e1a69-e718-4884-bf92-8a393ac0405b",
    "PoolStatus": "ACTIVE",
    "StreamConfiguration": {
        "Region": "us-east-1",
        "DataRetentionInHours": 24
    },
    "CreatedTimestamp": "2023-10-13 01:26:09.979000+00:00",
    "UpdatedTimestamp": "2023-10-13 01:26:09.979000+00:00"
}
```

## UpdateMediaPipelineKinesisVideoStream
<a name="update-stream-sample"></a>

```
response = client.update_media_pipeline_kinesis_video_stream_pool(
    Identifier=pool_name,
    StreamConfiguration={
        'DataRetentionInHours': 48
    }
)
pretty_print_json(response['KinesisVideoStreamPoolConfiguration'])
```

**輸出：**

```
{
    "PoolArn": "arn:aws:chime:us-east-1:account-ID:media-pipeline-kinesis-video-stream-pool/MyDemoKvsPool",
    "PoolName": "MyDemoKvsPool",
    "PoolId": "ChimeMediaPipelines-MyDemoKvsPool-d08c26ae-0336-4e2e-acdf-805a7d71b891",
    "PoolStatus": "UPDATING",
    "PoolSize": 40,
    "StreamConfiguration": {
        "Region": "us-east-1",
        "DataRetentionInHours": 48
    },
    "CreatedTimestamp": "2023-10-13 01:44:23.010000+00:00",
    "UpdatedTimestamp": "2023-10-13 01:44:28.486000+00:00"
}
```

## ListMediaPipelineKinesisVideoStream
<a name="list-stream-sample"></a>

```
list_of_pools = []
max_results = 100
next_token = None
while(True):
    if next_token:
        response = client.list_media_pipeline_kinesis_video_stream_pools(
            NextToken=next_token,
            MaxResults=max_results
        )
    else:
        response = client.list_media_pipeline_kinesis_video_stream_pools(
            MaxResults=max_results
        )

    list_of_pools.extend(response['KinesisVideoStreamPools'])
    next_token = response.get('NextToken')
    if not next_token:
        break
pretty_print_json(list_of_pools)
```

**輸出：**

```
[
    {
        "PoolName": "MyDemoKvsPool",
        "PoolId": "ChimeMediaPipelines-MyDemoKvsPool-6588e703-f046-4288-ba7f-0c03de76a6bb",
        "PoolArn": "arn:aws:chime:us-east-1:account-ID:media-pipeline-kinesis-video-stream-pool/MyDemoKvsPool"
    }
]
```

## DeleteMediaPipelineKinesisVideoStream
<a name="delete-stream-sample"></a>

```
client.delete_media_pipeline_kinesis_video_stream_pool(
    Identifier=pool_name
)
```

**輸出**：成功的`delete_media_pipeline_kinesis_video_stream_pool`請求沒有內文。

# 建立 Amazon Chime SDK 媒體串流管道
<a name="create-stream-pipeline"></a>

提示音媒體串流管道必須屬於與 Amazon Chime SDK 會議相同的 AWS 帳戶。您可以透過呼叫 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaStreamPipeline.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaStreamPipeline.html) API 並指定來源和接收器來建立 Amazon Chime SDK 媒體串流管道。

下圖顯示 Amazon Chime SDK 媒體串流管道的架構。圖表中的數字對應至下方的編號文字。

![\[圖表顯示建立媒體串流集區的 API 呼叫。\]](http://docs.aws.amazon.com/zh_tw/chime-sdk/latest/dg/images/media-stream-pipe-architecture.png)


在圖表中：

1. 您呼叫 `CreateMediaStreamPipeline` API。在請求中，指定串流的來源和目的地。您要擷取個別音訊、混合音訊或兩者。在請求中包含 KVS 集區的 ARN。
   + 來源陣列包含 `SourceType`和 `SourceArn`。您必須使用 `ChimeSdkMeeting SourceType`。`SourceArn` 是 的 ARN`ChimeSdkMeeting`。
   + 接收器陣列包含 `SinkType`、`ReservedStreamCapacity`、 `SinkArn`和 `MediaStreamType`。我們僅支援 `KinesisVideoStreamPoolSinkType`。`SinkArn` 是 的 ARN`KinesisVideoStreamPool`。`MediaStreamType` 控制串流至接收器的媒體類型，可以是 `MixedAudio`或 `IndividualAudio`。 `MediaStreamType`會從 `ReservedStreamCapacity`設定為 配置的串流數目`KinesisVideoStreamPool`。
     + 如果您想要同時串流 `IndividualAudio`和 `MixedAudio`，請在`Sinks`陣列中建立兩個接收物件，一個用於 `IndividualAudio`，另一個用於 `MixedAudio`。每個接收器的 `SinkArn`( 的 ARN`KinesisVideoStreamPool`) 可能有所不同。
     + 若要僅串流個別音訊或混合音訊，請使用所需的 建立一個接收器物件`MediaStreamType`。
   + 注意下列事項：
     + 以 `KinesisVideoStreamPool`做為 叫用 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaStreamPipeline.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaStreamPipeline.html) API 時`SinkType`， `SinkARN` 必須屬於`CreateMediaStreamPipeline`正在叫用 的控制平面區域。

       例如，如果您在 中建立媒體串流管道`us-east-1`，則必須在 `KinesisVideoStreamPool`中使用 `us-east-1`。
     + `ReservedStreamCapacity` 應在您指定 **1** 時為 `MixedAudio` `MediaStreamType`，並在您指定 **1-10**時介於 `IndividualAudio` 之間`MediaStreamType`。

1. 媒體管道資料平面會呼叫 KVS [ PutMedia ](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_dataplane_PutMedia.html) API，將個別音訊存放在屬於您指定之 KVS 集區的 KVS 串流中。

1. 媒體管道資料平面會呼叫 KVS `PutMedia` API，將混合音訊存放在屬於您指定之 KVS 集區的串流中。

**注意**  
呼叫 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaStreamPipeline.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaStreamPipeline.html) API 之後，建置器可以使用[媒體管道事件](media-pipe-events.md)或呼叫 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_GetMediaPipeline.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_GetMediaPipeline.html) API 來判斷管道狀態是否為 `InProgress`。  
一旦管道狀態達到 `InProgress`，媒體 - `IndividualAudio`和 的任意組合 `MixedAudio`- 串流到 KVS。  
對於`IndividualAudio`串流類型，出席者 IDs 與從 配置的 KVS 串流之間存在 1：1 映射`KinesisVideoStreamPool`。映射適用於媒體管道的生命週期。  
若要知道哪些 KVS 串流映射到出席者 ID，或指派給 MixedAudio，請使用下列其中一種技術：  
使用[事件橋接通知](media-stream-event-bridge.md)。每個通知都會提供出席者 IDs 和串流出席者音訊的 KVS ARN 等資訊。當 `IndividualAudio`或 `MixedAudio` 串流工作階段開始時，我們會傳送`chime:MediaPipelineKinesisVideoStreamStart`事件。串流工作階段會在出席者離開通話 （適用於 `IndividualAudio`) 或會議結束時結束。
使用 Kinesis Video Streams 隨每個片段傳送的持久性中繼資料。中繼資料包含與 Event Bridge 傳送內容類似的資訊。建置器需要剖析 的所有串流，`KinesisVideoStreamPool`方法是使用此解決方案將集區名稱指定為 [https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_ListStreams.html](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_ListStreams.html) Kinesis Video Streams API 中的字首。
刪除會議或叫用該媒體串流管道的 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_DeleteMediaPipeline.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_DeleteMediaPipeline.html) API 時，就會發生媒體串流管道終止。也會傳送[事件橋接通知](media-pipe-events.md)，以指出媒體管道終止。

# Amazon Chime SDK 媒體串流管道的範例程式碼
<a name="pipeline-creation-code"></a>

下列範例示範如何為混合音訊、個別音訊和兩者建立媒體串流管道。展開每個區段以進一步了解。

## CreateMediaStreamPipeline 用於混合音訊
<a name="create-mixed-sample"></a>

```
response = client.create_media_stream_pipeline(
    Sources=[
        {
            'SourceType': 'ChimeSdkMeeting',
            'SourceArn': 'arn:aws:chime:us-east-1:account-ID:meeting/bed804cf-8cf0-4991-9b8d-d1acc2987433'
        },
    ],
    Sinks=[
        {
            'SinkArn': 'arn:aws:chime:us-east-1:account-ID:media-pipeline-kinesis-video-stream-pool/foo',
            'SinkType': 'KinesisVideoStreamPool',
            'ReservedStreamCapacity': 1,
            'MediaStreamType': 'MixedAudio'
        },
    ],
    ClientRequestToken='sample token',
    Tags=[
        {
            'Key': 'sample key',
            'Value': 'sample value'
        },
    ]
)
```

**回應：**

```
{
    'MediaStreamPipeline': {
        'MediaPipelineId': '45bc79a0-4591-4ebe-a642-d42c4e279f2d',
        'MediaPipelineArn': 'arn:aws:chime:us-east-1:account-ID:media-pipeline/45bc79a0-4591-4ebe-a642-d42c4e279f2d',
        'CreatedTimestamp': '2023-07-25T21:48:48.265Z',
        'UpdatedTimestamp': '2023-07-25T21:48:48.376Z',
        'Status': 'Initializing',
        'Sources': [
            {
                'SourceType': 'ChimeSdkMeeting',
                'SourceArn': 'arn:aws:chime:us-east-1:account-ID:meeting/bed804cf-8cf0-4991-9b8d-d1acc2987433'
            },
        ],
        'Sinks': [
            {
                'SinkArn': 'arn:aws:chime:us-east-1:account-ID:media-pipeline-kinesis-video-stream-pool/foo',
                'SinkType': 'KinesisVideoStreamPool',
                'ReservedStreamCapacity': 1,
                'MediaStreamType': 'MixedAudio'
            },
        ]
    }
}
```

## CreateMediaStreamPipeline 適用於個別音訊
<a name="create-individual-sample"></a>

```
response = client.create_media_stream_pipeline(
    Sources=[
        {
            'SourceType': 'ChimeSdkMeeting',
            'SourceArn': 'arn:aws:chime:us-east-1:account-ID:meeting/bed804cf-8cf0-4991-9b8d-d1acc2987433'
        },
    ],
    Sinks=[
        {
            'SinkArn': 'arn:aws:chime:us-east-1:account-ID:media-pipeline-kinesis-video-stream-pool/foo',
            'SinkType': 'KinesisVideoStreamPool',
            'ReservedStreamCapacity': 5,
            'MediaStreamType': 'IndividualAudio'
        },
    ],
    ClientRequestToken='sample token',
    Tags=[
        {
            'Key': 'sample key',
            'Value': 'sample value'
        },
    ]
)
```

**回應：**

```
{
    'MediaStreamPipeline': {
        'MediaPipelineId': '45bc79a0-4591-4ebe-a642-d42c4e279f2d',
        'MediaPipelineArn': 'arn:aws:chime:us-east-1:account-ID:media-pipeline/45bc79a0-4591-4ebe-a642-d42c4e279f2d',
        'CreatedTimestamp': '2023-07-25T21:48:48.265Z',
        'UpdatedTimestamp': '2023-07-25T21:48:48.376Z',
        'Status': 'Initializing',
        'Sources': [
            {
                'SourceType': 'ChimeSdkMeeting',
                'SourceArn': 'arn:aws:chime:us-east-1:account-ID:meeting/bed804cf-8cf0-4991-9b8d-d1acc2987433'
            },
        ],
        'Sinks': [
            {
                'SinkArn': 'arn:aws:chime:us-east-1:account-ID:media-pipeline-kinesis-video-stream-pool/foo',
                'SinkType': 'KinesisVideoStreamPool',
                'ReservedStreamCapacity': 5,
                'MediaStreamType': 'IndividualAudio'
            },
        ]
    }
}
```

## CreateMediaStreamPipeline 適用於混合音訊和個別音訊
<a name="create-both-sample"></a>

```
response = client.create_media_stream_pipeline(
    Sources=[
        {
            'SourceType': 'ChimeSdkMeeting',
            'SourceArn': 'arn:aws:chime:us-east-1:account-ID:meeting/bed804cf-8cf0-4991-9b8d-d1acc2987433'
        },
    ],
    Sinks=[
        {
            'SinkArn': 'arn:aws:chime:us-east-1:account-ID:media-pipeline-kinesis-video-stream-pool/foo',
            'SinkType': 'KinesisVideoStreamPool',
            'ReservedStreamCapacity': 1,
            'MediaStreamType': 'MixedAudio'
        },
        {
            'SinkArn': 'arn:aws:chime:us-east-1:account-ID:media-pipeline-kinesis-video-stream-pool/foo',
            'SinkType': 'KinesisVideoStreamPool',
            'ReservedStreamCapacity': 5,
            'MediaStreamType': 'IndividualAudio'
        },
    ],
    ClientRequestToken='sample token',
    Tags=[
        {
            'Key': 'sample key',
            'Value': 'sample value'
        },
    ]
)
```

**回應：**

```
{
    'MediaStreamPipeline': {
        'MediaPipelineId': '45bc79a0-4591-4ebe-a642-d42c4e279f2d',
        'MediaPipelineArn': 'arn:aws:chime:us-east-1:account-ID:media-pipeline/45bc79a0-4591-4ebe-a642-d42c4e279f2d',
        'CreatedTimestamp': '2023-07-25T21:48:48.265Z',
        'UpdatedTimestamp': '2023-07-25T21:48:48.376Z',
        'Status': 'Initializing',
        'Sources': [
            {
                'SourceType': 'ChimeSdkMeeting',
                'SourceArn': 'arn:aws:chime:us-east-1:account-ID:meeting/bed804cf-8cf0-4991-9b8d-d1acc2987433'
            },
        ],
        'Sinks': [
            {
                'SinkArn': 'arn:aws:chime:us-east-1:account-ID:media-pipeline-kinesis-video-stream-pool/foo',
                'SinkType': 'KinesisVideoStreamPool',
                'ReservedStreamCapacity': 1,
                'MediaStreamType': 'MixedAudio'
            },
            {
                'SinkArn': 'arn:aws:chime:us-east-1:account-ID:media-pipeline-kinesis-video-stream-pool/foo',
                'SinkType': 'KinesisVideoStreamPool',
                'ReservedStreamCapacity': 5,
                'MediaStreamType': 'IndividualAudio'
            },
        ]
    }
}
```

# 針對 Amazon Chime SDK 媒體串流管道使用事件橋接通知
<a name="media-stream-event-bridge"></a>

除了 之外[使用 Amazon Chime SDK 媒體管道事件](media-pipe-events.md)，媒體串流管道還會在啟動和停止串流至 KVS 以及視訊集區狀態變更時傳送 Event Bridge 通知。

**Topics**
+ [了解 Amazon Chime SDK 媒體串流管道事件](stream-pipe-events.md)
+ [了解 Amazon Chime SDK 媒體串流管道的 Kinesis Video Streams 集區事件](media-stream-pool-events.md)

# 了解 Amazon Chime SDK 媒體串流管道事件
<a name="stream-pipe-events"></a>

媒體串流管道會傳送下列事件。展開每個區段以進一步了解。

## Amazon Chime Media Stream Pipeline Kinesis Video Stream Start
<a name="stream-pipe-kvs-start"></a>

當媒體串流管道開始從會議接收音訊，並將該音訊串流至 KVS 時，Amazon Chime SDK 媒體管道會傳送此事件。空白 `AttendeeId`和 `ExternalUserId` 欄位表示媒體管道已將混合音訊傳送至 KVS 串流。

```
{
    "version": "0", 
    "id": "5ee6265a-0a40-104e-d8fd-a3b4bdd78483", 
    "detail-type": "Chime Media Pipeline State Change", 
    "source": "aws.chime", 
    "account": "111122223333", 
    "time": "2021-07-28T20:20:49Z", 
    "region": "us-east-1", 
    "resources": [], 
    "detail": {
        "eventType": "chime:MediaPipelineKinesisVideoStreamStart", 
        "timestamp": 1627503649251, 
        "meetingId": "1e6bf4f5-f4b5-4917-b8c9-bda45c340706", 
        "externalMeetingId": "Meeting_Id", 
        "mediaPipelineId": "e40ee45e-2ed1-408e-9156-f52b8208a491", 
        "mediaRegion": "ap-southeast-1",
        
        "attendeeId": "Attendee_Id", 
        "externalUserId": "External_User_Id",
                
        "kinesisVideoStreamArn": "arn:aws:kinesisvideo:us-east-1:123456:stream/Chime*",
        "startFragmentNumber": "1234567899444",
        "startTime": "yyyy-mm-ddThh:mm:ssZ"
                
    }
}
```

## Amazon Chime Media Stream Pipeline Kinesis Video Stream End
<a name="stream-pipe-kvs-stop"></a>

媒體管道會在串流至 KVS 結束時將此事件傳送至 Event Bridge。

```
{
    "version": "0", 
    "id": "5ee6265a-0a40-104e-d8fd-a3b4bdd78483", 
    "detail-type": "Chime Media Pipeline State Change", 
    "source": "aws.chime", 
    "account": "111122223333", 
    "time": "2021-07-28T20:20:49Z", 
    "region": "us-east-1", 
    "resources": [], 
    "detail": {
        "eventType": "chime:MediaPipelineKinesisVideoStreamEnd", 
        "timestamp": 1627503649251, 
        "meetingId": "1e6bf4f5-f4b5-4917-b8c9-bda45c340706", 
        "externalMeetingId": "Meeting_Id", 
        "mediaPipelineId": "e40ee45e-2ed1-408e-9156-f52b8208a491", 
        "mediaRegion": "ap-southeast-1",
        
        "attendeeId": "Attendee_Id", 
        "externalUserId": "External_User_Id",
                
        "kinesisVideoStreamArn": "arn:aws:kinesisvideo:us-east-1:123456:stream/Chime*",
        "startFragmentNumber": "1234567899444",
        "startTime": "yyyy-mm-ddThh:mm:ssZ",
        "endTime": "yyyy-mm-ddThh:mm:ssZ",
        "endFragmentNumber": "1234567899555"
    }
}
```

# 了解 Amazon Chime SDK 媒體串流管道的 Kinesis Video Streams 集區事件
<a name="media-stream-pool-events"></a>

當集區的狀態變更時，媒體管道會將下列事件傳送至 Event Bridge。展開每個區段以進一步了解。

## Amazon Chime Media Pipeline Kinesis Video Pool Active
<a name="kvs-pool-active"></a>

媒體管道會在 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaPipelineKinesisVideoStreamPool.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaPipelineKinesisVideoStreamPool.html) API 建立集區後傳送此事件。

```
{
    "version": "0", 
    "id": "5ee6265a-0a40-104e-d8fd-a3b4bdd78483", 
    "detail-type": "Chime Media Pipeline Kinesis Video Pool State Change", 
    "source": "aws.chime", 
    "account": "111122223333", 
    "time": "2021-07-28T20:20:49Z", 
    "region": "us-east-1", 
    "resources": [], 
    "detail": {
        "eventType": "chime:MediaPipelineKinesisVideoStreamPoolActive", 
        "timestamp": 1627503649251,
        "mediaRegion": "ap-southeast-1",
        "poolArn" : "ARN of the KVS Pool"
    }
}
```

## Amazon Chime Chime 媒體管道 Kinesis 影片集區已更新
<a name="kvs-pool-updated"></a>

媒體管道會在 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_UpdateMediaPipelineKinesisVideoStreamPool.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_UpdateMediaPipelineKinesisVideoStreamPool.html) API 更新集區後傳送此事件。

```
{
    "version": "0", 
    "id": "5ee6265a-0a40-104e-d8fd-a3b4bdd78483", 
    "detail-type": "Chime Media Pipeline Kinesis Video Pool State Change", 
    "source": "aws.chime", 
    "account": "111122223333", 
    "time": "2021-07-28T20:20:49Z", 
    "region": "us-east-1", 
    "resources": [], 
    "detail": {
        "eventType": "chime:MediaPipelineKinesisVideoStreamPoolUpdated", 
        "timestamp": 1627503649251,
        "mediaRegion": "ap-southeast-1",
        "poolArn" : "ARN of the KVS Pool"
    }
}
```

## 已刪除 Amazon Chime Media 管道 Kinesis 視訊集區
<a name="kvs-pool-deleted"></a>

當 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_DeleteMediaPipelineKinesisVideoStreamPool.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_DeleteMediaPipelineKinesisVideoStreamPool.html)刪除集區時，媒體管道會將此事件傳送至 Event Bridge。

如需刪除集區的詳細資訊，請參閱本節[為 Amazon Chime SDK 媒體串流管道建立 Kinesis Video Streams 集區](create-kvs-pool.md)中的 。

```
{
    "version": "0", 
    "id": "5ee6265a-0a40-104e-d8fd-a3b4bdd78483", 
    "detail-type": "Chime Media Pipeline Kinesis Video Pool State Change", 
    "source": "aws.chime", 
    "account": "111122223333", 
    "time": "2021-07-28T20:20:49Z", 
    "region": "us-east-1", 
    "resources": [], 
    "detail": {
        "eventType": "chime:MediaPipelineKinesisVideoStreamPoolDeleted", 
        "timestamp": 1627503649251,
        "mediaRegion": "ap-southeast-1",
        "poolArn" : "ARN of the KVS Pool"
    }
 }
```

## Amazon Chime Media 管道 Kinesis 視訊集區暫時故障
<a name="kvs-pool-temp-failure"></a>

當視訊集區暫時失敗時，媒體管道會將下列事件傳送至 Event Bridge。

```
{
    "version": "0", 
    "id": "5ee6265a-0a40-104e-d8fd-a3b4bdd78483", 
    "detail-type": "Chime Media Pipeline Kinesis Video Pool State Change", 
    "source": "aws.chime", 
    "account": "111122223333", 
    "time": "2021-07-28T20:20:49Z", 
    "region": "us-east-1", 
    "resources": [], 
    "detail": {
        "eventType": "chime:MediaPipelineKinesisVideoStreamPoolTemporaryFailure", 
        "timestamp": 1627503649251,
        "mediaRegion": "ap-southeast-1",
        "poolArn" : "ARN of the KVS Pool"
    }
 }
```

## Amazon Chime Media 管道 Kinesis 視訊集區永久故障
<a name="kvs-pool-perm-failure"></a>

當視訊集區永久失敗時，媒體管道會將下列事件傳送至 Event Bridge。

```
{
    "version": "0", 
    "id": "5ee6265a-0a40-104e-d8fd-a3b4bdd78483", 
    "detail-type": "Chime Media Pipeline Kinesis Video Pool State Change", 
    "source": "aws.chime", 
    "account": "111122223333", 
    "time": "2021-07-28T20:20:49Z", 
    "region": "us-east-1", 
    "resources": [], 
    "detail": {
        "eventType": "chime:MediaPipelineKinesisVideoStreamPoolPermanentFailure", 
        "timestamp": 1627503649251,
        "mediaRegion": "ap-southeast-1",
        "poolArn" : "ARN of the KVS Pool"
    }
}
```

如果您的 AWS 帳戶超過其 Amazon Kinesis 影片串流限制，您將會收到下列額外的媒體管道事件。

```
{
    "version": "0",
    "id": "5ee6265a-0a40-104e-d8fd-a3b4bdd78483",
    "detail-type": "Chime Media Pipeline Kinesis Video Pool State Change",
    "source": "aws.chime",
    "account": "111122223333",
    "time": "2021-07-28T20:20:49Z",
    "region": "us-east-1",
    "resources": [],
    "detail": {
        "eventType": "chime:MediaPipelineKinesisVideoStreamPoolStreamLimitExceeded",
        "timestamp": 1627503649251,
        "mediaRegion": "ap-southeast-1",
        "poolArn" : "ARN of the KVS Pool"
    }
}
```

# 使用 Amazon Chime SDK 媒體串流管道資料
<a name="media-stream-tips-tricks"></a>

您可以使用通知中的中繼資料來取得 KVS ARNs、片段編號和片段時間戳記。該資訊可協助您處理 KVS 串流中的音訊資料。

此外，您可以使用 KVS ARNs 搭配 KVS APIs 從串流讀取資料。根據使用案例，您可以呼叫 [https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_dataplane_GetMedia.html](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_dataplane_GetMedia.html)和 [https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_reader_GetMediaForFragmentList.html](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_reader_GetMediaForFragmentList.html) APIs。一般而言，`GetMediaForFragmentList`呼叫前會先呼叫 [https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_reader_ListFragments.html](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_reader_ListFragments.html) API。如需詳細資訊，請參閱 *Amazon Kinesis Video Streams FAQs*中的[從串流讀取資料](https://aws.amazon.com/kinesis/video-streams/faqs/)。

根據使用案例，建置器可以使用 Kinesis Video Streams 剖析器程式庫，進而使用 KVS [https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_dataplane_GetMedia.html](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_dataplane_GetMedia.html) API。

媒體串流管道會將下列會議和出席者中繼資料新增至每個片段。

```
"meetingId"
"externalMeetingId"
"attendeeId"
"externalUserId"
"sampleRate"
"channels"
```

媒體資料會以 MKV 格式儲存。所有 MKV 音訊資料都是以 AAC 編碼。如需詳細資訊，請參閱《[Kinesis Video Streams 開發人員指南》中的 Kinesis Video Streams 資料模型](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/how-data.html)。 **

# 在 Amazon Chime SDK 會議中將音訊和視訊合成為單一檢視
<a name="pipeline-compositing"></a>

Amazon Chime SDK 媒體管道支援將音訊、網路攝影機影片和內容共用影片串流合成為單一檢視。然後，您可以使用即時連接器將該單一檢視傳送至串流服務，例如 Amazon Interactive Video Service、Twitch 或 YouTube Live。合成的影片也可以擷取到 Amazon Simple Storage Service，以供儲存或進一步使用。

合成會使用名為 的預設畫面配置`GridView`，其具有下列行為。
+ 當只有網路攝影機影片處於作用中狀態時， 會以下列網格模式`GridView`組織串流：  
![\[四欄四列網格，顯示人物的輪廓。\]](http://docs.aws.amazon.com/zh_tw/chime-sdk/latest/dg/images/grid-no-content-share.png)

  網格最多可顯示 25 個網路攝影機串流，並在使用者開啟其攝影機時，依 排序圖磚。
+ `GridView` 提供兩個畫布方向， `Landscape`和 `Portrait`。橫向是預設方向，支援 FHD 的 1280x720 和 1920x1080 視訊解析度。縱向支援 FHD 的 720x1280 和 1080x1920 解析度。
+ 您可以設定視訊圖磚的順序、位置、總數、圖磚長寬比、角半徑、邊界顏色、邊界厚度和反白顏色。
+ 在會議期間，當有人共用螢幕時，網路攝影機視訊圖磚會動態轉換，以騰出空間進行內容共用。您可以使用下一節所述的其中一種配置組態，控制這些轉換和視訊圖磚的位置。

**關於配置組態**  
當有人開始內容共享時，您可以選擇如何使用下列其中一種配置組態來複合內容共享和網路攝影機影片串流。
+ `ActiveSpeakerOnlyConfiguration` 會將內容視訊全螢幕複合，作用中發言者的網路攝影機視訊重疊在角落。您可以指定邊角。
+ `PresenterOnlyConfiguration` 會將內容視訊全螢幕複合，並將主持人的網路攝影機視訊覆蓋在角落。您可以指定邊角。
+ `VerticalLayoutConfiguration` 會將內容視訊與相鄰垂直欄中的網路攝影機視訊複合。您可以在內容共用的右側或左側顯示資料欄。
+ `HorizontalLayoutConfiguration` 會將內容視訊與相鄰水平列中的網路攝影機視訊複合。您可以在內容共享上方或下方顯示資料列。

合成配置會根據內容共用是否處於作用中狀態，在 `GridView`和您選擇的配置之間自動轉換。

下列主題說明如何使用全域`GridView`設定和每個組態配置。

**Topics**
+ [在 Amazon Chime SDK 會議中設定用於合成的畫布方向](canvas-orientation.md)
+ [在 Amazon Chime SDK 會議中設定用於合成的邊界和邊角屬性](video-attribute.md)
+ [使用配置組態在 Amazon Chime SDK 會議中進行合成](compositing-layouts.md)

# 在 Amazon Chime SDK 會議中設定用於合成的畫布方向
<a name="canvas-orientation"></a>

在合成中，*畫布*包含所有影片串流。您可以指定畫布的 `Landscape`或 `Portrait`方向。橫向提供 16：9 長寬比。縱向提供 9：16 長寬比。

下圖顯示縱向方向。

![\[顯示縱向 （垂直） 視窗中兩個影片圖磚的影像。\]](http://docs.aws.amazon.com/zh_tw/chime-sdk/latest/dg/images/compositing-portrait-with-tile.png)


下列範例顯示如何使用右上角的視訊圖磚實作縱向畫布。在此範例中，作用中的發言者會出現在圖磚中。如需詳細資訊，請參閱[ActiveSpeakerOnlyConfiguration](compositing-layouts.md#active-speaker-only)

```
{
   "CompositedVideo":{
      "Layout":"GridView",
      "Resolution":"FHD",
      "GridViewConfiguration":{
         "ContentShareLayout":"ActiveSpeakerOnly",
         "ActiveSpeakerOnlyConfiguration":{
            "ActiveSpeakerPosition":"TopRight"
         }
      },
      "CanvasOrientation": "Portrait"       
   }
}
```

下圖顯示橫向方向。

![\[顯示橫向 （水平） 視窗中兩個影片圖磚的影像。\]](http://docs.aws.amazon.com/zh_tw/chime-sdk/latest/dg/images/compositing-landscape-with-tile.png)


**CanvasOrientation**  
*描述* – 方向設定，橫向或縱向。  
*允許的值* – `Landscape` \$1 `Portrait`  
*必要* – 否  
*預設* – 橫向

# 在 Amazon Chime SDK 會議中設定用於合成的邊界和邊角屬性
<a name="video-attribute"></a>

您可以視需要使用 `VideoAttribute` 參數來指定影片圖磚的邊界和邊角設定。您可以指定顏色、寬度和圓角。您也可以指定反白顏色，當有人說話時，邊界會變更為該顏色。

您的屬性設定適用於所有配置，無論內容共用為何。

下圖顯示套用邊界顏色和邊角半徑的影片圖磚。

![\[具有紅色邊界和圓角的螢幕共用和影片圖磚的影像。\]](http://docs.aws.amazon.com/zh_tw/chime-sdk/latest/dg/images/compositing-speaker-border.png)


下列範例示範如何使用每個屬性。在這種情況下，影片圖磚具有圓角和五像素半徑。圖磚具有綠色邊界，以及五個像素寬。當發言者說話時， `HighlightColor` 屬性會將邊界顏色變更為紅色。

```
{
   "CompositedVideo":{
      "Layout":"GridView",
      "Resolution":"FHD",
      "GridViewConfiguration":{
         "ContentShareLayout":"ActiveSpeakerOnly",
         "ActiveSpeakerOnlyConfiguration":{
            "ActiveSpeakerPosition":"TopRight"
         }
         "VideoAttribute": {
            "CornerRadius"   : 10,                               
            "BorderColor"    : "Green", 
            "HighlightColor" : "Red",  
            "BorderThickness": 5 
          },      
       }
   }
}
```

**VideoAttribute**  
*描述* – 指定影片圖磚邊界和圓角的設定  
*允許的值* – `BorderColor` \$1 `BorderThickness` \$1 `CornerRadius` \$1 `HighlightColor`  
*必要* – 否

**VideoAttribute.BorderColor**  
*描述* – 定義所有影片圖磚的邊界顏色  
*允許的值* – 顏色名稱，例如紅色、綠色或藍色  
*必要* – 否

**VideoAttribute.BorderThickness**  
*描述* – 定義所有影片並排的邊界厚度，以像素為單位  
*類型* – 整數  
*允許的值* – 1–20  
*必要* – 否

**VideoAttribute.CornerRadius**  
*描述* – 定義所有影片並排的邊角半徑，以像素為單位。  
*類型* – 整數  
*允許的值* – 1–20  
*必要* – 否

**VideoAttribute.HighlightColor**  
*描述* – 定義發言者或發言者說話時顯示的邊界顏色  
*允許的值* – 顏色名稱，例如紅色、綠色或藍色  
*必要* – 否

# 使用配置組態在 Amazon Chime SDK 會議中進行合成
<a name="compositing-layouts"></a>

下列主題說明如何使用不同的組態配置。配置只會在某人啟動內容共享時生效。展開每個區段以進一步了解。

## ActiveSpeakerOnlyConfiguration
<a name="active-speaker-only"></a>

`ActiveSpeakerOnlyConfiguration` 會顯示內容共用和作用中發言者的影片，這表示說話的人會出現在覆蓋內容共用串流的小型影片圖磚中。

下圖顯示喇叭圖磚的組態和可用位置。

![\[影像顯示視窗中心的大型影片圖磚，以及左上角的小型圖磚。\]](http://docs.aws.amazon.com/zh_tw/chime-sdk/latest/dg/images/compositing-active-speaker-4x.png)


下列範例示範如何以程式設計方式實作`ActiveSpeakerOnly`配置。在此情況下，簡報者圖磚會出現在左上角。

```
{
   "CompositedVideo":{
      "Layout":"GridView",
      "Resolution":"FHD",
      "GridViewConfiguration":{
         "ContentShareLayout":"ActiveSpeakerOnly",
         "ActiveSpeakerOnlyConfiguration":{
            "ActiveSpeakerPosition":"TopLeft"
         }
      }
   }
}
```

**ActiveSpeakerOnlyConfiguration**  
*描述* – `ActiveSpeakerOnly`影片圖標的組態設定  
*類型* – ActiveSpeakerOnlyConfiguration 物件  
*必要* – 否

**ActiveSpeakerOnlyConfiguration.ActiveSpeakerPosition**  
*描述* – 作用中發言者視訊圖磚的位置  
*類型* – 字串  
*有效值* – `TopLeft` \$1 `TopRight` \$1 `BottomLeft` \$1 `BottomRight`  
*必要* – 否  
*預設* – `TopRight`

## PresenterOnlyConfiguration
<a name="presenter-only"></a>

`PresenterOnlyConfiguration` 無論誰說話， 只會顯示內容共用和簡報者的影片。下圖顯示 組態。

![\[四個畫面的影像。每個畫面中間都有一個共用視窗，每個角落都有一個視訊圖標。\]](http://docs.aws.amazon.com/zh_tw/chime-sdk/latest/dg/images/compositing-presenter-only-4x.png)


下列範例顯示如何以程式設計方式實作配置，其中簡報者位於右上角。

```
{
    "CompositedVideo": {
    "Layout": "GridView",
    "Resolution": "FHD",
     "GridViewConfiguration": {
         "ContentShareLayout": "PresenterOnly",
         "PresenterOnlyConfiguration": { 
             "PresenterPosition": "TopRight"
             }
         }           
     }
}
```

**PresenterOnlyConfiguration**  
*描述* – `PresenterOnly`配置的組態設定  
*類型* – `PresenterOnlyConfiguration` 物件  
*必要* – 否

**PresenterOnlyConfiguration.PresenterPosition**  
*描述* – 簡報者影片圖磚的位置  
*類型* – 字串  
*有效值* – `TopLeft` \$1 `TopRight` \$1 `BottomLeft` \$1 `BottomRight`  
*必要* – 否  
*預設* – `TopRight`

## HorizontalLayoutConfiguration
<a name="horizontal-layout"></a>

`HorizontalLayoutConfiguration` 水平顯示內容共用和影片串流。您可以使用 `TilePosition`設定，在內容共用串流上方或下方顯示圖磚。簡報者一律會出現在左側。其他圖磚會以 指定的順序顯示`JoinSequence`。

下圖顯示內容共用串流下方的圖磚。

![\[本圖顯示下方一行中的大型中央圖磚和 4 個較小的圖磚。\]](http://docs.aws.amazon.com/zh_tw/chime-sdk/latest/dg/images/compositing-horizontal-bottom.png)


下列範例示範如何以程式設計方式實作水平配置。在此情況下，配置會依 排序圖磚`SpeakerSequence`，並將其置於畫面共用下方。配置最多允許四個圖磚，並套用 16/9 長寬比。

```
{
   "CompositedVideo":{
      "Layout":"GridView",
      "Resolution":"FHD",
      "GridViewConfiguration":{
         "ContentShareLayout":"Horizontal",
         "HorizontalLayoutConfiguration":{
            "TileOrder":"SpeakerSequence",
            "TilePosition":"Bottom",
            "TileCount":4,
            "TileAspectRatio":"16/9"
         }
      }
   }
}
```

**HorizontalLayoutConfiguration**  
*描述* – 水平配置的組態設定  
*類型* – HorizontalLayoutConfiguration 物件  
*必要* – 否

**HorizontalLayoutConfiguration.TilePosition**  
*描述* – 將圖磚放置在內容共用的上方或下方。  
*類型* - 字串  
*有效值* – `Bottom` \$1 `Top`  
*必要* – 否  
*預設* – 底部

**HorizontalLayoutConfiguration.TileOrder**  
*描述* – 使用者加入或說話時排序圖磚  
*類型* – 字串  
*有效值* – `JoinSequence` \$1 `SpeakerSequence`  
*必要* – 否  
*預設* – JoinSequence

**HorizontalLayoutConfiguration.TileCount**  
*描述* – 指定畫面共用期間保持可見的圖磚數量  
*類型* – 整數  
*有效值* – 1–10  
*必要* – 否  
*預設* – 4

**HorizontalLayoutConfiguration.TileAspectRatio**  
*描述* – 指定圖磚的長寬比  
*類型* – 整數  
*有效值* – *n***/***n*  
*必要* – 否  
*預設* – 16/9，值會套用至所有圖磚

## VerticalLayoutConfiguration
<a name="vertical-layout"></a>

`VerticalLayoutConfiguration` 會顯示內容共用和四部最近堆疊在右側的影片。簡報者一律會出現在頂端。其他出席者會以 指定的順序顯示`TileOrder`。

![\[影像顯示視窗中心的大型影片圖磚，以及堆疊在右側的 4 個較小的圖磚。\]](http://docs.aws.amazon.com/zh_tw/chime-sdk/latest/dg/images/grid-vertical.png)


下列範例示範如何以程式設計方式實作垂直配置。在此情況下，配置會依 JoinSequence 排序圖磚，並將其放置在畫面共用的右側。配置最多允許四個圖磚，並套用 16/9 長寬比。

```
{
   "CompositedVideo":{
      "Layout": "GridView",
      "Resolution": "FHD",
      "GridViewConfiguration":{
         "ContentShareLayout": "Vertical",
         "VerticalLayoutConfiguration":{
            "TileOrder": "JoinSequence",
            "TilePosition": "Right",
            "TileCount": 4,
            "TileAspectRatio": "16/9"
         }
      }
   }
}
```

**VerticalLayoutConfiguration**  
*描述* – 垂直配置的組態設定  
*類型* – VerticalLayoutConfiguration 物件  
*必要* – 否

**VerticalLayoutConfiguration.TilePosition**  
*描述* – 將圖磚放置在內容共用的右側或左側。  
*類型* – 字串  
*有效值* – `Bottom` \$1 `Top`  
*必要* – 否  
*預設* – 底部

**VerticalLayoutConfiguration.TileOrder**  
*描述* – 使用者加入或說話時排序圖磚  
*類型* – 字串  
*有效值* – `JoinSequence` \$1 `SpeakerSequence`  
*必要* – 否  
*預設* – JoinSequence

**VerticalLayoutConfiguration.TileCount**  
*描述* – 指定圖磚數量  
*類型* – 整數  
*有效值* – 1–10  
*必要* – 否  
*預設* – 4

**VerticalLayoutConfiguration.TileAspectRatio**  
*描述* – 指定圖磚的長寬比  
*類型* – 整數  
*有效值* – *n***/***n*  
*必要* – 否  
*預設* – 9/16，值會套用至所有圖磚

# 為 Amazon Chime SDK 媒體管道建立服務連結角色
<a name="create-pipeline-role"></a>

下列各節中的資訊說明如何建立服務連結角色，以授予媒體管道存取 Amazon Chime SDK 會議的權限。

**Topics**
+ [設定角色許可](#pipeline-role-permissions)
+ [建立 服務連結角色](#create-sl-role)
+ [編輯 服務連結角色](#edit-pipeline-role)
+ [刪除 服務連結角色](#delete-pipeline-role)
+ [支援服務連結角色的區域](#role-supported-regions)

## 設定角色許可
<a name="pipeline-role-permissions"></a>

媒體管道使用名為 *AWSServiceRoleForAmazonChimeSDKMediaPipelines* 的服務連結角色。此角色允許擷取管道存取 Amazon Chime SDK 會議，並代表您將指標發佈至 Amazon CloudWatch。角色信任 `mediapipelines.chime.amazonaws.com`服務。

角色許可政策允許 Amazon Chime SDK 對所有 AWS 資源完成下列動作：
+ 動作：`all AWS resources` 上的 `cloudwatch:PutMetricData`
+ 動作：`all AWS resources` 上的 `chime:CreateAttendee`
+ 動作：`all AWS resources` 上的 `chime:DeleteAttendee`
+ 動作：`all AWS resources` 上的 `chime:GetMeeting`
+ 動作：`arn:aws:kinesisvideo:*:111122223333:stream/ChimeMediaPipelines-*` 上的 `kinesisvideo:CreateStream`
+ 動作：`arn:aws:kinesisvideo:*:111122223333:stream/ChimeMediaPipelines-*` 上的 `kinesisvideo:PutMedia`
+ 動作：`arn:aws:kinesisvideo:*:111122223333:stream/ChimeMediaPipelines-*` 上的 `kinesisvideo:UpdateDataRetention`
+ 動作：`arn:aws:kinesisvideo:*:111122223333:stream/ChimeMediaPipelines-*` 上的 `kinesisvideo:DescribeStream`
+ 動作：`arn:aws:kinesisvideo:*:111122223333:stream/ChimeMediaPipelines-*` 上的 `kinesisvideo:GetDataEndpoint`
+ 動作：`arn:aws:kinesisvideo:*:111122223333:stream/*` 上的 `kinesisvideo:ListStreams`

您必須設定許可，IAM 實體 (例如使用者、群組或角色) 才能建立、編輯或刪除服務連結角色。如需許可的詳細資訊，請參閱《*IAM 使用者指南*》中的[服務連結角色許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions)。

## 建立 服務連結角色
<a name="create-sl-role"></a>

您可以使用 IAM 主控台建立服務連結角色，以搭配 Amazon Chime SDK 媒體管道使用。您必須擁有 IAM 管理許可才能完成這些步驟。如果沒有，請聯絡系統管理員。

**建立角色**

1. 登入 AWS 管理主控台，然後開啟位於 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam) 的 IAM 主控台。

1. 在 IAM 主控台的導覽窗格中，選擇**角色**，然後選擇**建立角色**。

1. 選擇 **AWS Service** 角色類型，然後選擇 **Chime SDK 媒體管道**。

   IAM 政策隨即顯示。

1. 選取政策旁的核取方塊，然後選擇**下一步：標籤**。

1. 選擇下**一步：檢閱**。

1. 視需要編輯描述，然後選擇**建立角色**。

您也可以使用 AWS CLI 或 AWS API 來建立名為 *mediapipelines.chime.amazonaws.com* 的服務連結角色。在 AWS CLI 中，執行此命令：

```
aws iam create-service-linked-role --aws-service-name mediapipelines.chime.amazonaws.com
```

如需建立角色的詳細資訊，請參閱《*IAM 使用者指南*》中的[建立服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#create-service-linked-role)。如果您刪除此角色，您可以使用相同的程序再次建立該角色。

## 編輯 服務連結角色
<a name="edit-pipeline-role"></a>

您無法編輯 *AWSServiceRoleForAmazonChimeSDKMediaPipelines* 服務連結角色。建立角色之後，您無法變更其名稱，因為其他實體可能會參考角色。不過，您可以使用 IAM 來編輯角色的描述。如需詳細資訊，請參閱《*IAM 使用者指南*》中的[編輯服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role)。

## 刪除 服務連結角色
<a name="delete-pipeline-role"></a>

如果不需要服務連結角色，建議您將其刪除。若要這麼做，請先刪除使用該角色的媒體管道。您可以使用 AWS CLI 或 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_DeleteMediaCapturePipeline.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_DeleteMediaCapturePipeline.html) API 來刪除管道。

**使用 CLI 刪除管道**  
在 CLI AWS 中使用此命令來刪除您帳戶中的媒體管道。

```
aws chime-sdk-media-pipelines delete-media-capture-pipeline --media-pipeline-id Pipeline_Id
```

**使用 API 刪除管道**  
使用 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_DeleteMediaCapturePipeline.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_DeleteMediaCapturePipeline.html) API 刪除您帳戶中的媒體管道。

**刪除角色**  
刪除管道後，您可以使用 IAM 主控台、CLI AWS 或 AWS API 來刪除角色。如需刪除角色的詳細資訊，請參閱《*IAM 使用者指南*》中的[刪除服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role)。

## 支援服務連結角色的區域
<a name="role-supported-regions"></a>

Amazon Chime SDK 支援在提供服務的所有 AWS 區域中使用服務連結角色。如需詳細資訊，請參閱《》中的 [Amazon Chime SDK 端點和配額](https://docs.aws.amazon.com/general/latest/gr/chime-sdk.html)*Amazon Web Services 一般參考*。

# 使用 Amazon Chime SDK 媒體管道事件
<a name="media-pipe-events"></a>

每種媒體管道都會傳送生命週期事件，您可以用來觸發通知和啟動下游工作流程。使用媒體管道事件的一些範例包括：
+ 在媒體管道完成後處理擷取的媒體。
+ 如果媒體管道發生暫時故障，請通知會議參與者。
+ 如果媒體管道永久失敗，請停止會議。

您可以將事件傳送至 Amazon EventBridge、Amazon Simple Notification Service (SNS) 和 Amazon Simple Queue Service (SQS)。如需詳細資訊，請參閱《*Amazon EventBridge 使用者指南*》中的[來自 AWS 服務的事件](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-service-event.html)。

## 已建立 Amazon Chime SDK 媒體管道
<a name="media-pipeline-create"></a>

建立媒體管道時，Amazon Chime SDK 會傳送此事件。

**範例：事件資料**  
 以下是此事件的範例資料。

```
{
    "version": "0", 
    "id": "5ee6265a-0a40-104e-d8fd-a3b4bdd78483", 
    "detail-type": "Chime Media Pipeline State Change", 
    "source": "aws.chime", 
    "account": "111122223333", 
    "time": "2021-07-28T20:20:49Z", 
    "region": "us-east-1", 
    "resources": [], 
    "detail": {
        "version": "0", 
        "eventType": "chime:MediaPipelineInProgress", 
        "timestamp": 1627503649251, 
        "meetingId": "1e6bf4f5-f4b5-4917-b8c9-bda45c340706", 
        "externalMeetingId": "Meeting_Id",
        "mediaPipelineId": "e40ee45e-2ed1-408e-9156-f52b8208a491", 
        "mediaRegion": "ap-southeast-1"
    }
}
```

## 已刪除 Amazon Chime SDK 媒體管道
<a name="media-pipeline-delete"></a>

Amazon Chime SDK 會在媒體管道成功停止後傳送此事件。

**範例：事件資料**  
以下是此事件的範例資料。

```
{
    "version": "0",
    "id": "9e11e429-97fd-9532-5670-fac3f7abc05f",
    "detail-type": "Chime Media Pipeline State Change",
    "source": "aws.chime",
    "account": "365135496707",
    "time": "2021-07-28T20:21:50Z",
    "region": "us-east-1",
    "resources": [],
    "detail": {
        "version": "0",
        "eventType": "chime:MediaPipelineDeleted",
        "timestamp": 1627503710485,
        "meetingId": "1e6bf4f5-f4b5-4917-b8c9-bda45c340706",
        "externalMeetingId": "Meeting_Id",
        "mediaPipelineId": "e40ee45e-2ed1-408e-9156-f52b8208a491",
        "mediaRegion": "ap-southeast-1"
    }
}
```

## Amazon Chime SDK 媒體管道發生暫時故障
<a name="pipeline-temp-failure"></a>

當媒體管道發生暫時故障時，Amazon Chime SDK 會傳送此事件。

**範例：事件資料**  
以下是此事件的範例資料。

```
{
    "version": "0",
    "id": "abc141e1-fc2e-65e8-5f18-ab5130f1035a",
    "detail-type": "Chime Media Pipeline State Change",
    "source": "aws.chime",
    "account": "365135496707",
    "time": "2021-07-28T21:16:42Z",
    "region": "us-east-1",
    "resources": [],
    "detail": {
        "version": "0",
        "eventType": "chime:MediaPipelineTemporaryFailure",
        "timestamp": 1627507002882,
        "meetingId": "7a5434e3-724a-4bbb-9eb6-2fb209dc0706",
        "externalMeetingId": "Meeting_Id",
        "mediaPipelineId": "ebd62f4e-04a9-426d-bcb0-974c0f266400",
        "mediaRegion": "eu-south-1"
    }
}
```

## Amazon Chime SDK 媒體管道進行中
<a name="pipeline-in-progress"></a>

當媒體管道開始擷取成品時，Amazon Chime SDK 會傳送此事件。

**範例：事件資料**  
以下是此事件的範例資料。

```
{
    "version": "0",
    "id": "9e11e429-97fd-9532-5670-fac3f7abc05f",
    "detail-type": "Chime Media Pipeline State Change",
    "source": "aws.chime",
    "account": "365135496707",
    "time": "2021-07-28T20:21:50Z",
    "region": "us-east-1",
    "resources": [],
    "detail": {
        "version": "0",
        "eventType": "chime:MediaPipelineInProgress",
        "timestamp": 1627503710485?,
        "meetingId": "1e6bf4f5-f4b5-4917-b8c9-bda45c340706",
        "externalMeetingId": "Meeting_Id",
        "mediaPipelineId": "e40ee45e-2ed1-408e-9156-f52b8208a491",
        "mediaRegion": "ap-southeast-1"
    }
}
```

## Amazon Chime SDK 媒體管道永久故障
<a name="pipeline-perm-failure"></a>

當媒體管道永久失敗時，Amazon Chime SDK 會傳送此事件。

**範例：事件資料**  
以下是此事件的範例資料。

```
{
    "version": "0",
    "id": "9e11e429-97fd-9532-5670-fac3f7abc05f",
    "detail-type": "Chime Media Pipeline State Change",
    "source": "aws.chime",
    "account": "365135496707",
    "time": "2021-07-28T20:21:50Z",
    "region": "us-east-1",
    "resources": [],
    "detail": {
        "version": "0",
        "eventType": "chime:MediaPipelinePermanentFailure",
        "timestamp": 1627503710485,
        "meetingId": "1e6bf4f5-f4b5-4917-b8c9-bda45c340706",
        "externalMeetingId": "Meeting_Id",
        "mediaPipelineId": "e40ee45e-2ed1-408e-9156-f52b8208a491",
        "mediaRegion": "ap-southeast-1"
    }
}
```

# 設定 Amazon Chime SDK 媒體管道的 Amazon S3 儲存貯體許可
<a name="s3-permissions"></a>

如果您尚未建立 Amazon S3 儲存貯體，請務必在您主持會議的帳戶和區域中建立 。此外，請確定您將適當的許可授予服務。如需建立 Amazon S3 儲存貯體的詳細資訊，請參閱 [為 Amazon Chime SDK 媒體擷取管道建立 Amazon S3 儲存貯體](create-s3-bucket.md)。

# 將 Amazon Chime SDK 媒體管道事件傳送至 CloudTrail
<a name="pipeline-cloudtrail"></a>

AWS 會在您建立 AWS 帳戶時為您啟用 CloudTrail。當使用者在媒體管道 SDK 中呼叫支援的 API 時，CloudTrail 會記錄**事件歷史記錄**中該 API 的活動，以及其他 AWS 事件。您可以在 AWS 帳戶中檢視、搜尋和下載媒體管道事件。如需詳細資訊，請參閱《[CloudTrail 使用者指南》中的使用 CloudTrail 檢視事件事件歷史記錄](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html)。 *CloudTrail *

若要持續記錄媒體管道事件，您可以建立*追蹤*。追蹤能讓 CloudTrail 將日誌檔案交付至 Amazon S3 儲存貯體。下列範例顯示媒體管道追蹤。資料包含呼叫 API 的使用者、用來呼叫 API 的 IAM 角色，以及時間戳記。如需使用 CloudTrail 的詳細資訊，請參閱《*Amazon Chime SDK 管理員指南*》中的[記錄和監控](https://docs.aws.amazon.com/chime-sdk/latest/ag/monitoring-overview.html)。

```
{
   "Records": [    
   {
      "eventVersion": "1.08",
      "userIdentity": {
          "type": "AssumedRole",
          "principalId": "ABCDEFGHIJKLMNOPQRSTUV:user-name",
          "arn": "arn:aws:sts::123456789101:assumed-role/role-name/user-name",
          "accountId": "109876543210",
          "accessKeyId": "ABCDEFGHIJKLMNOPQRSTUV",
          "sessionContext": {
              "sessionIssuer": {
                  "type": "Role",
                  "principalId": "ABCDEFGHIJKLMNOPQRSTUV",
                  "arn": "arn:aws:iam::109876543210:role/role-name",
                  "accountId": "012345678910",
                  "userName": "user-name"
                  },
          "webIdFederationData": {},
          "attributes": {
              "mfaAuthenticated": "false",
              "creationDate": "2022-03-08T19:34:55Z"
              }
          }
      },
      "eventTime": "2022-03-08T20:28:41Z",
     "eventSource": "chime-sdk-media-pipelines.amazonaws.com",
     "eventName": "CreateMediaCapturePipeline",
     "awsRegion": "us-east-1",
     "sourceIPAddress": "127.0.0.1",
     "userAgent": "[]/[]",
     "requestParameters": {
         "sourceType": "ChimeSdkMeeting",
         "sourceArn": "Hidden_For_Security_Reasons",
         "sinkType": "S3Bucket",
         "sinkArn": "Hidden_For_Security_Reasons",
         "chimeSdkMeetingConfiguration": {
             "artifactsConfiguration": {
                 "audio": {
                    "muxType": "AudioOnly"
                 },
            "video": {
                "state": "Enabled",
                "muxType": "VideoOnly"
                },
            "content": {
                "state": "Enabled",
                "muxType": "ContentOnly"
                }
            }
        }
      },
     "responseElements": {
        "mediaCapturePipeline": {
        "mediaPipelineId": "pipeline-uuid",
        "sourceType": "ChimeSdkMeeting",
        "sourceArn": "Hidden_For_Security_Reasons",
        "status": "Initializing",
        "sinkType": "S3Bucket",
        "sinkArn": "Hidden_For_Security_Reasons",
        "createdTimestamp": "2022-03-08T20:28:41.336Z",
        "updatedTimestamp": "2022-03-08T20:28:41.463Z",
        "chimeSdkMeetingConfiguration": {
            "artifactsConfiguration": {
                "audio": {
                    "muxType": "AudioOnly"
                },
            "video": {
                "state": "Enabled",
                 "muxType": "VideoOnly"
                 },
             "content": {
                 "state": "Enabled",
                 "muxType": "ContentOnly"
                 }
              }
            }
          }
      },
      "requestID": "request-id",
      "eventID": "event-id",
     "readOnly": false,
      "eventType": "AwsApiCall",
      "managementEvent": true,
      "eventCategory": "Management",
      "recipientAccountId": "112233445566",
      "tlsDetails": {
          "tlsVersion": "TLSv1.2",
          "clientProvidedHostHeader": "example.com"
       }
    },  
  ]
}
```

# 停止 Amazon Chime SDK 媒體管道的最佳實務
<a name="stop-pipe-best-practices"></a>

作為停止媒體管道的最佳實務，請呼叫 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_DeleteMediaPipeline.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_DeleteMediaPipeline.html) API。API 可讓您刪除媒體擷取和媒體即時連接器管道。您也可以呼叫 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_DeleteMediaCapturePipeline.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_DeleteMediaCapturePipeline.html) API 來刪除媒體擷取管道。會議結束時，所有媒體管道都會停止。

# 使用 Amazon Chime SDK 即時轉錄
<a name="meeting-transcription"></a>

您可以使用 Amazon Chime SDK 即時轉錄來產生會議的即時使用者歸屬文字記錄。Amazon Chime SDK 即時轉錄與 Amazon Transcribe 和 Amazon Transcribe Medical 服務整合，以在進行時產生 Amazon Chime SDK 會議的轉錄。

Amazon Chime SDK 即時轉錄會個別處理每個使用者的音訊，以提升多喇叭案例的準確性。Amazon Chime SDK 使用其作用中的通話者演算法來選取前兩個作用中的通話者，然後透過單一串流，將其音訊以不同的頻道傳送至 Amazon Transcribe。會議參與者會透過 Amazon Chime SDK 資料訊息接收使用者歸屬的轉錄。您可以透過各種方式使用轉錄，例如顯示字幕、建立會議轉錄，或使用轉錄進行內容分析。

在會議轉錄期間，即時轉錄會使用一個串流到 Amazon Transcribe。標準 Amazon Transcribe 和 Amazon Transcribe Medical 費用適用。如需詳細資訊，請參閱 [Amazon Transcribe 定價](https://aws.amazon.com/transcribe/pricing/)。有關用量或帳單的問題，請聯絡您的 AWS 客戶經理。

**重要**  
根據預設，Amazon Transcribe 可能會使用和存放服務處理的音訊內容，以開發和改善 AWS AI/ML 服務，如[AWS 服務條款](https://aws.amazon.com/service-terms/)第 50 節所述。使用 Amazon Transcribe 可能受到有關記錄或攔截電子通訊的聯邦和州法律法規的約束。您和最終使用者有責任遵守有關記錄的所有適用法律，包括適當地通知記錄工作階段或通訊中的所有參與者正在記錄工作階段或通訊，並取得所有必要的同意。您可以使用 AWS Organizations 設定 AWS AI 服務選擇退出政策，以選擇退出 AWS 使用音訊內容來開發和改善 AI/ML 服務。

**Topics**
+ [系統架構](#sys-architecture)
+ [帳單和用量](#billing-and-usage)
+ [設定您的帳戶以進行 Amazon Chime SDK 即時轉錄](configure-transcribe.md)
+ [選擇 Amazon Chime SDK 即時轉錄選項](transcription-options.md)
+ [啟動和停止 Amazon Chime SDK 即時轉錄](initiate-transcription.md)
+ [Amazon Chime SDK 即時轉錄參數](#transcription-parameters)
+ [了解 Amazon Chime SDK 即時轉錄事件](transcription-events.md)
+ [了解 Amazon Chime SDK 即時轉錄訊息](process-msgs.md)
+ [處理收到的 Amazon Chime SDK 即時文字記錄事件](delivery-examples.md)
+ [剖析 Amazon Chime SDK 文字記錄](parse-transcripts.md)

## 系統架構
<a name="sys-architecture"></a>

Amazon Chime SDK 透過與您的 Amazon Transcribe 或 Amazon Transcribe Medical 帳戶的服務端整合，建立即時會議轉錄，而無需音訊離開 AWS 網路。為了提高準確性，使用者音訊會分別處理，然後混合到會議。Amazon Chime SDK 使用其作用中的發言者演算法來選取前兩個作用中的發言者，然後透過單一串流將其音訊傳送至個別頻道中的 Amazon Transcribe 或 Amazon Transcribe Medical。為了減少延遲，使用者歸屬的轉錄會透過資料訊息直接傳送給每個會議參與者。使用媒體管道擷取會議音訊時，也會擷取會議的轉錄資訊。

![\[顯示會議轉錄資料流程的圖表。\]](http://docs.aws.amazon.com/zh_tw/chime-sdk/latest/dg/images/transcription-architecture.png)


## 帳單和用量
<a name="billing-and-usage"></a>

在會議轉錄期間，即時轉錄會使用一個串流到 Amazon Transcribe 或 Amazon Transcribe Medical。標準 Amazon Transcribe 和 Amazon Transcribe Medical 費用適用。如需詳細資訊，請參閱 [Amazon Transcribe 定價](https://aws.amazon.com/transcribe/pricing/)。有關用量或帳單的問題，請聯絡您的 AWS 客戶經理。

# 設定您的帳戶以進行 Amazon Chime SDK 即時轉錄
<a name="configure-transcribe"></a>

在使用 Amazon Chime SDK 即時轉錄之前，您必須授予 Amazon Chime SDK 許可，以呼叫您 AWS 帳戶中的 Amazon Transcribe 和 Amazon Transcribe Medical。您可以透過將 Chime Transcription 服務連結角色新增至您的帳戶來執行此操作。如需有關為即時轉錄建立服務連結角色的資訊，請參閱《*Amazon Chime SDK 管理指南*》中的[使用具有即時轉錄的角色](https://docs.aws.amazon.com/chime-sdk/latest/ag/using-service-linked-roles-transcription.html)。如需 IAM 服務連結角色的詳細資訊，請參閱《*IAM 使用者指南*》中的[服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html)。

# 選擇 Amazon Chime SDK 即時轉錄選項
<a name="transcription-options"></a>

當您使用 Amazon Chime SDK 即時轉錄時，您會在帳戶中 AWS 使用 [Amazon Transcribe](https://aws.amazon.com/transcribe/) 或 [Amazon Transcribe Medical](https://aws.amazon.com/transcribe/medical/)。您可以存取 [Amazon Transcribe 支援的所有串流語言](https://docs.aws.amazon.com/transcribe/latest/dg/what-is-transcribe.html)，以及[自訂詞彙](https://docs.aws.amazon.com/transcribe/latest/dg/how-vocabulary.html)和[詞彙篩選條件](https://docs.aws.amazon.com/transcribe/latest/dg/filter-unwanted-words.html)等功能。使用 Amazon Transcribe Medical 時，您可以選擇醫療專科、對話類型，並選擇性地提供任何自訂詞彙。標準 Amazon Transcribe 和 Amazon Transcribe Medical 費用適用。

選擇轉錄選項的程序遵循下列步驟。

## 步驟 1：選擇轉錄服務
<a name="choose-service"></a>

您需要決定要使用哪些轉錄服務，[Amazon Transcribe](https://aws.amazon.com/transcribe/) 或 [Amazon Transcribe Medical](https://aws.amazon.com/transcribe/medical/)。

如果您的使用案例需要醫學語音轉文字功能，您可能想要使用 Amazon Transcribe Medical。對於所有其他使用案例，您可能想要使用 Amazon Transcribe。

您可以指定呼叫 `StartMeetingTranscription` API 時要使用的轉錄服務：
+ 若要使用 Amazon Transcribe，`TranscriptionConfiguration`請使用 指定 `EngineTranscribeSettings`。
+ 若要使用 Amazon Transcribe Medical，`TranscriptionConfiguration`請使用 指定 `EngineTranscribeMedicalSettings`。

## 步驟 2：選擇轉錄區域
<a name="choose-region"></a>

您需要為轉錄服務選擇 AWS 區域。如需 Amazon Transcribe 和 Amazon Transcribe Medical 可用 AWS 區域的相關資訊，請參閱[AWS 區域服務](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/)表。

 一般而言，會議媒體區域與轉錄區域之間的最低延遲可提供最佳的使用者體驗。對於最低延遲，請盡可能使用相同的區域進行媒體和轉錄。不過，在選取區域時，您可能會考慮其他因素，例如法規要求或您設定 Amazon Transcribe 或 Amazon Transcribe Medical 的區域。

Amazon Transcribe 和 Amazon Transcribe Medical 功能是區域特定功能，例如自訂詞彙或詞彙篩選條件。如果您設定任何這些功能，您應該在打算使用即時轉錄的所有 AWS 區域中進行相同的設定。或者，您可以將相同的 Amazon Transcribe 區域用於所有會議。

您可以指定轉錄服務使用的 區域。您可以在呼叫 `StartMeetingTranscription` API 時，將區域名稱新增至轉錄引擎設定的 `Region` 欄位來執行此操作。如果您未指定區域，Amazon Chime SDK 會嘗試在會議的媒體區域中使用轉錄服務。若要讓 Amazon Chime SDK 為您選取轉錄服務的區域，`auto`請在 `Region` 欄位中指定 。當您這樣做時，Amazon Chime 會根據會議的媒體區域選取轉錄服務區域，如下表所述。如需 `StartMeetingTranscription` API 的詳細資訊，請參閱本指南[啟動和停止 Amazon Chime SDK 即時轉錄](initiate-transcription.md)中的 。

**注意**  
Amazon Chime SDK 選取的轉錄區域可能會有所變更 AWS，因為 Amazon Chime SDK、Amazon Transcribe 和 Amazon Transcribe Medical 提供更多區域。

**Amazon Transcribe 的自動區域選擇**  



|  Amazon Chime SDK 媒體區域  |  區域代碼  |  轉錄區域  | 
| --- | --- | --- | 
|  美國東部 (俄亥俄)  |  us-east-2  | us-east-2  | 
|  美國東部 (維吉尼亞北部)  |  us-east-1  | us-east-1  | 
|  美國西部 (加利佛尼亞北部)  |  us-west-1  | us-west-2 | 
|  美國西部 (奧勒岡)  |  us-west-2  | us-west-2  | 
|  非洲 （開普敦）**\$1**  |  af-south-1  | eu-west-2  | 
|  亞太區域 (孟買)  |  ap-south-1  | eu-west-2 | 
|  亞太區域 (首爾)  |  ap-northeast-2  | ap-northeast-2 | 
|  亞太區域 (新加坡)  |  ap-southeast-1  | ap-northeast-1 | 
|  亞太地區 (悉尼)  |  ap-southeast-2  | ap-southeast-2 | 
|  亞太區域 (東京)  |  ap-northeast-1  | ap-northeast-1 | 
|  加拿大 (中部)  |  ca-central-1  | ca-central-1 | 
|  歐洲 (法蘭克福)   |  eu-central-1  | eu-central-1  | 
|  歐洲 (愛爾蘭)  |  eu-west-1  | eu-west-1 | 
|  歐洲 (倫敦)  |  eu-west-2  | eu-west-2  | 
|  歐洲 （米蘭）**\$1**  |  eu-south-1  | eu-central-1  | 
|  Europe (Paris)  |  eu-west-3  | eu-central-1  | 
|  Europe (Stockholm)  |  eu-north-1  | eu-central-1 | 
|  南美洲 (聖保羅)  |  sa-east-1  | sa-east-1 | 
|  GovCloud （美國東部）  |  us-gov-east-1  |  us-gov-west-1  | 
|  GovCloud （美國西部）  |  us-gov-west-1  |  us-gov-west-1  | 

**Amazon Transcribe Medical 的自動區域選擇**  



|  Amazon Chime SDK 媒體區域  |  區域代碼  |  轉錄區域  | 
| --- | --- | --- | 
|  美國東部 (俄亥俄)  |  us-east-2  | us-east-2 | 
|  美國東部 (維吉尼亞北部)  |  us-east-1  | us-east-1 | 
|  美國西部 (加利佛尼亞北部)  |  us-west-1  | us-west-2 | 
|  美國西部 (奧勒岡)  |  us-west-2  | us-west-2 | 
|  非洲 （開普敦）**\$1**  |  af-south-1  |  eu-west-1  | 
|  亞太區域 (孟買)  |  ap-south-1  | eu-west-1  | 
|  亞太區域 (首爾)  |  ap-northeast-2  | us-west-2 | 
|  亞太區域 (新加坡)  |  ap-southeast-1  | ap-southeast-2 | 
|  亞太地區 (悉尼)  |  ap-southeast-2  | ap-southeast-2 | 
|  亞太區域 (東京)  |  ap-northeast-1  | us-west-2 | 
|  加拿大 (中部)  |  ca-central-1  | ca-central-1 | 
|  歐洲 (法蘭克福)   |  eu-central-1  | eu-west-1 | 
|  歐洲 (愛爾蘭)  |  eu-west-1  | eu-west-1 | 
|  歐洲 (倫敦)  |  eu-west-2  | us-east-1 | 
|  歐洲 （米蘭）**\$1**  |  eu-south-1  | eu-west-1 | 
|  Europe (Paris)  |  eu-west-3  | eu-west-1 | 
|  Europe (Stockholm)  |  eu-north-1  | eu-west-1 | 
|  南美洲 (聖保羅)  |  sa-east-1  | us-east-1 | 

**注意**  
若要在標示星號 (**\$1**) 的區域中使用即時轉錄，您必須先在帳戶中 AWS 啟用 區域。如需詳細資訊，請參閱 中的[啟用區域](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html) AWS 一般參考。

如需每個服務的區域和端點的詳細資訊，請參閱：
+ [Amazon Chime SDK 媒體區域](https://docs.aws.amazon.com/chime-sdk/latest/dg/chime-sdk-meetings-regions.html)
+ [Amazon Transcribe 端點和配額](https://docs.aws.amazon.com/general/latest/gr/transcribe.html#transcribe_region)
+ [Amazon Transcribe Medical 端點和配額](https://docs.aws.amazon.com/general/latest/gr/transcribe-medical.html)

## 步驟 3：檢閱服務配額
<a name="transcribe-quotas"></a>

每個具有即時轉錄的 Amazon Chime SDK 會議只需要一個 HTTP/2 串流到 Amazon Transcribe 或 Amazon Transcribe Medical。這兩個服務都有同時 HTTP/2 串流數量的區域服務配額，以及每秒啟動串流交易的配額。如需配額的詳細資訊，請參閱《*Amazon Transcribe 開發人員指南*》中的[準則和配額](https://docs.aws.amazon.com/transcribe/latest/dg/limits-guidelines.html)。如需增加配額的相關資訊，請參閱 AWS 主控台中的 Service Quotas。

# 啟動和停止 Amazon Chime SDK 即時轉錄
<a name="initiate-transcription"></a>

您可以使用 Amazon Chime SDK [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_StartMeetingTranscription.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_StartMeetingTranscription.html) API，透過將 `TranscriptionConfiguration` 套用至會議來啟動會議轉錄。Amazon Chime SDK 控制器會以非同步方式將組態轉送至會議。啟動會議轉錄的成功或失敗會透過 Amazon Simple Notification Service (Amazon SNS) 和 Amazon EventBridge 的訊息發出訊號。

**開始轉錄**  
此範例示範如何使用 Amazon Transcribe 開始即時轉錄。

```
POST /meetings/meetingId/transcription?operation=start HTTP/1.1 
Content-type: application/json
{
    "TranscriptionConfiguration": {
        "EngineTranscribeSettings": {
            "[https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_ResponseSyntax](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_ResponseSyntax)": "en-US",  
            "[https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_ResponseSyntax](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_ResponseSyntax)": "tag",
            "[https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestSyntax](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestSyntax)": "profanity",
            "[https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestSyntax](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestSyntax)": "lingo",
            "Region": "us-east-1"
            "[https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestSyntax](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestSyntax)": true,  
            "[https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestSyntax](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestSyntax)": "high",  
            "[https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestSyntax](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestSyntax)": "PII",  
            "[https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestSyntax](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestSyntax)": "PII",  
            "[https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestSyntax](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestSyntax)": "ALL",  
            "[https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestSyntax](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestSyntax)": "language-model"
        }
    }
}
```

此範例示範如何使用 Amazon Transcribe Medical 開始即時轉錄。

```
POST /meetings/meetingId/transcription?operation=start HTTP/1.1 
Content-type: application/json
{  
    "TranscriptionConfiguration": {
        "EngineTranscribeMedicalSettings": {
            "[https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartMedicalStreamTranscription.html](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartMedicalStreamTranscription.html)": "en-US",
            "[https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartMedicalStreamTranscription.html](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartMedicalStreamTranscription.html)": "PRIMARYCARE",
            "[https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartMedicalStreamTranscription.html](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartMedicalStreamTranscription.html)": "CONVERSATION",
            "[https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartMedicalStreamTranscription.html](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartMedicalStreamTranscription.html)": "lingo",
            "Region": "us-east-1",
           "[https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartMedicalStreamTranscription.html](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartMedicalStreamTranscription.html)": "PHI", 
        }
   }
}
```

`StartMeetingTranscription` – 開始會議的轉錄。  
`meetingId` – 由 [CreateMeeting API](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateMeeting.html#API_CreateMeeting_ResponseSyntax) 傳回的會議 ID。  
`TranscriptionConfiguration` – 封裝即時轉錄的參數。您必須只指定一個組態，`EngineTranscribeSettings`或 `EngineTranscribeMedicalSettings`。

`EngineTranscribeSettings` – 指定 Amazon Transcribe 的使用，並將其設定傳遞至 [https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestParameters](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestParameters)。  
`LanguageCode` - 必要。  
`VocabularyFilterMethod` - 選用。  
`VocabularyFilterName` - 選用。  
`VocabularyName` - 選用。  
`Region` - 選用。  
`EnablePartialResultsStabilization` - 選用。  
`PartialResultsStability` - 選用。  
` ContentIdentificationType` - 選用。  
`ContentRedactionType` - 選用。  
`PiiEntityTypes ` - 選用。  
`LanguageModelName` - 選用。

`EngineTranscribeMedicalSettings` – 指定 Amazon Transcribe Medical 的使用，並將其設定傳遞至 [https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartMedicalStreamTranscription.html#API_streaming_StartMedicalStreamTranscription_RequestParameters](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartMedicalStreamTranscription.html#API_streaming_StartMedicalStreamTranscription_RequestParameters)。  
`LanguageCode` - 必要。  
`Speciality` - 必要。  
`Type` - 必要。  
`VocabularyName` - 選用。  
`Region` - 選用。  
` ContentIdentificationType` - 選用。

**回應**  
Amazon Transcribe 和 Amazon Transcribe Medical 會採取下列回應：
+ `OK` (200)，如果您成功將 套用`TranscriptionConfiguration`到會議，則為空白內文。

**錯誤訊息**  
Amazon Transcribe 和 Amazon Transcribe Medical 會顯示下列錯誤訊息：
+ **BadRequestException (400)：**輸入參數不符合服務的限制。
+ **ForbiddenException (403)：**永久禁止用戶端提出請求。
+ **NotFoundException (404)：** `meetingId` 不存在。
+ **ResourceLimitExceededException (400)：**請求超過資源限制。例如，太多會議已啟用即時轉錄。
+ **ServiceFailureException (500)：**服務遇到意外錯誤。
+ **ServiceUnavailableException (503)：**服務目前無法使用。
+ **ThrottledClientException (429)：**用戶端超過其請求率限制。
+ **UnauthorizedClientException (401)：**用戶端目前未獲授權發出請求。

`StartMeetingTranscription` 再次呼叫 會更新`TranscriptionConfiguration`套用至會議的 。

**停止轉錄**  
您可以使用 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_StopMeetingTranscription.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_StopMeetingTranscription.html) API 來移除指定`meetingID`和結束會議轉錄`TranscriptionConfiguration`的 。結束會議會自動停止轉錄。

此範例顯示叫用 的請求語法`StopMeetingTranscription`。

```
POST/meetings/meetingId/transcription?operation=stop HTTP/1.1
```

**回應**  
Amazon Transcribe 和 Amazon Transcribe Medical 會採取下列回應：
+ `OK` (200)，如果您成功`TranscriptionConfiguration`從會議中移除 。

**錯誤訊息**  
Amazon Transcribe 和 Amazon Transcribe Medical 會顯示下列錯誤訊息：
+ **BadRequestException (400)：**輸入參數不符合服務的限制。
+ **ForbiddenException (403)：**永久禁止用戶端提出請求。
+ **NotFoundException (404)：** `meetingId` 不存在。
+ **ServiceFailureException (500)：**服務遇到意外錯誤。
+ **ServiceUnavailableException (503)：**服務目前無法使用。
+ **ThrottledClientException (429)：**用戶端超過其請求率限制。
+ **UnauthorizedClientException (401)：**用戶端目前未獲授權發出請求。

## Amazon Chime SDK 即時轉錄參數
<a name="transcription-parameters"></a>

Amazon Transcribe 和 Amazon Transcribe Medical APIs啟動串流轉錄時提供許多參數，例如 [https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html)和 [https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartMedicalStreamTranscription.html](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartMedicalStreamTranscription.html)。除非 Amazon Chime SDK 預先決定參數的值，否則您可以在 `StartMeetingTranscription` API 中使用 t 管參數。例如， `MediaEncoding`和 `MediaSampleRateHertz` 參數不可用，因為 Amazon Chime SDK 會自動設定它們。

Amazon Transcribe 和 Amazon Transcribe Medical 會驗證參數，這可讓您在新參數值可用時立即使用。例如，如果 Amazon Transcribe Medical 啟動支援新語言，您只需在 `LanguageCode` 參數中指定新語言值。

# 了解 Amazon Chime SDK 即時轉錄事件
<a name="transcription-events"></a>

Amazon Chime SDK 會傳送轉錄生命週期事件，您可以使用這些事件來觸發通知並啟動下游工作流程。使用轉錄事件的一些範例包括：
+ 測量 Amazon Chime SDK 會議採用即時轉錄
+ 追蹤語言偏好設定

您可以將事件傳送至 Amazon EventBridge、Amazon Simple Notification Service 和 Amazon Simple Queue Service。如需詳細資訊，請參閱《*Amazon EventBridge 使用者指南*》中的[來自 AWS 服務的事件](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-service-event.html)。

## Amazon Chime SDK 會議轉錄已開始
<a name="transcript-start"></a>

開始會議轉錄或更新 時，Amazon Chime SDK [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_TranscriptionConfiguration.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_TranscriptionConfiguration.html)會傳送此事件。

**範例：事件資料**  
以下是此事件的範例資料。

```
{
    "version": "0", 
    "source": "aws.chime", 
    "account": "111122223333", 
    "id": "12345678-1234-1234-1234-111122223333", 
    "region": "us-east-1", 
    "detail-type": "Chime Meeting State Change", 
    "time": "yyyy-mm-ddThh:mm:ssZ", 
    "resources": []
    "detail": {
        "version": "0", 
        "eventType": "chime:TranscriptionStarted",
        "timestamp": 12344566754,
        "meetingId": "87654321-4321-4321-1234-111122223333",
        "externalMeetingId": "mymeeting",
        "mediaRegion": "us-west-1",
        "transcriptionRegion": "us-west-2",
        "[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_StartMeetingTranscription.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_StartMeetingTranscription.html)": "{...}"
    }
}
```

## Amazon Chime SDK 會議轉錄已停止
<a name="transcript-stop"></a>

Amazon Chime SDK 會在會議轉錄停止時傳送此事件。

**範例：事件資料**  
以下是此事件的範例資料。

```
{
    "version": "0", 
    "source": "aws.chime", 
    "account": "111122223333", 
    "id": "12345678-1234-1234-1234-111122223333", 
    "region": "us-east-1", 
    "detail-type": "Chime Meeting State Change", 
    "time": "yyyy-mm-ddThh:mm:ssZ", 
    "resources": []
    "detail": {
        "version": "0", 
        "eventType": "chime:TranscriptionStopped",
        "timestamp": 12344566754,
        "meetingId": "87654321-4321-4321-1234-111122223333",
        "externalMeetingId": "mymeeting",
        "mediaRegion": "us-west-1",
        "transcriptionRegion": "us-west-2",
        "[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_StopMeetingTranscription.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_StopMeetingTranscription.html)": "{...}"
    }
}
```

## Amazon Chime SDK 會議轉錄中斷
<a name="transcript-interrupted"></a>

如果會議轉錄中斷，Amazon Chime SDK 會傳送此事件。

**範例：事件資料**  
以下是此事件的範例資料。

```
{
    "version": "0", 
    "source": "aws.chime", 
    "account": "111122223333", 
    "id": "12345678-1234-1234-1234-111122223333", 
    "region": "us-east-1", 
    "detail-type": "Chime Meeting State Change", 
    "time": "yyyy-mm-ddThh:mm:ssZ", 
    "resources": []
    "detail": {
        "version": "0", 
        "eventType": "chime:TranscriptionInterrupted",
        "timestamp": 12344566754,
        "meetingId": "87654321-4321-4321-1234-111122223333",
        "externalMeetingId": "mymeeting",
        "message": "Internal server error",
        "mediaRegion": "us-west-1",
        "transcriptionRegion": "us-west-2",
        "[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_TranscriptionConfiguration.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_TranscriptionConfiguration.html)": "{...}"
    }
}
```

## Amazon Chime SDK 會議轉錄已繼續
<a name="transcript-resumed"></a>

如果會議轉錄在中斷後恢復，Amazon Chime SDK 會傳送此事件。

**範例：事件資料**  
以下是此事件的範例資料。

```
{
    "version": "0", 
    "source": "aws.chime", 
    "account": "111122223333", 
    "id": "12345678-1234-1234-1234-111122223333", 
    "region": "us-east-1", 
    "detail-type": "Chime Meeting State Change", 
    "time": "yyyy-mm-ddThh:mm:ssZ", 
    "resources": []
    "detail": {
        "version": "0", 
        "eventType": "chime:TranscriptionResumed",
        "timestamp": 12344566754,
        "meetingId": "87654321-4321-4321-1234-111122223333",
        "externalMeetingId": "mymeeting",
        "mediaRegion": "us-west-1",
        "transcriptionRegion": "us-west-2",
        "[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_TranscriptionConfiguration.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_TranscriptionConfiguration.html)": "{...}"
    }
}
```

## Amazon Chime SDK 會議轉錄失敗
<a name="transcript-failed"></a>

如果會議轉錄無法啟動，或在中斷後無法繼續，Amazon Chime SDK 會傳送此事件。

**範例：事件資料**  
以下是此事件的範例資料。

```
{
    "version": "0", 
    "source": "aws.chime", 
    "account": "111122223333", 
    "id": "12345678-1234-1234-1234-111122223333", 
    "region": "us-east-1", 
    "detail-type": "Chime Meeting State Change", 
    "time": "yyyy-mm-ddThh:mm:ssZ", 
    "resources": []
    "detail": {
        "version": "0", 
        "eventType": "chime:TranscriptionFailed",
        "timestamp": 12344566754,
        "meetingId": "87654321-4321-4321-1234-111122223333",
        "externalMeetingId": "mymeeting",
        "message": "Internal server error",
        "mediaRegion": "us-west-1",
        "transcriptionRegion": "us-west-2",
        "[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_TranscriptionConfiguration.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_TranscriptionConfiguration.html)": "{...}"
    }
}
```

# 了解 Amazon Chime SDK 即時轉錄訊息
<a name="process-msgs"></a>

Amazon Chime SDK 服務透過在資料訊息中傳送`TranscriptEvent`物件，與出席者共用轉錄資訊。`TranscriptEvent` 提供 `Transcript`或 `TranscriptionStatus`。

`Transcript` 包含時間戳記、使用者歸屬單字和標點符號的結果。結果可能是「部分」，在這種情況下，系統通常會在後續的 中更新它`TranscriptEvent`。這可讓您快速查看轉錄，並在必要時稍後套用內嵌更新。

`TranscriptStatus` 可能會交付其中一個`TranscriptionStatusType`事件，列於下一節的範例。

較新版本的 Amazon Chime SDKs包含用於常見處理 的其他資料類型和協助程式函數`TranscriptEvent`。

## TranscriptEvent
<a name="transcript-event"></a>

此範例顯示典型轉錄事件。

```
type TranscriptEvent = Transcript | TranscriptionStatus;

export class TranscriptEventConverter {
  static from(dataMessage: DataMessage): TranscriptEvent[] {
    // convert DataMessage to TranscriptEvents
    return ...
  }
}

export default class TranscriptionStatus {
    type: TranscriptionStatusType;
    eventTimeMs:                   number;
    transcriptionRegion:           string;
    transcriptionConfiguration:    string;
    message?:                      string;
}

enum TranscriptionStatusType {
    STARTED        =    'started',
    INTERRUPTED    =    'interrupted',
    RESUMED        =    'resumed',
    STOPPED        =    'stopped',
    FAILED         =    'failed',
}

export default class Transcript {
    results: TranscriptResult[];    // at least one
}

export class TranscriptResult {
    resultId:        string;
    isPartial:       boolean;
    startTimeMs:     number;
    endTimeMs:       number;
    alternatives:    TranscriptAlternative[];    // most confident first
    }

export default class TranscriptAlternative {
    items: TranscriptItem[];    // in start time order
    transcript: string; //concatenated transcript items
    entities?: TranscriptEntity[];
}

export default class TranscriptItem {
    type:                      TranscriptItemType;
    startTimeMs:               number;
    endTimeMs:                 number;
    attendee:                  Attendee;
    content:                   string;
    vocabularyFilterMatch?:    boolean;
    confidence?:               number;  
    stable?:                   boolean;
}

enum TranscriptItemType {
    PRONUNCIATION    =    'pronunciation',// content is a word
    PUNCTUATION      =    'punctuation',// content is punctuation
}

export default class TranscriptEntity {  
    category:       string;  
    confidence:     number;  
    content:        string;  
    endTimeMs:      number;  
    startTimeMs:    number;  
    type?:          string;
}

// This is an existing SDK model
export default class Attendee {
    attendeeId:        string;
    externalUserId:    string;
}
```

## 資料準則
<a name="data-guidelines"></a>

請記住這些準則。

1. `transcription.results` 可能有多個結果。

1. 如果為 `transcription.results[i].isPartial = true`，則整個結果可能會有更新。更新可能是可能的，但不保證。更新具有相同的 `transcript.result[i].resultId`。如果您想要避免低可信度轉錄，您可以完全略過部分結果。如果您想要低延遲的結果，您可以顯示部分結果，然後在更新送達時完全覆寫。

1. `transcription.results[i].alternatives` 一律包含至少一個項目。如果它包含多個項目，最有信心的項目會排在清單中。在大多數情況下，您可以在 中取得第一個項目`transcription.results[i].alternatives`，並忽略其他項目。

1. `transcription.results[i].alternatives[j].items` 包含每個單字或標點符號的項目。

1. `transcription.results[i].alternatives[j].items[k].` 內容是說出的內容。

1. `transcription.results[i].alternatives[j].items[k].attendee` 是內容的使用者屬性 （誰）。

1. `transcription.results[i].alternatives[j].items[k].startTimeMs` 是內容的「時間」。這可讓不同使用者之間word-by-word轉譯使用者歸屬的轉錄，其順序是說出單字。

1. `transcription.results[i].alternatives[j].items[k].endTimeMs` 欄位通常可以忽略，但是為了完整說出時間的人員而提供。

1. `transcription.results[i].alternatives[j].items[k].vocabularyFilterMatch` 如果內容符合篩選條件中的字詞，則為 true，否則為 false。

1. `transcription.results[i].alternatives[j].items[k].confidence` 是介於 0 和 1 之間的值。它表示引擎對項目內容正確符合口語字詞的可信度，0 表示最低可信度，1 表示最高可信度。

1. `transcription.results[i].alternatives[j].items[k].stable` 指出目前單字在未來的部分結果更新中是否會變更。只有在您透過在請求`true`中`EnablePartialResultsStabilization`將 設定為 來啟用部分結果穩定功能時，此值才能為 true。

1. `transcription.results[i].alternatives[j].entities` 包含內容識別或修訂功能偵測的每個實體的項目。只有在您啟用內容識別或修訂時，才會填入清單。實體可以是個人身分識別資訊或個人健康資訊等資料。您可以使用實體在轉錄期間反白或對感興趣的字詞採取行動。

1. `transcription.results[i].alternatives[j].entities[k].category` 是實體的類別。它等於請求中提供的內容識別或修訂類型，例如「PII」或「PHI」。

1. `transcription.results[i].alternatives[j].entities[k].confidence` 會測量引擎對於特定內容真正是實體的強度。請注意，這與項目層級可信度不同，這會測量引擎對單字本身正確性的可信度。

1. `transcription.results[i].alternatives[j].entities[k].content` 是組成實體的實際文字。這可以是多個項目，例如 地址。

1. `transcription.results[i].alternatives[j].entities[k].startTimeMs` 會擷取實體開始說話的時間。

1. `transcription.results[i].alternatives[j].entities[k].endTimeMs` 會擷取實體完成說話的時間。

1. `transcription.results[i].alternatives[j].entities[k].type` 僅支援 Transcribe 引擎，並提供實體的子類型。這些是 `ADDRESS`、`CREDIT\$1DEBIT\$1NUMBER` 等值。

## 註冊 的事件處理常式 TranscriptEvents
<a name="register-handler"></a>

下列範例使用適用於 JavaScript 的 Amazon Chime SDK 用戶端程式庫。不過，模式在所有 Amazon Chime SDKs之間都是一致的。

`RealtimeController` 和 `TranscriptionController`中的 `RealtimeControllerFacade`包含特定函數，用於新增處理 的處理常式`TranscriptionEvents`：

```
/** 
 * Returns the [[TranscriptionController]] for this real-time controller. 
 */
readonly transcriptionController?: TranscriptionController;
```

`TranscriptionController` 有兩個函數可管理訂閱和取消訂閱回`TranscriptionEvent`呼：

```
import TranscriptEvent from './TranscriptEvent';

export default interface TranscriptionController {
  /**
   * Subscribe a callback to handle received transcript event
   */
  subscribeToTranscriptEvent(callback: (transcriptEvent: TranscriptEvent) => void): void;

  /** 
   * Unsubscribe a callback from receiving transcript event 
   */
  unsubscribeFromTranscriptEvent(callback: (transcriptEvent: TranscriptEvent) => void): void;
}
```

**使用選用的 `TranscriptionController`**  
我們提供名為 的`TranscriptionController`介面預設實作`DefaultTranscriptionController`。`DefaultRealtimeController` 和 中的預設實作會`DefaultAudioVideoFacade`傳回`DefaultTranscriptionController`物件：

```
/** 
get transcriptionController(): TranscriptionController {
   return this.realtimeController.transcriptionController;
}
```

`DefaultRealtimeController` 也會在其建構函數中採用選用`TranscriptionController`物件。這可讓您覆寫`DefaultTranscriptionController`行為。開發人員應用程式透過 `AudioVideoFacade` 物件的 `TranscriptionController` 物件訂閱和取消訂閱一或多個回呼：

```
// Subscribe
this.audioVideo.transcriptionController?.subscribeToTranscriptEvent(this.transcriptEventHandler);

// Unsubscribe
this.audioVideo.transcriptionController?.unsubscribeFromTranscriptEvent(this.transcriptEventHandler););
```

# 處理收到的 Amazon Chime SDK 即時文字記錄事件
<a name="delivery-examples"></a>

下列範例示範如何處理收到的 `TranscriptEvent`。

**注意**  
確切的輸出取決於幾個因素，包括個人說話的速度和停頓時間。

## 範例 1：StartMeetingTranscription
<a name="example-1"></a>

此範例顯示典型`StartMeetingTranscription`的操作。

```
meeting.StartMeetingTranscription(
    { EngineTranscribeSettings: { Languagecode: ‘en-US’ } } );
```

操作會產生 `TranscriptEvent`。

```
{   
    status: {        
        type: 'started',        
        eventTimeMs: 1620118800000,        
        transcriptionConfig: {                    
            LanguageCode: 'en-US'        
        }    
    }
}
```

## 範例 2：部分文字記錄結果
<a name="example-2"></a>

在此範例中，一位出席者說：「快速的棕色狐狸跳過鬆散的狗。」 請注意，在此範例中，`isPartial`值為 `true`。如果您深入查看訊息，您可以看到系統將「fox」一詞處理為「facts」。系統會使用相同的 `resultId`來更新文字記錄。

```
{
    transcript: {
        results: [{
            resultId:"1",                               isPartial: true,
            startTimeMs: 1620118800000,                 endTimeMs: 1620118801000,
            alternatives: [{
                items:[{
                    type:        'pronunciation',
                    startTimeMs: 1620118800000,         endTimeMs: 1620118800200,
                    attendee: { attendeeId: "1",        externalUserId: "A"},
                    content: "the",                     vocabularyFilterMatch: false
                },
                {
                    type:        'pronunciation',
                    startTimeMs: 1620118800200,          endTimeMs: 1620118800400,
                    attendee: { attendeeId: "1",         externalUserId: "A" },
                    content:"quick",                     vocabularyFilterMatch: false
                },
                {
                    type:'pronunciation',
                    startTimeMs: 1620118800400,          endTimeMs: 1620118800750,
                    attendee: { attendeeId: "1",         externalUserId: "A" },
                    content:"brown",                     vocabularyFilterMatch: false
                },
                {
                    type:'pronunciation',
                    startTimeMs: 1620118800750,          endTimeMs: 1620118801000,
                    attendee:{ attendeeId: "1",          externalUserId: "A" },
                    content:"facts",                     vocabularyFilterMatch: false
                },
                {
                    type:'punctuation',
                    startTimeMs: 1620118801000,          endTimeMs: 1620118801500,
                    attendee:{ attendeeId: "1",          externalUserId: "A" },
                    content:    ",",                     vocabularyFilterMatch: false
                }]
            }]
        }]
    }
}
```

## 範例 3：最終文字記錄結果
<a name="example-3"></a>

如果發生部分文字記錄，系統會再次處理該片語。此範例`isPartial`的值為 `false`，且訊息包含「fox」而非「facts」。系統會使用相同的 ID 重新發出訊息。

```
{
    transcript: {
        results: [{
            resultId:"1",                                isPartial: false,
            startTimeMs: 1620118800000,                  endTimeMs: 1620118801000,
            alternatives: [{
                items:[{
                    type:        'pronunciation',
                    startTimeMs: 1620118800000,          endTimeMs: 1620118800200,
                    attendee: { attendeeId: "1",         externalUserId: "A"},
                    content: "the",                      vocabularyFilterMatch: false
                },
                {
                    type:        'pronunciation',
                    startTimeMs: 1620118800200,          endTimeMs: 1620118800400,
                    attendee: { attendeeId: "1",         externalUserId: "A" },
                    content:"quick",                     vocabularyFilterMatch: false
                },
                {
                    type:'pronunciation',
                    startTimeMs: 1620118800400,          endTimeMs: 1620118800750,
                    attendee: { attendeeId: "1",         externalUserId: "A" },
                    content:"brown",                     vocabularyFilterMatch: false
                },
                {
                    type:'pronunciation',
                    startTimeMs: 1620118800750,          endTimeMs: 1620118801000,
                    attendee: { attendeeId: "1",          externalUserId: "A" },
                    content:"fox",                       vocabularyFilterMatch: false
                },
                {
                    type:'punctuation',
                    startTimeMs: 1620118801000,          endTimeMs: 1620118801500,
                    attendee: { attendeeId: "1",          externalUserId: "A" },
                    content:    ",",                     vocabularyFilterMatch: false
                }]
            }]
        }]
    }
}
```

# 剖析 Amazon Chime SDK 文字記錄
<a name="parse-transcripts"></a>

使用下列命令從轉錄訊息剖析轉錄內容。命令會從 transcript-message.txt 檔案剖析完整的句子。

```
with open('transcript-message.txt') as f:
        for line in f:
            result_json = json.loads(line)["transcript"]["results"][0]
            if result_json['isPartial'] == False:
                print(result_json["alternatives"][0]["transcript"])
```

# 使用媒體複寫進行 Amazon Chime SDK 會議
<a name="media-replication"></a>

您可以使用媒體複寫將主要 WebRTC 工作階段與多個複本工作階段連結，以觸及較大的受眾。每個 WebRTC 媒體工作階段都支援 250 個連線，您可以將主要工作階段複寫至多個複本工作階段。連接至複本工作階段的參與者只會收到連接至主要工作階段之簡報者的音訊和視訊。他們不知道連接到複寫工作階段的參與者，這使得媒體複寫非常適合需要隱私權的網路研討會和其他使用案例。

下圖顯示主工作階段與簡報者共用音訊和視訊之間的媒體複寫，以及參與者使用媒體的複本工作階段。

![\[在主要工作階段中共用的簡報者。\]](http://docs.aws.amazon.com/zh_tw/chime-sdk/latest/dg/images/replication-1.png)


**注意**  
服務配額 *Chime SDK Meetings - 每個主要會議的複本會議*的預設值為 4，您可以提高請求限制。如需配額的詳細資訊，請參閱 *AWS 一般參考*中的[AWS 服務配額](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html)。

**Topics**
+ [互動式參與者](#interactive-participants)
+ [全球參與者](#global-participants)
+ [工作階段生命週期](#session-lifecycle)

## 互動式參與者
<a name="interactive-participants"></a>

連接到複本工作階段的參與者可以獲得加入主要工作階段的存取權。由於每個人都使用 WebRTC 連線，因此簡報者和參與者不會經歷轉碼延遲。當參與者在主要和複寫工作階段之間切換時，他們會重複使用其 WebRTC 連線，因此切換速度非常快。這可讓參與者對即時對話做出貢獻，而不會遺漏任何內容。

下圖顯示使用其 WebRTC 連線切換到主要工作階段的複本工作階段參與者。

![\[圖表顯示兩個參與者從複本會議切換到主要會議。\]](http://docs.aws.amazon.com/zh_tw/chime-sdk/latest/dg/images/replication-2.png)


## 全球參與者
<a name="global-participants"></a>

您可以為每個 WebRTC 媒體工作階段選擇 AWS 區域。這可讓您在比主要工作階段的區域更接近參與者的區域中建立複本工作階段。當您這樣做時，媒體會從主要工作階段流向整個 AWS 網路的複本工作階段，然後從複本工作階段流向網際網路的參與者。向全球受眾展示時，在參與者附近擁有複本工作階段有助於確保媒體在 AWS 網路而非網際網路上周遊世界，以獲得更好的會議體驗。

下圖顯示不同區域中的主要工作階段和複寫工作階段。

![\[圖表顯示 3 個區域中觀看簡報的參與者。\]](http://docs.aws.amazon.com/zh_tw/chime-sdk/latest/dg/images/replication-3.png)


## 工作階段生命週期
<a name="session-lifecycle"></a>

建立工作階段  
您可以使用 [https://docs.aws.amazon.com/chime/latest/APIReference/API_meeting-chime_CreateMeeting.html](https://docs.aws.amazon.com/chime/latest/APIReference/API_meeting-chime_CreateMeeting.html)或 [https://docs.aws.amazon.com/chime/latest/APIReference/API_meeting-chime_CreateMeetingWithAttendees.html](https://docs.aws.amazon.com/chime/latest/APIReference/API_meeting-chime_CreateMeetingWithAttendees.html) APIs來建立 WebRTC 媒體工作階段。根據預設，除非您特別建立複本工作階段，否則 APIs會建立主要工作階段。  
您可以透過在 `CreateMeeting`或 `CreateMeetingWithAttendees` API 呼叫`PrimaryMeetingId`中將主要工作階段`MeetingId`的 指定為 來建立複本工作階段。  
如果您將複本工作階段`MeetingId`的 指定為 `PrimaryMeetingId`，則 API 呼叫將會失敗。

建立出席者  
 若要建立加入 WebRTC 媒體工作階段所需的出席者憑證，您可以使用 [https://docs.aws.amazon.com/chime/latest/APIReference/API_meeting-chime_CreateMeetingWithAttendees.html](https://docs.aws.amazon.com/chime/latest/APIReference/API_meeting-chime_CreateMeetingWithAttendees.html)、 [https://docs.aws.amazon.com/chime/latest/APIReference/API_meeting-chime_BatchCreateAttendee.html](https://docs.aws.amazon.com/chime/latest/APIReference/API_meeting-chime_BatchCreateAttendee.html)或 [https://docs.aws.amazon.com/chime/latest/APIReference/API_meeting-chime_CreateAttendee.html](https://docs.aws.amazon.com/chime/latest/APIReference/API_meeting-chime_CreateAttendee.html) APIs。  
為大量出席者建立工作階段時，請使用 `CreateMeetingWithAttendees`或 `BatchCreateAttendee`將所需的 API 呼叫數量降至最低。

刪除出席者  
您可以使用 [https://docs.aws.amazon.com/chime/latest/APIReference/API_meeting-chime_DeleteAttendee.html](https://docs.aws.amazon.com/chime/latest/APIReference/API_meeting-chime_DeleteAttendee.html) API 來撤銷出席者的 WebRTC 媒體工作階段憑證。如果出席者已連線至工作階段，他們將中斷連線，且無法重新加入。  
當您使用 [https://docs.aws.amazon.com/chime/latest/APIReference/API_meeting-chime_DeleteMeeting.html](https://docs.aws.amazon.com/chime/latest/APIReference/API_meeting-chime_DeleteMeeting.html) API 刪除 WebRTC 媒體工作階段時，API 會自動刪除所有出席者，而且您不需要呼叫 `DeleteAttendee`。

切換工作階段  
若要允許參與者從複本工作階段切換到主要工作階段，您必須在主要會議中為其建立登入資料。請參閱在此清單中稍早*建立出席者*。在 Amazon Chime SDK 用戶端程式庫中使用 登入資料與 `promoteToPrimaryMeeting`方法，以切換至主要工作階段。  
若要將參與者切換回複本工作階段，請使用 Amazon Chime SDK 用戶端程式庫中的 `demoteFromPrimaryMeeting`方法，或使用 [https://docs.aws.amazon.com/chime/latest/APIReference/API_meeting-chime_DeleteAttendee.html](https://docs.aws.amazon.com/chime/latest/APIReference/API_meeting-chime_DeleteAttendee.html) API 使主要工作階段憑證失效。  
直接連接到主要工作階段的簡報者無法切換到複本工作階段。
如需在工作階段之間切換的詳細資訊，請參閱用戶端程式庫文件：  
+ GitHub 上的 [Amazon Chime SDK for Android](https://github.com/aws/amazon-chime-sdk-android)。
+ GitHub 上的[適用於 iOS 的 Amazon Chime SDK](https://github.com/aws/amazon-chime-sdk-ios)。
+ GitHub 上[適用於 JavaScript 的 Amazon Chime SDK 用戶端程式](https://github.com/aws/amazon-chime-sdk-js)庫。

刪除工作階段  
您可以使用 [https://docs.aws.amazon.com/chime/latest/APIReference/API_meeting-chime_DeleteMeeting.html](https://docs.aws.amazon.com/chime/latest/APIReference/API_meeting-chime_DeleteMeeting.html) API 來刪除 WebRTC 媒體工作階段。  
如果您刪除主要工作階段，`DeleteMeeting`API 會自動刪除所有連接的複本工作階段。因此，若要刪除所有工作階段，只要刪除主要工作階段即可。  
如果連續 5 分鐘沒有出席者連線，服務會自動刪除主要工作階段。服務只會在刪除主要工作階段時自動刪除複本工作階段。這表示您可以在建立主要工作階段時建立複本工作階段，而複本將在主要工作階段期間可用。

# Amazon Chime SDK 會議疑難排解和偵錯
<a name="troubleshoot-sdk-meetings"></a>

使用下列主題來協助診斷和疑難排解您在使用 Amazon Chime SDK 時遇到的問題。

**Topics**
+ [了解 Amazon Chime SDK 會議的系統需求](ts-supported-browsers.md)
+ [設定 Amazon Chime SDK 會議的記錄和監控](ts-log-monitor.md)
+ [對 Amazon Chime SDK 會議進行故障診斷](self-troubleshooting.md)
+ [了解 Amazon Chime SDK 會議的常見問題](common-issues.md)

# 了解 Amazon Chime SDK 會議的系統需求
<a name="ts-supported-browsers"></a>

進行故障診斷時，請務必為支援的瀏覽器編寫程式碼。如需目前支援的瀏覽器、版本和作業系統清單，請參閱 [Amazon Chime SDK 系統需求](meetings-sdk.md#mtg-browsers)。[Github 上的開發人員指南和FAQs](https://github.com/aws/amazon-chime-sdk-js/issues/1059)可解決瀏覽器和其他相容性問題。此外，請熟悉 GitHub 上[已知的瀏覽器問題](https://aws.github.io/amazon-chime-sdk-js/modules/faqs.html#known-browser-issues)以及任何解決方法。

如果您剛開始使用 Amazon Chime SDK 會議，[Amazon Chime SDK 的 Builder Journey](https://github.com/aws/amazon-chime-sdk-js/blob/main/guides/20_Builders_Journey.md) 會提供使用 Amazon Chime SDK 建置的step-by-step指南，以及故障診斷所需的工具。

# 設定 Amazon Chime SDK 會議的記錄和監控
<a name="ts-log-monitor"></a>

記錄可協助您收集伺服器端會議事件和用戶端瀏覽器主控台日誌等資訊。

Amazon Chime SDK 提供伺服器端會議事件，您可以傳送到 Amazon EventBridge 和 Amazon CloudWatch Events 日誌。您可以建立 CloudWatch 指標和洞見，並在儀表板中使用這些指標和洞見進行監控。[Amazon Chime SDK 事件的伺服器端記錄和監控](https://aws.amazon.com/blogs/business-productivity/server-side-logging-and-monitoring-of-amazon-chime-sdk-events/)部落格文章說明如何啟用 CloudWatch 指標、洞見和儀表板。

Amazon Chime SDK 為音訊和視訊品質、網路頻寬和連線問題提供用戶端事件。[使用 Amazon Chime SDK 會議事件進行監控和故障](https://aws.amazon.com/blogs/business-productivity/monitoring-and-troubleshooting-with-amazon-chime-sdk-meeting-events/)診斷部落格文章說明如何針對聯結失敗、音訊品質問題，以及麥克風和攝影機設定失敗啟用 CloudWatch 指標、洞見和儀表板。如需會議事件的其他資訊，請參閱 Github 上的[會議事件](https://github.com/aws/amazon-chime-sdk-js/blob/main/guides/06_Meeting_Events.md)。



## 對指標進行故障診斷的選項
<a name="ts-cloudwatch-options"></a>

您可以使用下列選項來收集故障診斷事件。
+ 在每個事件中傳送指標 
+ 每 N 秒批次事件 
+ 在會議結束時傳送指標 
+ 瀏覽器主控台日誌的日誌記錄層級

## 建議的指標
<a name="ts-cloudwatch-metrics"></a>

您至少應該收集並記錄下列指標。
+ SDK 平台和版本
+ 瀏覽器和版本
+ 作業系統
+ 邏輯核心
+ 會議已開始
+ 會議已結束
+ 出席者已加入
+ 剩餘出席者
+ 已捨棄的出席者

此外，根據您面臨的問題，以下指標可以提供有關連線能力、頻寬和品質問題的資訊。您可以記錄這些指標的每次出現，或只計算它們。計數可以提供基礎問題的摘要檢視：
+ connectionDidSuggestStopVideo
+ connectionDidBecomeGood
+ connectionDidBecomePoor
+ 出席者加入時間 > t 秒
+ MeetingStartFailed
+ MeetingFailed

## 啟用用戶端記錄
<a name="client-side-logging"></a>

您可以透過傳遞`LogLevel.INFO`至 `ConsoleLogger` 物件來啟用 `INFO`層級瀏覽器日誌。

```
const logger = new ConsoleLogger('MyLogger', LogLevel.INFO);const meetingSession = new DefaultMeetingSession(configuration,logger,deviceController); 
```

您也可以使用適用於 JavaScript 的 Amazon Chime 開發套件中的 `POSTLogger`元件來擷取後端的瀏覽器日誌，例如 Amazon CloudWatch Logs。 `POSTLogger`會`HTTP POST`請求將瀏覽器日誌上傳至 [POSTLogger 建構函數](https://aws.github.io/amazon-chime-sdk-js/classes/postlogger.html)中的指定 URL。例如，[GitHub 上的 Amazon Chime SDK 無伺服器示範](https://github.com/aws/amazon-chime-sdk-js/blob/main/demos/browser/app/meetingV2/meetingV2.ts#L1773)會使用 `POSTLogger`將瀏覽器日誌傳送至 Amazon CloudWatch Logs 以供日後調查。

## 啟用伺服器端記錄
<a name="server-side-logging"></a>

適用於 JavaScript 的 Amazon Chime 開發套件也會呼叫具有關鍵會議事件的`eventDidReceive`觀察者方法，例如 `MeetingStartFailed`和 `MeetingFailed`。會議事件通常包含失敗的特定原因。例如，假設大量客戶遇到故障。您的 Web 應用程式可以收集這些會議事件，然後與我們共用這些事件，以疑難排解根本原因。如需會議事件的詳細資訊，請參閱 [ GitHub 上的會議事件指南](https://aws.github.io/amazon-chime-sdk-js/modules/meetingevents.html)，以及[使用 Amazon Chime SDK 會議事件進行監控和故障診斷](https://aws.amazon.com/blogs/business-productivity/monitoring-and-troubleshooting-with-amazon-chime-sdk-meeting-events/)部落格文章。

# 對 Amazon Chime SDK 會議進行故障診斷
<a name="self-troubleshooting"></a>

本主題中的各節說明幾種自我故障診斷 Amazon Chime SDK 會議的方法。

**Topics**
+ [檢查FAQs和已知問題](#check-faqs)
+ [驗證網路存取](#net-acess)

## 檢查FAQs和已知問題
<a name="check-faqs"></a>

如需疑難排解和偵錯建議，請參閱 GitHub 上的這些FAQs和已知問題清單。
+ [Amazon Chime SDK – JavaScript - 會議](https://github.com/aws/amazon-chime-sdk-js/blob/main/guides/07_FAQs.md#meetings)
+ [Amazon Chime SDK – JavaScript - 媒體](https://github.com/aws/amazon-chime-sdk-js/blob/main/guides/07_FAQs.md#media)
+ [Amazon Chime SDK – JavaScript - 網路](https://github.com/aws/amazon-chime-sdk-js/blob/main/guides/07_FAQs.md#networking)
+ [Amazon Chime SDK – - 音訊和視訊](https://github.com/aws/amazon-chime-sdk-js/blob/main/guides/07_FAQs.md#audio-and-video)

## 驗證網路存取
<a name="net-acess"></a>

企業通常具有網路防火牆，限制對特定連接埠的存取，或對網路外 IP 地址範圍的連線。下列各節說明您可以驗證網路存取的一些方式。

**Topics**
+ [驗證 AWS SDK 和 Amazon Chime SDK 子網路和連接埠](#subnets-ports)
+ [使用示範應用程式重現問題](#repro-on-demo-apps)
+ [使用會議準備檢查程式](#ready-checker)

### 驗證 AWS SDK 和 Amazon Chime SDK 子網路和連接埠
<a name="subnets-ports"></a>

使用 Amazon Chime SDK 的應用程式會使用兩個層：伺服器和用戶端。伺服器層使用 AWS SDK，並具有伺服器端會議處理常式。用戶端層使用用戶端 SDKs。

SDK AWS 用於呼叫伺服器 APIs，例如 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeeting.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeeting.html)。這類 APIs會連線至 `us-east-1`、`us-west-2`、、`us-gov-east-1`、 `ap-southeast-1` `eu-central-1`和 `us-gov-west-1`區域中的 AWS 全域服務端點。*AWS 一般參考*中的 [AWS IP 地址範圍](https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html)頁面會列出每個區域的 IP 地址範圍。如需服務端點和配額的相關資訊，請參閱 [Amazon Chime SDK 端點和配額](https://docs.aws.amazon.com/general/latest/gr/chime-sdk.html)。

用戶端 SDKs，例如適用於 JavaScript 的 Amazon Chime SDK，連接到`*.chime.aws`網域中的服務端點。

使用下列驗證來確保您具有網路許可：
+ 在 GitHub 上執行 [Amazon Chime SDK 會議準備狀態檢查程式](https://github.com/aws/amazon-chime-sdk-js#meeting-readiness-checker)，以確認您可以連接網路和連接埠。
+ 驗證您可以從您的網路或最終使用者的網路解析 \$1.chime.aws 網域。
+ 確保您的防火牆允許透過 TCP 連接埠 443 進行控制命令和 UDP 連接埠 3478 進行媒體的 AWS IP 範圍連線。

### 使用示範應用程式重現問題
<a name="repro-on-demo-apps"></a>

最佳實務是嘗試在其中一個示範應用程式中重現您的問題，以開始偵錯程序。這可讓服務團隊找出問題所在。如果您無法使用示範應用程式重現問題，您可以檢閱應用程式的程式碼，以查看其如何實作相關的使用案例。




| Amazon Chime SDK | 功能 | 示範應用程式資源 | 
| --- | --- | --- | 
| JavaScript 開發套件 | 會議 | [示範說明](https://github.com/aws/amazon-chime-sdk-js/tree/main/demos/serverless)、[原始程式碼](https://github.com/aws/amazon-chime-sdk-js/tree/main/demos/browser) | 
| React 元件 | 會議 |   [示範說明](https://github.com/aws-samples/amazon-chime-sdk/tree/main/apps/meeting)[原始程式碼](https://github.com/aws-samples/amazon-chime-sdk/tree/main/apps/meeting/src)   | 
| 會議聊天 | 簡訊 |   [部落格文章](https://aws.amazon.com/blogs/business-productivity/build-meeting-features-into-your-amazon-chime-sdk-messaging-application/)、[示範說明](https://github.com/aws-samples/amazon-chime-sdk/tree/main/apps/chat)、[原始程式碼](https://github.com/aws-samples/amazon-chime-sdk/tree/main/apps/chat/src)   | 
| iOS/Android | 會議 |  （部落格文章） [使用 Amazon Chime SDK 在 Android 上建置會議應用程式](https://aws.amazon.com/blogs/business-productivity//building-a-meeting-application-on-android-using-the-amazon-chime-sdk/) （部落格文章） [使用 Amazon Chime SDK 在 iOS 上建置會議應用程式](https://aws.amazon.com/blogs/business-productivity/building-a-meeting-application-on-ios-using-the-amazon-chime-sdk/)   | 
| PSTN 音訊 | 來電通話 |   [部落格文章](https://github.com/aws-samples/amazon-chime-sma-update-call)[來源碼](https://github.com/aws-samples/amazon-chime-sma-update-call)   | 

### 使用會議準備檢查程式
<a name="ready-checker"></a>

在 GitHub 上使用 [Amazon Chime SDK 會議準備檢查程式](https://github.com/aws/amazon-chime-sdk-js#meeting-readiness-checker)。檢查程式可協助驗證音訊和視訊裝置，以及使用者連線。您可以使用公開任何問題的根本原因的通過/失敗狀態，向最終使用者展示結果。

# 了解 Amazon Chime SDK 會議的常見問題
<a name="common-issues"></a>

下列各節提供常見會議問題的疑難排解方法。

**Topics**
+ [連線問題](#connectivity-issues)
+ [音訊和視訊品質問題](#a-v-quality)
+ [驗證 Amazon Chime SDK 會議的 SDK 配額和 API 限流](quotas-throttling.md)
+ [開啟 Amazon Chime SDK 會議的支援案例](open-support-cases.md)

## 連線問題
<a name="connectivity-issues"></a>

如需連線問題，請參閱 [驗證網路存取](self-troubleshooting.md#net-acess)。

## 音訊和視訊品質問題
<a name="a-v-quality"></a>

音訊和視訊品質問題可能有幾個原因。音訊/視訊品質低於最佳品質的兩個主要原因是網路頻寬和裝置效能。如需不同挑戰以及這些挑戰如何影響音訊/視訊品質的詳細資訊，請參閱 *GitHub* 上的[品質、頻寬和連線能力](https://aws.github.io/amazon-chime-sdk-js/modules/qualitybandwidth_connectivity.html)。本文說明可監控的不同事件和指標，以偵測頻寬問題和潛在緩解措施。

您可以選擇較接近目標會議工作階段受眾的媒體區域。若要了解如何選擇最佳媒體區域，請參閱使用會議區域 (https://docs.aws.amazon.com/chime-sdk/latest/dg/chime-sdk-meetings-regions.html：//)。

根據會議出席者可用的頻寬，Amazon Chime SDK 會調整所接收/上傳影片的視訊品質。若要了解如何控制不同影片配置的影片品質，請造訪管理不同影片配置的影片品質 (https://aws.github.io/amazon-chime-sdk-js/modules/videolayout.html：//)。本文說明影片生命週期管理和上行/下行政策。

**影片解析度考量**
+ 上傳影片的預設解析度為 540p 和 15fps，1400 kbps。根據頻寬，您可以降低該解析度和影格率。
+ 根據可用的接收器頻寬，判斷要顯示的視訊圖磚數量。請勿高載所有影片圖磚和內容共用的 6Mbps。最終使用者如果沒有足夠的頻寬，就會看到黑色影片圖磚。

**使用影片上行和下行頻寬政策**  
Amazon Chime SDK 提供下列頻寬政策。
+ NScaleVideoUplinkBandwidthPolicy – 實作幾乎等於桌面、Web 和行動用戶端所用參數的擷取和編碼參數。
+ AllHighestVideoBandwidthPolicy – 一律訂閱最高品質的影片串流。
+ NoVideoDownlinkBandwidthPolicy – 當頻寬低於指定的閾值時停用視訊。
+ VideoPriorityBasedPolicy – 在低頻寬的情況下，優先考慮視訊上的音訊。
+ VideoAdaptiveProbePolicy

# 驗證 Amazon Chime SDK 會議的 SDK 配額和 API 限流
<a name="quotas-throttling"></a>

[Amazon Chime SDK 端點和配額](https://docs.aws.amazon.com/general/latest/gr/chime-sdk.html)頁面會列出服務配額、API 費率，以及是否可以進行調整。使用[AWS 主控台服務配額](https://console.aws.amazon.com/servicequotas/home/services/chime/quotas)頁面來請求配額調整。

**微調您的 API 速率**  
超過其 API 速率的應用程式會收到 HTTP 狀態碼 429 和 `ThrottledClientException` 訊息。您可以調整 API 速率，但在執行此作業之前，請檢查您的應用程式是否有可能耗盡這些速率的錯誤。例如，您可以在迴圈中建立會議，或建立會議而不清除。

視您建立會議的方式而定，您可能需要修改程式碼。例如，您可以將 `CreateMeeting`和 取代`CreateAttendee`為：
+ [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeetingWithAttendees.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeetingWithAttendees.html) – 每次會議最多建立 10 名出席者。
+ [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_BatchCreateAttendee.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_BatchCreateAttendee.html) – 每次會議最多建立 100 名出席者。

您可以將建立的出席者存放在資料庫中，在受邀者加入會議時提取出席者資訊，然後將他們與預先建立的出席者建立關聯。

# 開啟 Amazon Chime SDK 會議的支援案例
<a name="open-support-cases"></a>

如果您有更多問題，或需要業務支援，您可以聯絡 [AWS Customer Support](https://pages.awscloud.com/GLOBAL-aware-GC-Amazon-Chime-SDK-2020-reg.html)。如需我們支援計劃的詳細資訊，請參閱[比較支援計劃](https://aws.amazon.com/premiumsupport/plans/?nc=sn)頁面。建立支援案例時，請務必在有問題的帳戶下開啟支援案例。包含主控台瀏覽器日誌、會議和出席者 IDs，以及任何相關的支援案例或 GitHub 問題。