

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Como usar reuniões do SDK do Amazon Chime
<a name="mtgs-sdk-mtgs"></a>

Os tópicos desta seção explicam como usar as reuniões do SDK do Amazon Chime para criar aplicativos de reunião personalizados. Recomendamos seguir esses tópicos na ordem listada. 

**Topics**
+ [Migrar para o namespace de reuniões do SDK do Amazon Chime](meeting-namespace-migration.md)
+ [Usar regiões de reuniões para reuniões do SDK do Amazon Chime](chime-sdk-meetings-regions.md)
+ [Criar reuniões usando o SDK do Amazon Chime](create-mtgs.md)
+ [Selecionar recursos de reunião do SDK do Amazon Chime.](js-meeting-features.md)
+ [Como reuniões do SDK do Amazon Chime usam mídia WebRTC](webrtc-media.md)
+ [Configurar codecs de vídeo para reuniões do SDK do Amazon Chime](js-meeting-manage-codecs.md)
+ [Configurar a rede para reuniões do SDK do Amazon Chime](network-config.md)
+ [Noções básicas sobre eventos do ciclo de vida de reuniões do SDK do Amazon Chime](using-events.md)
+ [Entendendo CloudWatch as métricas da Amazon para reuniões do Amazon Chime SDK](sdk-usage-metrics.md)
+ [Como criar pipelines de mídia do SDK do Amazon Chime](media-pipelines.md)
+ [Como usar a transcrição ao vivo do SDK do Amazon Chime](meeting-transcription.md)
+ [Usar replicação de mídia para reuniões do SDK do Amazon Chime](media-replication.md)
+ [Solucionar problemas e depurar reuniões do SDK do Amazon Chime](troubleshoot-sdk-meetings.md)

# Migrar para o namespace de reuniões do SDK do Amazon Chime
<a name="meeting-namespace-migration"></a>

O namespace [Amazon Chime SDK Meetings](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Meetings.html) é um local dedicado para quem cria e gerencia recursos de reuniões do APIs Amazon Chime SDK. Você usa o namespace para endereçar endpoints de API de reunião do SDK do Amazon Chime em qualquer região da AWS em que estejam disponíveis. Use esse namespace se você acabou de começar a usar o SDK do Amazon Chime. Para obter mais informações sobre as regiões, consulte [Regiões da AWS disponíveis para o SDK do Amazon Chime](sdk-available-regions.md) neste guia.

Os aplicativos existentes que usam o namespace [Amazon Chime](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime.html) devem planejar a migração para o namespace dedicado a fim de usar os recursos mais recentes. APIs 

**Topics**
+ [Motivos para migrar](#migration-reasons)
+ [Antes de migrar](#before-migrating)
+ [Diferenças entre os namespaces](#namespace-differences)

## Motivos para migrar
<a name="migration-reasons"></a>

Recomendamos que você migre para o namespace [SDK do Amazon Chime Meetings](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Meetings.html) pelos seguintes motivos:

**Escolha do endpoint de API**  
O namespace SDK do Amazon Chime Meetings é o único namespace da API que pode usar endpoints da API em qualquer [região que os disponibilize](https://docs.aws.amazon.com/chime-sdk/latest/dg/sdk-available-regions.html). Se quiser usar outros endpoints da API diferentes de `us-east-1`, você deve usar o namespace SDK do Amazon Chime Meetings.  
Para obter mais informações sobre como as reuniões do Amazon Chime SDK usam AWS regiões, consulte Regiões de [reunião neste guia](https://docs.aws.amazon.com/chime-sdk/latest/dg/chime-sdk-meetings-regions.html).

**Reunião atualizada e nova APIs**  
Só adicionamos ou atualizamos reuniões APIs no namespace Amazon Chime SDK Meetings.

## Antes de migrar
<a name="before-migrating"></a>

Antes de migrar, observe as diferenças entre os namespaces. A tabela a seguir lista e descreve-os.


|  | Namespace SDK do Amazon Chime Meetings | Namespace Amazon Chime | 
| --- | --- | --- | 
| AWS Namespace do SDK | Carrilhão SDKMeetings | Chime | 
| Regiões | Vários | Somente us-east-1 | 
| Endpoints | https://meetings-chime.region.amazonaws.com | https://service.chime.aws.amazon.com | 
| Entidade principal do serviço | meetings.chime.amazonaws.com | chime.amazonaws.com | 
| APIs | Somente APIs para reuniões | APIs para reuniões e outras partes do Amazon Chime | 
| [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 e MediaRegion são obrigatórios. | ExternalMeetingId e MediaRegion são opcionais. | 
| [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 e MediaRegion são obrigatórios.  | ExternalMeetingId e MediaRegion são opcionais. | 
| ListMeetings | Indisponível | Disponível | 
| ExternalMeetingId | A validação inclui correspondência de padrões | Disponível | 
| ExternalUserId | A validação inclui correspondência de padrões  | Disponível | 
| Etiquetas de reunião APIs | TagResource, UntagResource, ListTagsForResource | TagMeeting, UntagMeeting, ListMeetingTags | 
| Tags de participantes | Indisponível | Disponível | 
| Redução de eco | Disponível | Indisponível | 
| Identificação do idioma da transcrição ao vivo | Disponível | Indisponível | 
| Recursos do participante | Disponível | Indisponível | 
| Replicação de mídia | Disponível | Indisponível | 
| AppKeys and TenantIds | Disponível | Indisponível | 
| Pipelines de mídia | Os pipelines de mídia oferecem suporte a várias regiões no namespace SDK do Amazon Chime Meetings. Para obter mais informações, consulte [Migrar para o namespace de pipelines de mídia do SDK do Amazon Chime](migrate-pipelines.md). | Disponível por meio do endpoint us-east-1 | 
| Aplicativo de mídia SIP | A ação JoinChimeMeeting exige MeetingId | A ação JoinChimeMeeting não exige MeetingId | 
|  **Integração direta com SIP**  | Indisponível | Disponível | 

## Diferenças entre os namespaces
<a name="namespace-differences"></a>

As seções a seguir explicam as diferenças entre os namespaces `Amazon Chime` e `Amazon Chime SDK Meetings`.

### AWS Namespace do SDK
<a name="namespace-diffs"></a>

O namespace SDK do Amazon Chime usa o nome formal `Chime`. O namespace SDK do Amazon Chime Meetings usa o nome formal `ChimeSDKMeetings`. O formato preciso do nome varia de acordo com a plataforma.

Por exemplo, se você usa o AWS SDK no Node.js para criar reuniões, você usa uma linha de código para endereçar o namespace.

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

Para migrar para o SDK do Amazon Chime Meetings, atualize essa linha de código com o novo namespace e a região do endpoint.

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

### Regiões
<a name="region-diffs"></a>

O namespace Amazon Chime só pode referenciar endpoints de API na região us-east-1. O namespace [SDK do Amazon Chime Meetings](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Meetings.html) pode endereçar os endpoints da API de reuniões do SDK do Amazon Chime em qualquer região em que estejam disponíveis. Para obter uma lista atual das regiões de reunião, consulte [Regiões da AWS disponíveis para o SDK do Amazon Chime](sdk-available-regions.md) neste guia.

### Endpoints
<a name="endpoint-diffs"></a>

O namespace [SDK do Amazon Chime Meetings](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Meetings.html) usa endpoints de API diferentes do namespace [Amazon Chime](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime.html).

Somente o endpoint usado para criar uma reunião pode ser usado para modificá-la. Isso significa que uma reunião criada por meio de um endpoint no EU-CENTRAL-1 só pode ser modificada por meio do EU-CENTRAL-1. Isso também significa que você não pode abordar uma reunião criada por meio do namespace `Chime` com o namespace `ChimeSDKMeetings` em `US-EAST-1`. Para obter mais informações sobre os endpoints atuais, consulte [Mapeamento de API](migrate-from-chm-namespace.md#name-end-map) neste guia.

### Entidade principal do serviço
<a name="service-principal-diffs"></a>

O namespace [SDK do Amazon Chime Meetings](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Meetings.html) usa uma nova entidade principal de serviço: `meetings.chime.amazonaws.com`. Se você tiver SQS, SNS ou outras políticas de acesso do IAM que concedem acesso ao serviço, precisará atualizá-las para conceder acesso à nova entidade principal de serviço.

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

O namespace [Amazon Chime SDK Meetings contém apenas APIs para criar e gerenciar reuniões](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Meetings.html). O namespace [Amazon Chime](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime.html) inclui APIs reuniões e outras partes do serviço Amazon Chime.

### CreateMeeting campos obrigatórios
<a name="create-meeting-diffs"></a>

No namespace Amazon Chime SDK Meetings, o [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) e [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 exigem que os `MediaRegion` campos `ExternalMeetingId` e sejam especificados.

### Valores de ID externos
<a name="external-id-diffs"></a>

O namespace [SDK do Amazon Chime Meetings](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Meetings.html) impõe a validação adicional dos valores que podem ser usados para `ExternalMeetingId` e `ExternalUserId`.

### Redução de eco
<a name="echo-reduction-diffs"></a>

O namespace [SDK do Amazon Chime Meetings](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Meetings.html) oferece redução de eco baseada em machine learning para ajudar a evitar que o ruído e o som do alto-falante local circulem de volta para a reunião. Consulte o guia em GitHub para obter mais informações.

### Recursos do participante
<a name="capabilities-diffs"></a>

O namespace [SDK do Amazon Chime Meetings](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Meetings.html) fornece controle granular sobre os recursos dos participantes em uma reunião para enviar e receber áudio, vídeo e conteúdo.

### Replicação de mídia
<a name="media-replication-diffs"></a>

O namespace [SDK do Amazon Chime Meetings](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Meetings.html) oferece replicação de mídia para vincular uma reunião principal a reuniões de réplica para reunir até 10.000 pessoas em uma sessão em tempo real. Os participantes conectados a uma sessão de réplica recebem a mídia dos apresentadores conectados à sessão principal, mas podem ser promovidos à reunião principal. Para obter mais informações, consulte [Usar replicação de mídia para reuniões do SDK do Amazon Chime](media-replication.md) neste guia.

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

O namespace [SDK do Amazon Chime Meetings](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Meetings.html) fornece uma forma de limitar o acesso de uma rede a reuniões específicas do SDK do Amazon Chime. Para obter mais informações, consulte [Uso AppKeys e locatário IDs para o Amazon Chime SDK](app-keys-tenant-ids.md) neste guia.

### Pipelines de mídia
<a name="media-pipe-diffs"></a>

Os pipelines de mídia do SDK do Amazon Chime funcionam com reuniões criadas por qualquer endpoint de reuniões, com o namespace [SDK do Amazon Chime Meetings](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Meetings.html) ou [Amazon Chime](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime.html). Consulte as [Regiões disponíveis](https://docs.aws.amazon.com/chime-sdk/latest/dg/sdk-available-regions.html) para obter a lista mais recente de regiões do pipeline de mídia.

### Aplicativos de mídia de SIP
<a name="sip-app-diffs"></a>

Os aplicativos de mídia de SIP do SDK do Amazon Chime funcionam com reuniões criadas por qualquer endpoint de reuniões, com o namespace [SDK do Amazon Chime Meetings](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Meetings.html) ou [Amazon Chime](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime.html). Ao usar aplicativos de mídia SIP com uma reunião criada por meio do namespace SDK do Amazon Chime Meetings, a ação [JoinChimeMeeting](join-chime-meeting.md) exige o parâmetro `MeetingId`.

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

O namespace Meetings tem uma lista crescente do APIs que o namespace Chime não tem. Se você está começando a usar o SDK do Amazon Chime, use o namespace Meetings para acessar os atributos mais recentes. 

# Usar regiões de reuniões para reuniões do SDK do Amazon Chime
<a name="chime-sdk-meetings-regions"></a>

As reuniões do SDK do Amazon Chime têm regiões de *controle* e regiões de *mídia*. As regiões de controle têm um endpoint de API usado para criar, atualizar e excluir reuniões. As regiões de mídia hospedam as reuniões reais.

Normalmente, seu serviço de aplicativo usa o [AWS SDK](https://aws.amazon.com/tools/) para [assinar e chamar](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) regiões APIs de controle. Seu cliente de aplicativo usa as bibliotecas de cliente do Amazon Chime SDK para [JavaScript](js-sdk-intro.md)[iOS](sdk-for-ios.md) ou [Android](sdk-for-android.md) para se conectar à reunião em regiões de mídia.

Uma região de controle pode criar uma reunião em qualquer região de mídia na mesma AWS partição. No entanto, você só pode atualizar uma reunião na região de controle usada para criá-la. Para encontrar a região de mídia mais próxima de um cliente, ligue para [https://nearest-media-region.l.chime.aws](https://nearest-media-region.l.chime.aws).

[Eventos](https://docs.aws.amazon.com/chime-sdk/latest/ag/automating-chime-with-cloudwatch-events.html#sdk-events) de reunião, como `AttendeeJoined` chamada [EventBridge, Amazon Simple Queue Service (SQS) ou Amazon Simple Notification Service (SNS) na região de controle da](https://docs.aws.amazon.com/chime-sdk/latest/dg/mtgs-sdk-notifications.html) reunião.

 Para obter uma lista das regiões de mídia e controle de reuniões disponíveis do SDK do Amazon Chime, consulte [Regiões da AWS disponíveis para o SDK do Amazon Chime](sdk-available-regions.md) neste guia.

Este diagrama mostra o fluxo típico de dados pelas regiões de controle e mídia.

![\[Diagrama mostrando o fluxo típico de dados pelas regiões de controle e mídia do SDK do Amazon Chime.\]](http://docs.aws.amazon.com/pt_br/chime-sdk/latest/dg/images/control-media-regions.png)


## Como escolher uma região de controle
<a name="choose-meeting-region"></a>

Lembre-se desses fatores ao escolher uma região de controle para uma reunião do SDK do Amazon Chime:
+ **Requisitos regulatórios**. Seu aplicativo precisa estar dentro de uma fronteira geopolítica ou usar um endpoint com módulos criptográficos validados pelo FIPS 140-2?
+ **Latência da API**. Usar a região de controle mais próxima da AWS região do seu serviço de aplicativo pode ajudar a reduzir a APIs “latência da rede”. Por sua vez, isso ajuda a reduzir o tempo necessário para criar reuniões e permite que os usuários participem das reuniões mais rapidamente.
+ **Alta disponibilidade**. Você pode usar várias regiões de controle para implementar arquiteturas de alta disponibilidade. No entanto, cada região de controle opera de forma independente. Além disso, você só pode atualizar uma reunião na região de controle usada para criá-la. Além disso, você deve usar essa mesma região para consumir eventos de reunião com EventBridge o [Amazon Simple Queue Service (SQS) ou o Amazon Simple Notification Service (SNS)](https://docs.aws.amazon.com/chime-sdk/latest/dg/mtgs-sdk-notifications.html).

## Como escolher uma região de mídia
<a name="choose-media-region"></a>

**nota**  
Recomendamos que você sempre especifique um valor no parâmetro `MediaRegion` na ação da API [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateMeeting.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateMeeting.html). Para obter mais informações sobre as regiões, consulte [Regiões da AWS disponíveis para o SDK do Amazon Chime](sdk-available-regions.md).

Ao escolher uma região de mídia para usar em sua reunião do SDK do Amazon Chime, considere estes fatores comuns:

**Requisitos regulatórios**  
Se suas reuniões do SDK do Amazon Chime estiverem sujeitas a regulamentações que exigem que sejam hospedadas dentro de uma fronteira geopolítica, considere fazer uma codificação rígida da região da reunião com base na lógica fixa da aplicação.  
Por exemplo, um aplicativo de telemedicina pode exigir que todas as reuniões sejam hospedadas dentro da jurisdição do médico. Se o aplicativo oferecer suporte a clínicas localizadas na Europa e nos Estados Unidos, você poderá usar o endereço de cada clínica para selecionar uma região dentro de sua jurisdição. 

**Qualidade da reunião**  
Quando uma reunião do SDK do Amazon Chime é hospedada em uma região de mídia, o áudio e o vídeo de cada participante são enviados e recebidos dessa região. À medida que a distância entre o participante e a região aumenta, a qualidade da reunião pode ser afetada pela latência da rede. Especificar uma região para sua reunião do SDK do Amazon Chime pode ajudar a melhorar sua qualidade para seus participantes, estejam eles localizados próximos uns dos outros ou distribuídos geograficamente.

Você pode usar um dos métodos a seguir para escolher uma região de mídia para sua reunião do SDK do Amazon Chime:

**Faça uma codificação rígida de uma região de mídia**  
Recomendado se suas reuniões do SDK do Amazon Chime forem todas hospedadas em uma região específica da AWS .

**Escolha a região de mídia mais próxima**  
Recomendado se os participantes da reunião do SDK do Amazon Chime estiverem localizados na mesma região AWS , mas suas reuniões estiverem hospedadas em regiões diferentes.

## Como descobrir a região de mídia mais próxima
<a name="choose-nearest-media-region"></a>

Para encontrar a região de mídia mais próxima capaz de hospedar uma reunião do Amazon Chime SDK, ligue para [https:](https://nearest-media-region.l.chime.aws)//.l.chime.aws. nearest-media-region Esse endpoint retorna uma única região, como `{"region": "us-west-2"}`. Chame o URL da sua aplicação cliente para identificar a região mais próxima do usuário e, depois, use o resultado no parâmetro `MediaRegion` da API [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) para criar a reunião nessa região.

Normalmente, você chama a URL quando o aplicativo cliente é iniciado ou sua conexão de rede é alterada. Ao predeterminar a região mais próxima, você evita adicionar a latência da chamada no momento da criação da reunião.

## Encontrando a região de mídia AWS GovCloud (EUA) mais próxima
<a name="choose-gov-cloud-region"></a>

Para encontrar a região AWS GovCloud (EUA) mais próxima que pode hospedar uma reunião do Amazon Chime SDK, ligue para [https:](https://nearest-us-gov-media-region.l.chime.aws)//-region.l.chime.aws. nearest-us-gov-media Esse endpoint retorna a região mais próxima, como `{"region": "us-gov-west-1"}`. Chame a URL do seu aplicativo cliente para identificar o AWS GovCloud (EUA) mais próximo do usuário e use o resultado no `MediaRegion` parâmetro da [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 para criar a reunião nessa região.

Normalmente, você chama a URL quando o aplicativo cliente é iniciado ou sua conexão de rede é alterada. Ao predeterminar a região mais próxima, você evita adicionar a latência da chamada no momento da criação da reunião.

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

O exemplo a seguir usa HTML JavaScript para retornar a região de mídia e a região de mídia AWS GovCloud (EUA) mais próximas.

```
<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>
```

## Como verificar o status da região
<a name="region-status"></a>

Chame [https://region.status.chime.aws/](https://region.status.chime.aws/) para recuperar a integridade do serviço SDK do Amazon Chime em cada região. O resultado mostra as regiões recomendadas. Se uma região de mídia tiver um status diferente de **recomendado**, o endpoint da região de mídia mais próxima não retornará essa região.

O exemplo a seguir mostra um resultado típico.

```
{
  "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"
  }
}
```

# Criar reuniões usando o SDK do Amazon Chime
<a name="create-mtgs"></a>

O procedimento a seguir demonstra como criar uma reunião com áudio e vídeo para seus aplicativos do servidor e do cliente. Antes de começar, é necessário integrar seu aplicativo cliente a uma biblioteca cliente do SDK do Amazon Chime. Para obter mais informações, consulte [Saiba mais sobre as bibliotecas de clientes do SDK do Amazon Chime](mtgs-sdk-client-lib.md).

**Para criar uma reunião com áudio e vídeo**

1. Complete as etapas a seguir em seu aplicativo de servidor:

   1. Use a ação da API [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateMeeting.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateMeeting.html) na *Referência de API do SDK do Amazon Chime* para criar uma reunião. Especifique uma AWS região usando o `MediaRegion` parâmetro. Para obter mais informações sobre a escolha de uma região de reunião, consulte [Regiões de reunião](sdk-available-regions.md#sdk-meeting-regions).

   1. Adicione participantes à reunião usando a ação da API [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) ou a ação da 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). Transfira com segurança a reunião e o participante do seu aplicativo de servidor para o cliente autorizado como o respectivo participante. Para ter mais informações sobre reuniões e participantes, consulte [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) e [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) na *Referência de API do SDK do Amazon Chime*.

1. Complete as etapas a seguir em seu aplicativo de cliente:

   1. Use uma biblioteca cliente do SDK do Amazon Chime para estruturar um objeto `MeetingSessionConfiguration`. Use as informações da reunião e do participante das etapas anteriores.

   1. Implemente a interface `AudioVideoObserver`.

   1. Crie uma `MeetingSession` usando a `MeetingSessionConfiguration`.

   1. Use o `AudioVideoFacade` da `MeetingSession` para controlar a mídia em tempo real.

      1. Registre uma instância da interface `AudioVideoObserver`. Isso permite que você receba eventos quando o estado da reunião mudar.

      1. Selecione os dispositivos iniciais para entrada de áudio, saída de áudio e entrada de vídeo.

      1. Inicie a sessão audiovisual.

      1. Inicie a captura de vídeo local quando o usuário quiser compartilhar o vídeo.

      1. Para mostrar blocos de vídeo, gerencie eventos de blocos de vídeo e vincule os blocos às superfícies de vídeo no aplicativo cliente.

      1. Gerencie outras interações do usuário, como silenciar e ativar o som, ou iniciar e interromper a captura de vídeo local.

      1. Para sair da reunião, interrompa a sessão audiovisual.

   1. (Opcional) Use o `AudioVideoFacade` da `MeetingSession` para compartilhar conteúdo de mídia, como capturas de tela, com outros clientes.

      1. Inicie a sessão de compartilhamento de tela. O conteúdo se junta à reunião como participante adicional.

      1. Para visualizar o conteúdo compartilhado, gerenciar eventos de blocos de vídeo e vincular os blocos às superfícies no aplicativo cliente.

      1. Gerencie outras interações, como pausar, reiniciar ou interromper o compartilhamento de conteúdo.

As reuniões terminam quando você executa a ação da API [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). Além disso, as reuniões terminam automaticamente quando:
+ O tempo da reunião ultrapassa 24 horas.
+ A reunião é uma [réplica da reunião](media-replication.md) e a reunião principal termina.
+ Em uma reunião sem réplica, nenhum participante estiver conectado por cinco minutos contínuos.

# Selecionar recursos de reunião do SDK do Amazon Chime.
<a name="js-meeting-features"></a>

Ao chamar a API [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), é possível especificar recursos para disponibilizar aos clientes que ingressam na sessão. Observe que algumas opções de recursos geram cobrança adicional.

Os seguintes recursos estão disponíveis para sessões:
+ `Audio.EchoReduction`: redução do eco de machine learning.
+ `Video.MaxResolution`: resolução máxima de vídeo da webcam.
+ `Content.MaxResolution`: resolução máxima de compartilhamento de conteúdo.
+ `Attendees.MaxCount`: número máximo de participantes.

**Topics**
+ [Usando áudio. EchoReduction](#audio-echo-reduction)
+ [Usando o vídeo. MaxResolution](#video-max-resolution)
+ [Usando o conteúdo. MaxResolution](#js-content-resolution)
+ [Usando participantes. MaxCount](#js-max-attendees)
+ [Usar recursos de reunião em uma aplicação cliente](#meeting-features-client-app)

## Usando áudio. EchoReduction
<a name="audio-echo-reduction"></a>

Use `Audio.EchoReduction` para ajudar a impedir que o som do alto-falante de um usuário circule de volta para a reunião.

A redução de eco é ideal para situações em que o alto-falante do usuário será o principal dispositivo de saída para o áudio da reunião. Por exemplo, quando vários usuários estão participando de uma reunião usando o mesmo dispositivo em uma sala de conferência ou quando um participante remoto individual não está usando fones de ouvido.

A redução de eco está disponível nas bibliotecas cliente JavaScript e React. Para obter mais informações, consulte a [documentação em GitHub](https://aws.github.io/amazon-chime-sdk-js/modules/amazonvoice_focus.html#what-is-echo-reduction). Sujeito a custos adicionais. Consulte os detalhes na [página de Preços do SDK do Amazon Chime](https://aws.amazon.com/chime/chime-sdk/pricing/).

## Usando o vídeo. MaxResolution
<a name="video-max-resolution"></a>

Use `Video.MaxResolution` para especificar a resolução máxima de vídeo da webcam para a reunião. O recurso fornece as seguintes opções:
+ `None`: nenhum vídeo de câmera permitido
+ `HD`: vídeo de câmera de alta definição (1280x720p)
+ `FHD`: full-high-definition câmera de vídeo (1920x1080)

Se um vídeo FHD (1080p) for solicitado, será criada uma sessão de WebRTC de alta definição. Consulte os detalhes na [página de Preços do SDK do Amazon Chime](https://aws.amazon.com/chime/chime-sdk/pricing/).

Se um cliente tentar enviar vídeo de webcam acima do máximo especificado, o serviço rejeitará o vídeo e enviará o seguinte erro:

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

## Usando o conteúdo. MaxResolution
<a name="js-content-resolution"></a>

Use `Content.MaxResolution` para especificar a resolução máxima de compartilhamento de conteúdo para a reunião. O recurso fornece as seguintes opções: 
+ `None`: nenhum compartilhamento de conteúdo permitido
+ `FHD`: compartilhamento full-high-definition de conteúdo (1920x1080)
+ `UHD`: compartilhamento ultra-high-definition de conteúdo (3840x2160)

Se um conteúdo em UHD (4K) for solicitado, será criada uma sessão de WebRTC de alta definição.

Se um cliente tentar enviar um compartilhamento de conteúdo além da resolução máxima, a escala da resolução será reduzida verticalmente para o máximo especificado. Você escala aplicando `MediaTrackConstraints` à trilha de compartilhamento de conteúdo. Os exemplos a seguir mostram como escalar uma trilha de compartilhamento.

```
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})`
    );
  }
```

A tabela a seguir mostra o comportamento esperado para o compartilhamento de conteúdo.


| Recurso do conteúdo | Resolução nativa de compartilhamento de conteúdo | Escalabilidade | Resolução da codificação de conteúdo | 
| --- | --- | --- | --- | 
|  FHD | 1280x720  | Não | 1280x720 | 
| FHD | 1920x1080 | Não | 1920x1080 | 
| FHD | 3840x2160 | Sim | 1920x1080 | 
| UHD | 1920x1080 | Não | 1920x1080 | 
| UHD | 3840x2160 | Não | 3840x2160 | 
| UHD | 4200x2400 | Sim | 3780x2160 | 

## Usando participantes. MaxCount
<a name="js-max-attendees"></a>

Use `Attendee.MaxCount` para especificar o número de participantes permitidos em uma reunião. O limite superior do participante. MaxCount depende do tipo de sessão. Para uma sessão padrão, você pode selecionar no máximo 250 participantes. Para uma sessão de alta definição, você *deve* selecionar um valor de até 25 participantes. 

Se você solicitar vídeo em FHD (1080p) ou conteúdo em UHD (4K), sua sessão será de alta definição.

Os custos de capacidade dos participantes se aplicam a sessões de alta definição. Consulte os detalhes na [página de Preços do SDK do Amazon Chime](https://aws.amazon.com/chime/chime-sdk/pricing/).

## Usar recursos de reunião em uma aplicação cliente
<a name="meeting-features-client-app"></a>



### Criar uma reunião com recursos especificados
<a name="js-create-meetings-sdk-namespace"></a>

Para criar uma reunião, chame a API [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) e especifique os recursos de reunião desejados. O exemplo a seguir mostra como especificar todos os recursos.

```
// 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();
```

### Usar recursos de reunião em um cliente
<a name="js-client-level"></a>

Depois de criar uma reunião com os recursos desejados, você pode transmitir o `joinInfo` ao criar o objeto `MeetingSessionConfiguration`. Os recursos da reunião são usados na criação de `meetingSession` para definir a resolução e a taxa de bits do vídeo da webcam, e a resolução e a taxa de bits do compartilhamento de conteúdo.

```
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)
);
```

# Como reuniões do SDK do Amazon Chime usam mídia WebRTC
<a name="webrtc-media"></a>

O SDK do Amazon Chime é compatível com dois tipos de sessões WebRTC: padrão e de alta definição. Os tópicos a seguir descrevem a mídia disponível em cada tipo de sessão ao usar as bibliotecas de cliente do Amazon Chime SDK para JavaScript React, iOS e Android.

**Topics**
+ [Áudio](#webrtc-audio)
+ [Vídeo](#video)
+ [Compartilhamento de conteúdo](#content-share)
+ [Mensagens de dados](#data-messages)

## Áudio
<a name="webrtc-audio"></a>

Cada cliente do Amazon Chime envia um streaming de áudio para as sessões e recebe um streaming de áudio da sessão. Normalmente, microfones em dispositivos locais geram o áudio. O áudio recebido é uma combinação do áudio enviado pelos outros clientes da sessão.

Ambos os tipos de sessão permitem taxas de amostragem de até 48 kHz e até dois canais (estéreo) codificados com taxas de bits de até 128 kbps usando o codec Opus. No entanto, os fluxos de áudio enviados e recebidos variam de acordo com o tipo de biblioteca do cliente:
+ As bibliotecas de cliente do Amazon Chime SDK para JavaScript e React suportam o envio e o recebimento de áudio mono e estéreo na taxa de amostragem mais alta suportada pelo dispositivo e pelo navegador, até um máximo de 48 kHz.
+ As bibliotecas de cliente do SDK do Amazon Chime para iOS e Android suportam o envio de áudio mono até 48 kHz e o recebimento de áudio estéreo a 48 kHz.

## Vídeo
<a name="video"></a>

Cada cliente do Amazon Chime pode enviar um streaming de vídeo para a sessão e receber até 25 streamings de vídeo da sessão. O vídeo enviado geralmente é proveniente da webcam do dispositivo local. Cada cliente pode selecionar até 25 streamings de vídeo para receber e alterar a seleção a qualquer momento durante a sessão. 

As sessões padrão oferecem suporte a resoluções de vídeo de até 1280x720 a 30 quadros por segundo codificados com taxas de bits de até 1500 kbps usando H.264,, e. VP8 VP9 AV1

As sessões de alta definição suportam resoluções de vídeo de até 1920x1080 a 30 quadros por segundo codificados com taxas de bits de até 2500 kbps usando H.264,, e. VP8 VP9 AV1

As bibliotecas de cliente do Amazon Chime SDK para JavaScript e React oferecem suporte ao envio de vídeo em transmissão simultânea a 15 quadros por segundo ou com codificação de vídeo escalável (SVC). A SVC codifica um único streaming de vídeo com três camadas espaciais e três camadas temporais em 100%, 50% e 25% dos seus valores desejados. O serviço seleciona automaticamente a camada a ser enviada para cada visualizador com base na largura de banda disponível deles.

As bibliotecas clientes do SDK do Amazon Chime para iOS e Android permitem o envio de até 15 quadros por segundo. No entanto, a taxa de quadros e a resolução reais são gerenciadas automaticamente pelo SDK do Amazon Chime.

A codificação e decodificação de vídeo usam aceleração de hardware, quando disponível, para melhorar o desempenho.

 Se um cliente enviar vídeo com uma taxa de bits maior que a máxima permitida, a sessão primeiro começará a enviar ao cliente mensagens de taxa de bits máxima estimada do receptor por meio do Protocolo de controle em tempo real. Se o cliente continuar enviando vídeo com uma taxa de bits maior que a máxima permitida, a sessão descartará os pacotes de streaming de vídeo recebidos.

## Compartilhamento de conteúdo
<a name="content-share"></a>

Até dois clientes podem compartilhar conteúdo na sessão. Um compartilhamento de conteúdo pode incluir uma faixa de vídeo, uma faixa de áudio ou ambas. Um exemplo comum de compartilhamento de conteúdo é o compartilhamento de tela, que usa a captura de tela como fonte do conteúdo. Outro exemplo é compartilhar conteúdo pré-gravado com faixas de vídeo e áudio.

O áudio do conteúdo é misturado ao streaming de áudio enviado pela sessão. O áudio do conteúdo suporta taxas de amostragem de até 48 kHz e até 2 canais (estéreo) codificados com taxas de bits de até 128 kbps usando o codec Opus.

O conteúdo do vídeo é enviado à sessão e encaminhado aos clientes em um streaming de vídeo separado. As sessões-padrão permitem vídeo de conteúdo de até 1920x1080 a 30 quadros por segundo. As sessões de alta definição permitem vídeo de conteúdo de até 3840x2160 a 30 quadros por segundo.

A captura de tela para o compartilhamento de conteúdo usa a resolução da tela ou janela que está sendo capturada, até a resolução máxima de conteúdo para o tipo de sessão e até 30 quadros por segundo. No entanto, os recursos do dispositivo e do navegador podem limitar esses valores.

As bibliotecas de cliente do Amazon Chime SDK para JavaScript e React oferecem suporte ao compartilhamento de conteúdo de captura de tela e outras fontes.

As bibliotecas clientes do SDK do Amazon Chime para iOS e Android só permitem o compartilhamento de conteúdo de captura de tela.

## Mensagens de dados
<a name="data-messages"></a>

As mensagens de dados fornecem uma maneira de um cliente transmitir informações para outros clientes na sessão. Por exemplo, uma aplicação pode usar mensagens de dados para compartilhar reações de emojis durante uma sessão.

Cada mensagem de dados inclui:
+ Um tópico, uma string com até 64 caracteres.
+ Até 2 KB de dados, incluindo o tópico.

Um cliente envia uma mensagem de dados para a sessão e esta envia a mensagem de dados para todos os clientes conectados.

Opcionalmente, a sessão pode armazenar em cache a mensagem de dados por até cinco minutos. Se um cliente entrar ou se reconectar a uma sessão, ela enviará automaticamente ao cliente todas as mensagens de dados em cache que não tenham sido enviadas anteriormente. O cache da sessão armazena no máximo 1.024 mensagens de dados.

Uma sessão permite até 100 mensagens de dados enviadas por segundo. Ao usar a [transcrição ao vivo](https://docs.aws.amazon.com/chime-sdk/latest/dg/meeting-transcription.html), cada cliente recebe [mensagens de transcrição](https://docs.aws.amazon.com/chime-sdk/latest/dg/process-msgs.html) por meio de mensagens de dados, que são contabilizadas no total de mensagens enviadas por segundo.

# Configurar codecs de vídeo para reuniões do SDK do Amazon Chime
<a name="js-meeting-manage-codecs"></a>

Um dispositivo cliente usa um codec de vídeo para compactar o vídeo bruto antes de enviá-lo ao serviço e para descompactar o vídeo recebido antes de renderizá-lo.

Ao usar a biblioteca cliente do Amazon Chime SDK para JavaScript, você pode especificar suas preferências de codec para envio de vídeo. 

As bibliotecas clientes do SDK do Amazon Chime para iOS e Android selecionam automaticamente o codec para você, com base nos recursos do dispositivo.

## Definir as preferências de codec de vídeo
<a name="codec-list"></a>

Na biblioteca de cliente do Amazon Chime SDK para JavaScript, você pode especificar preferências de codecs de vídeo independentes para webcam e vídeo de conteúdo. 

Use [ AudioVideoControllerFacadeo. setVideoCodecSendPreferences ](https://aws.github.io/amazon-chime-sdk-js/interfaces/audiovideocontrollerfacade.html#setvideocodecsendpreferences)função para definir suas preferências de codec para enviar vídeo de webcam. O link leva você para GitHub.

Suas preferências são passadas como uma matriz ordenada, com seu codec preferido primeiro e o menos preferido por último. 

Ao fornecer várias preferências de codec, o serviço seleciona automaticamente o codec preferido que todos os participantes da sessão podem decodificar.

O exemplo a seguir mostra como definir uma preferência de codec de vídeo VP9 com uma opção alternativa de: VP8

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

Os seguintes cenários se aplicam às preferências:
+ **Ótimo** — O cliente codifica o vídeo usando o VP9 codec.
+ **Recurso local** — Se o cliente não oferecer suporte à VP9 codificação, ele retornará à VP8 codificação. Se o cliente não oferecer suporte à VP8 codificação, ele retornará a qualquer codec compatível com o navegador e o serviço.
+ **Fallback remoto** — Se outro cliente na sessão não tiver um VP9 decodificador, esse cliente retornará à VP8 codificação.
+ **Falha local** — Se o cliente não oferecer suporte VP9 ou VP8 codificar, ele não enviará vídeo.

Para definir preferências de compartilhamento de conteúdo, use [ ContentShareControllerFacadeo. setContentShareVideoCodecPreferences ](https://aws.github.io/amazon-chime-sdk-js/interfaces/contentsharecontrollerfacade.html#setcontentsharevideocodecpreferences)função para definir suas preferências de codec para enviar conteúdo de vídeo. Este link leva você para GitHub.

 O exemplo a seguir define uma preferência de codec de vídeo de conteúdo VP9 com uma opção alternativa de. VP8

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

# Configurar a rede para reuniões do SDK do Amazon Chime
<a name="network-config"></a>

Quando você integra o SDK do Amazon Chime ao seu aplicativo cliente, o SDK se conecta ao serviço de back-end para enviar e receber mensagens de áudio, vídeo, compartilhamento de conteúdo e dados. Se a rede de seus usuários bloquear o tráfego para o serviço SDK do Amazon Chime, a capacidade deles de usar o serviço será prejudicada. Os administradores de rede podem usar essas informações para reconfigurar sua rede e permitir o acesso ao serviço SDK do Amazon Chime.

**nota**  
Ao configurar a rede, é necessário habilitar o EDNS0 (Extension Mechanisms for DNS) por padrão. Isso permite que seu aplicativo alcance os serviços de SDK do Amazon Chime, garantindo que as informações do host tenham o tamanho correto para pacotes UDP.

**Topics**
+ [Como configurar para mídia e sinalização](#media-signaling)
+ [Como configurar para o Amazon Voice Focus](#voice-focus-config)
+ [Como configurar para redução de eco](#echo-reduction)
+ [Como configurar para substituição e desfoque do fundo](#config-blur)
+ [Como configurar políticas de segurança de conteúdo do navegador](#configure-browser-policy)
+ [Uso AppKeys e locatário IDs para o Amazon Chime SDK](app-keys-tenant-ids.md)

## Como configurar para mídia e sinalização
<a name="media-signaling"></a>

Áudio, vídeo e conteúdo do SDK do Amazon Chime usam o transporte do User Datagram Protocol (UDP) sempre que possível. Se o UDP estiver bloqueado, o SDK do Amazon Chime tentará estabelecer uma conexão Transport Layer Security (TLS) para transporte de mídia bidirecional. As mensagens de dados e sinalização do Amazon Chime SDK usam o Transmission Control Protocol (TCP) e conexões. WebSocket 

O diagrama a seguir mostra uma rede típica com um aplicativo que executa o SDK do Amazon Chime. 

![\[Uma rede configurada para executar um aplicativo SDK do Amazon Chime, com comunicação bidirecional entre o SDK e uma reunião.\]](http://docs.aws.amazon.com/pt_br/chime-sdk/latest/dg/images/net-config-diagram.png)


O SDK do Amazon Chime usa os seguintes destinos e portas para mídia e sinalização.


| Domínio | IPv4 Sub-rede | IPv6 Sub-rede | Portas | 
| --- | --- | --- | --- | 
| \$1.chime.aws | 99.77.128.0/18 | 2600:f0f 0:41:00:/40 | TCP:443 UDP:3478 | 

Essa sub-rede é o serviço `CHIME_MEETINGS` nos [intervalos de endereços IP da AWS](https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html).

## Como configurar para o Amazon Voice Focus
<a name="voice-focus-config"></a>

As bibliotecas de cliente do SDK do Amazon Chime para iOS e Android incluem o módulo Amazon Voice Focus. A biblioteca cliente do Amazon Chime SDK para baixar JavaScript o módulo Amazon Voice Focus da Amazon. CloudFront A biblioteca cliente do SDK do Amazon Chime para Windows não é compatível com o Voice Focus.

O Amazon Voice Focus usa os seguintes destinos e portas.


| Domínio | Portas | 
| --- | --- | 
| \$1.sdkassets.chime.aws | TCP:443 | 

Essa sub-rede é o serviço `CLOUDFRONT` nos [intervalos de endereços IP da AWS](https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html).

## Como configurar para redução de eco
<a name="echo-reduction"></a>

A biblioteca cliente do Amazon Chime SDK para JavaScript baixar o módulo de redução de eco da Amazon. CloudFront

A redução de eco usa os seguintes destinos e portas.


| Domínio | Portas | 
| --- | --- | 
| \$1.sdkassets.chime.aws | TCP:443 | 

Essa sub-rede é o serviço `CLOUDFRONT` nos [intervalos de endereços IP da AWS](https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html).

## Como configurar para substituição e desfoque do fundo
<a name="config-blur"></a>

A biblioteca cliente do Amazon Chime SDK para JavaScript baixar o módulo de substituição e desfoque de fundo da Amazon. CloudFront

A substituição e o desfoque do fundo usam os seguintes destinos e portas.


| Domínio | Portas | 
| --- | --- | 
| \$1.sdkassets.chime.aws | TCP:443 | 

Essa sub-rede é o serviço `CLOUDFRONT` nos [intervalos de endereços IP da AWS](https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html).

## Como configurar políticas de segurança de conteúdo do navegador
<a name="configure-browser-policy"></a>

Ao criar um aplicativo com a biblioteca cliente do Amazon Chime SDK para JavaScript, você precisa configurar as políticas de segurança de conteúdo do navegador em seu aplicativo. Para obter mais informações, consulte o [Guia de Política de Segurança de Conteúdo](https://aws.github.io/amazon-chime-sdk-js/modules/contentsecurity_policy.html) em GitHub. 

# Uso AppKeys e locatário IDs para o Amazon Chime SDK
<a name="app-keys-tenant-ids"></a>

Você pode usar AppKeys um locatário IDs para limitar o acesso *de uma rede às sessões de* mídia WebRTC do Amazon Chime SDK de aplicativos específicos.

Os desenvolvedores usam o SDK do Amazon Chime para criar aplicativos que enviam e recebem vídeo em tempo real via UDP. Os usuários do aplicativo precisam de acesso UDP à sub-rede [https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html](https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html). As organizações (proprietários da rede) podem usar AppKeys um locatário IDs para limitar o acesso de sua rede somente às sessões de mídia WebRTC de um aplicativo específico.

**Exemplo 1: Usando AppKeys**  
Se a App-A e a App-B usarem o SDK do Amazon Chime, uma organização poderá permitir que a App-A acesse as sessões de mídia do WebRTC por meio de sua rede, mas bloquear a App-B e todas as outras aplicações que usam o SDK do Amazon Chime. As organizações podem fazer isso com App-A's AppKey e um proxy HTTPS. Para mais informações, consulte [Como limitar o acesso a um aplicativo específico](#limit-app-access) mais à frente neste tópico.

**Exemplo 2: Uso AppKeys de um locatário IDs**  
Se o App-A estiver disponível publicamente e for usado por muitos clientes, uma organização pode querer permitir que o App-A acesse sessões de mídia do WebRTC de sua rede somente quando seus usuários fizerem parte da sessão e bloquear o acesso a todas as outras sessões do App-A. As organizações podem fazer isso usando o aplicativo AppKey, o TenantID da organização e um proxy HTTPS. Para mais informações, consulte [Como limitar o acesso a um locatário específico](#limit-tenant-access) mais à frente neste tópico.

Para usar AppKeys um locatárioIDs, você deve ter um servidor proxy HTTPS que permita adicionar cabeçalhos HTTPS a uma solicitação. O diagrama a seguir mostra como AppKeys um inquilino IDs funciona.

![\[Diagrama mostrando como AppKeys e o locatário IDs controlam o acesso do aplicativo e do inquilino a uma sessão do WebRTC.\]](http://docs.aws.amazon.com/pt_br/chime-sdk/latest/dg/images/app-key-diagram.png)


Na imagem, o App-A tem os inquilinos A-1 e A-2, e o App-B tem os locatários B-1 e B-2. Nesse caso, o AppKey único permite que o App-A se conecte à sessão de mídia do WebRTC, e o ID do inquilino só admite o Locatário A-1 na sessão.

**Topics**
+ [Como limitar o acesso a um aplicativo específico](#limit-app-access)
+ [Como limitar o acesso a um locatário específico](#limit-tenant-access)
+ [Exemplos de cabeçalho HTTPS](#header-examples)

## Como limitar o acesso a um aplicativo específico
<a name="limit-app-access"></a>

An *AppKey*é um valor consistente e exclusivo de 256 bits que o Amazon Chime cria para cada conta. AWS Se você não tiver um AppKey, você pode solicitar um no Amazon Support. Se você tiver várias AWS contas, poderá solicitar uma comum AppKey para todas as suas contas.

**nota**  
Você pode compartilhá-lo AppKeys publicamente com segurança e permitir que outras organizações limitem o acesso de suas redes. 

O Amazon Chime SDK associa automaticamente cada sessão de mídia do WebRTC a AppKey uma com base na ID da conta usada para criar a sessão. AWS Para limitar o acesso *da sua rede* a aplicativos específicos, faça o seguinte:

1. Encaminhe todas as solicitações de saída para a sub-rede `CHIME_MEETINGS` por meio de um servidor proxy HTTPS. 

1. Configure o servidor proxy para adicionar o seguinte cabeçalho a todas as solicitações de saída para a sub-rede `CHIME_MEETINGS`:

   `X-Amzn-Chime-App-Keys:` *comma-separated list of allowed AppKeys*.

   Por exemplo, `X-Amzn-Chime-App-Keys:AppKey-A,AppKey-B,AppKey-C` permite que os aplicativos associados a eles AppKeys acessem a sub-rede.

O SDK do Amazon Chime inspeciona conexões de sessão de mídia do WebRTC de entrada para o cabeçalho `X-Amzn-Chime-App-Keys` e aplica a seguinte lógica:

1. Se o `X-Amzn-Chime-App-Keys` cabeçalho estiver presente e incluir o da sessão AppKey, aceite a conexão.

1. Se o `X-Amzn-Chime-App-Keys` cabeçalho estiver presente, mas não incluir o da sessão AppKey, rejeite a conexão com um erro 403.

1. Se o cabeçalho `X-Amzn-Chime-App-Keys` não estiver presente, aceite a conexão. Se os usuários puderem acessar o aplicativo de fora da rede da organização, eles também poderão acessar a sessão.

## Como limitar o acesso a um locatário específico
<a name="limit-tenant-access"></a>

Um *TenantID* é um identificador opaco criado por desenvolvedores. Lembre-se do seguinte sobre o inquilinoIDs:
+ Não IDs é garantido que o inquilino seja exclusivo entre os aplicativos, portanto, você deve especificar um AppKey para cada lista de ID de locatário. 
+ Os inquilinos IDs fazem distinção entre maiúsculas e minúsculas. Digite-os exatamente conforme prescrito pelo desenvolvedor.
+ Uma organização pode limitar o acesso a vários aplicativos, mas especificar apenas o locatário IDs para alguns desses aplicativos. Aplicativos sem o Tenant IDs podem se conectar a todas as sessões de mídia do WebRTC. 

Para associar uma sessão de mídia ao LocatárioIDs, um desenvolvedor deve primeiro adicionar a `TenantIds` propriedade e uma lista de Locatários IDs a um [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) ou [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) solicitação.

Por exemplo:

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

Para limitar o acesso da rede de uma organização à sessão de mídia do WebRTC em aplicativos específicos, faça o seguinte:

1. Siga as etapas em [Como limitar o acesso a um aplicativo específico](#limit-app-access).

1. Configure o servidor proxy HTTPS para adicionar um cabeçalho `X-Amzn-Chime-Tenants` nas conexões de saída. Inclua uma lista de AppKeys um inquilinoIDs, delimitada conforme mostrado neste exemplo: `X-Amzn-Chime-Tenants: AppKey-A:tenantId-A-1,tenantId-A-2;AppKey-B:tenantId-B-1,tenantId-B-2`

O SDK do Amazon Chime inspeciona conexões de sessão de mídia do WebRTC de entrada para o cabeçalho `X-Amzn-Chime-Tenants` e aplica a seguinte lógica:
+ Se o cabeçalho incluir o `AppKey:tenantId` da sessão, aceite a conexão.
+ Se o cabeçalho incluir o `AppKey` da sessão, mas não corresponder ao `tenantId`, rejeite a conexão com um erro 403.
+ Se o cabeçalho *não* incluir o `AppKey` da sessão, aceite a conexão.
+ Se o cabeçalho incluir o `AppKey` da sessão, mas a sessão não tiver pelo menos um `tenantId` permitido, rejeite a conexão com um erro 403. Isso pode ser um bug do desenvolvedor.
+ Se o cabeçalho não estiver presente, aceite a conexão. Se os usuários puderem acessar o aplicativo de fora da rede da organização, eles também poderão acessar todas as sessões.

## Exemplos de cabeçalho HTTPS
<a name="header-examples"></a>

Os exemplos a seguir mostram algumas maneiras de usar AppKeys um locatário IDs em cabeçalhos HTTPS.

**Um aplicativo com um locatário**  
`X-Amzn-Chime-App-Keys: AppKey`  
`X-Amzn-Chime-Tenants: AppKey:orgId`  
Os usuários podem acessar somente as sessões de mídia do WebRTC da organização no aplicativo especificado. Todos os outros aplicativos são bloqueados.

**Um aplicativo com dois locatários**  
`X-Amzn-Chime-App-Keys: AppKey`  
`X-Amzn-Chime-Tenants: AppKey:engineeringId,salesId`  
Os usuários podem acessar somente as sessões de mídia para engenharia e vendas no aplicativo especificado. Todos os outros aplicativos são bloqueados.

**Dois aplicativos, um limitado a um locatário**  
`X-Amzn-Chime-App-Keys: AppKey1,AppKey2`  
`X-Amzn-Chime-Tenants: AppKey1:orgId`  
Os usuários podem acessar somente as sessões de mídia da organização no aplicativo 1 e qualquer sessão no aplicativo 2. Todos os outros aplicativos são bloqueados.

# Noções básicas sobre eventos do ciclo de vida de reuniões do SDK do Amazon Chime
<a name="using-events"></a>

O SDK do Amazon Chime envia eventos do ciclo de vida da reunião, que você pode usar para acionar notificações e iniciar fluxos de trabalho posteriores. Alguns exemplos de uso dos eventos de reunião incluem: 
+ Como atualizar metadados quando um participante ingressa ou sai de uma reunião do SDK do Amazon Chime.
+ Como implementar notificações por push ou listas para uma reunião do SDK do Amazon Chime.
+ Como medir o uso do compartilhamento de vídeo e conteúdo em reuniões do SDK do Amazon Chime.

Você pode enviar eventos para a Amazon EventBridge, Amazon Simple Notification Service (SNS) e Amazon Simple Queue Service (SQS). Para obter mais informações, consulte [Eventos de AWS serviços](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-service-event.html) no *Guia do EventBridge usuário da Amazon*.

## A reunião do SDK do Amazon Chime é iniciada
<a name="sdk-start-mtg"></a>

O SDK do Amazon Chime envia este evento quando uma nova reunião é iniciada.

**Example Dados de eventos**  
Veja a seguir um exemplo que mostra os dados desse evento.  

```
{
  "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"
  }
}
```

## A reunião do SDK do Amazon Chime é encerrada
<a name="sdk-end-mtg"></a>

O SDK do Amazon Chime envia este evento quando uma reunião ativa termina.

**nota**  
Para maior eficiência, o serviço também envia esse evento quando você liga para o [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 Dados de eventos**  
Veja a seguir um exemplo que mostra os dados desse evento.  

```
{
  "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"
  }
}
```

## O participante do SDK do Amazon Chime é adicionado
<a name="sdk-add-attendee"></a>

O SDK do Amazon Chime envia este evento quando um novo participante é adicionado a uma reunião ativa.

**Example Dados de eventos**  
Veja a seguir um exemplo que mostra os dados desse evento.  

```
{
  "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"
  }
}
```

## O participante do SDK do Amazon Chime é excluído
<a name="sdk-remove-attendee"></a>

O Amazon Chime SDK envia esse evento quando você usa o [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 para remover um participante de uma reunião ativa. 

**Example Dados de eventos**  
Veja a seguir um exemplo que mostra os dados desse evento.  

```
{
  "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"
  }
}
```

## O participante do SDK do Amazon Chime está autorizado
<a name="sdk-auth-attendee"></a>

O SDK do Amazon Chime envia esse evento quando um usuário, que já esteja participando da reunião, usa o mesmo token de participação para entrar na reunião novamente. Por exemplo, um usuário pode mudar de uma máquina desktop para um dispositivo móvel. Essa ação efetivamente “transfere” a reunião para o novo dispositivo. 

**Example Dados de eventos**  
Veja a seguir um exemplo que mostra os dados desse evento.  

```
{
  "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"
  }
}
```

## O participante do SDK do Amazon Chime entra em uma reunião
<a name="sdk-join-attendee"></a>

O SDK do Amazon Chime envia esse evento quando um participante existente entra em uma reunião do SDK do Amazon Chime usando o transporte de rede especificado.

**Example Dados de eventos**  
Veja a seguir um exemplo que mostra os dados desse evento.  

```
{
  "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"
  }
}
```

## O participante do SDK do Amazon Chime sai de uma reunião
<a name="sdk-leave-attendee"></a>

O SDK do Amazon Chime envia esse evento quando um participante existente sai de uma reunião do SDK do Amazon Chime usando o transporte de rede especificado.

**nota**  
O serviço nunca envia eventos `chime:AttendeeLeft` e `chime:AttendeeDropped` para a mesma ação de “sair”. Desconectar e sair são ações diferentes, e o sistema envia o evento correspondente a cada ação.  
Por exemplo, digamos que um participante com uma conexão ruim participe de uma reunião às 11h. É possível esperar as seguintes ações:  

```
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 Dados de eventos**  
Veja a seguir um exemplo que mostra os dados desse evento.  

```
{
  "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"
  }
}
```

## O participante do SDK do Amazon Chime é desconectado de uma reunião
<a name="sdk-drop-attendee"></a>

O SDK do Amazon Chime envia esse evento quando um participante atual é desconectado de uma reunião do SDK do Amazon Chime, geralmente devido a uma conexão ruim. Quando o serviço não recebe pacotes por 10 a 15 segundos, ele considera que o cliente foi desconectado e emite o evento.

O serviço geralmente aciona ações de desconexão, mas os clientes também podem acioná-las. Por exemplo, digamos que um usuário troque seu laptop de Wi-Fi para Ethernet. Essa ação constitui uma alteração de adaptador de rede e a conexão é reiniciada. Por sua vez, essa ação redefine o websocket e aciona uma ação combinada de drop-join.

**nota**  
O serviço nunca envia eventos `chime:AttendeeLeft` e `chime:AttendeeDropped` para a mesma ação de “sair”. Desconectar e sair são ações diferentes, e o sistema envia o evento correspondente a cada ação.  
Por exemplo, digamos que um participante com uma conexão ruim participe de uma reunião às 11h. É possível esperar as seguintes ações:  

```
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 Dados de eventos**  
Veja a seguir um exemplo que mostra os dados desse evento.  

```
{
  "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"
  }
}
```

## O participante do SDK do Amazon Chime inicia o streaming de vídeo
<a name="sdk-attendee-video-start"></a>

O SDK do Amazon Chime envia este evento quando um participante existente inicia o streaming de vídeo.

**Example Dados de eventos**  
Veja a seguir um exemplo que mostra os dados desse evento.  

```
{
  "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"
  }
}
```

## O participante do SDK do Amazon Chime encerra o streaming de vídeo
<a name="sdk-attendee-video-stop"></a>

O SDK do Amazon Chime envia este evento quando um participante existente encerra o streaming de vídeo.

**Example Dados de eventos**  
Veja a seguir um exemplo que mostra os dados desse evento.  

```
{
  "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"
  }
}
```

## Participante do SDK do Amazon Chime começa a compartilhar a tela
<a name="sdk-attendee-screenshare-start"></a>

O SDK do Amazon Chime envia este evento quando um participante existente inicia o compartilhamento de tela.

**Example Dados de eventos**  
Veja a seguir um exemplo que mostra os dados desse evento.  

```
{
  "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"
  }
}
```

## Participante do SDK do Amazon Chime para de compartilhar a tela
<a name="sdk-attendee-screenshare-stop"></a>

O SDK do Amazon Chime envia este evento quando um participante existente para o compartilhamento de tela.

**Example Dados de eventos**  
Veja a seguir um exemplo que mostra os dados desse evento.  

```
{
  "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"
  }
}
```

## Recursos de participantes do SDK do Amazon Chime atualizados
<a name="sdk-attendee-capability-updated"></a>

O SDK do Amazon Chime envia esse evento quando os recursos de um participante existente são atualizados.

**Example Dados de eventos**  

```
{
  "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"
   }
  }
}
```

## O conteúdo do participante do SDK do Amazon Chime entra em uma reunião
<a name="sdk-content-join"></a>

O SDK do Amazon Chime envia esse evento quando um compartilhamento de conteúdo entra em uma reunião do SDK do Amazon Chime usando o transporte de rede especificado.

**Example Dados de eventos**  
Veja a seguir um exemplo que mostra os dados desse evento.  

```
{
  "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"
  }
}
```

## O conteúdo do participante do SDK do Amazon Chime sai de uma reunião
<a name="sdk-content-leave"></a>

O SDK do Amazon Chime envia esse evento quando um compartilhamento de conteúdo sai de uma reunião do SDK do Amazon Chime usando o transporte de rede especificado.

**Example Dados de eventos**  
Veja a seguir um exemplo que mostra os dados desse evento.  

```
{
  "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"
  }
}
```

## O conteúdo do participante do SDK do Amazon Chime é derrubado de uma reunião
<a name="sdk-content-drop"></a>

O SDK do Amazon Chime envia esse evento quando um compartilhamento de conteúdo é descartado de uma reunião do SDK do Amazon Chime, normalmente devido à baixa largura de banda.

**Example Dados de eventos**  
Veja a seguir um exemplo que mostra os dados desse evento.  

```
{
  "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"
  }
}
```

## O conteúdo do participante do SDK do Amazon Chime inicia o streaming de vídeo
<a name="sdk-content-start-stream"></a>

O SDK do Amazon Chime envia este evento quando um compartilhamento de conteúdo inicia o streaming de vídeo.

**Example Dados de eventos**  
Veja a seguir um exemplo que mostra os dados desse evento.  

```
{
  "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"
  }
}
```

## O conteúdo do participante do SDK do Amazon Chime para o streaming de vídeo
<a name="sdk-content-stop-stream"></a>

O SDK do Amazon Chime envia este evento quando um compartilhamento de conteúdo para o streaming de vídeo.

**Example Dados de eventos**  
Veja a seguir um exemplo que mostra os dados desse evento.  

```
{
  "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"
  }
}
```

# Entendendo CloudWatch as métricas da Amazon para reuniões do Amazon Chime SDK
<a name="sdk-usage-metrics"></a>

Quando você usa o SDK do Amazon Chime, ele envia métricas de serviço e uso para. CloudWatch As métricas permitem que você use CloudWatch gráficos e painéis para monitorar como você consome os serviços do Amazon Chime SDK. As métricas capturam dados para cada API que você chama.

As seções a seguir listam e descrevem as métricas.

**Topics**
+ [Métricas de serviço](#service-metrics)
+ [Métricas de uso da API](#usage-metrics)

## Métricas de serviço
<a name="service-metrics"></a>

O SDK do Amazon Chime publica as seguintes métricas de serviço no namespace `AWS/ChimeSDK`:


| Métrica | Unidade | Descrição | 
| --- | --- | --- | 
| `AttendeeAuthorizationSuccess` | Contagem | Contagem total de tentativas de autorização bem-sucedidas. Sucesso significa que um participante foi autorizado a participar da reunião. | 
| `AttendeeAuthorizationError` | Contagem | A contagem total de falhas de autorização indica que o participante não pôde participar da reunião. | 
| `AttendeeAudioDrops` | Contagem | Contagem total de quedas de áudio. | 
| `AttendeeContentDrops` | Contagem | Contagem total de quedas no compartilhamento de conteúdo. | 
| `MeetingSQSNotificationErrors` | Contagem | Contagem total de erros de notificação do SQS. | 
| `MeetingSNSNotificationErrors` | Contagem | Contagem total de erros de notificação do SNS. | 

## Métricas de uso da API
<a name="usage-metrics"></a>

As métricas de uso da API correspondem às cotas AWS de serviço. Também é possível configurar alarmes que alertem você quando o uso se aproximar de uma cota de serviço. Para obter mais informações sobre a CloudWatch integração com cotas de serviços, consulte [as métricas de uso da AWS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Service-Quota-Integration.html) no *Guia do CloudWatch usuário da Amazon*.

O SDK do Amazon Chime publica as seguintes métricas da API no namespace `AWS/Usage`, com o nome do serviço `ChimeSDK`.


| Métrica | Descrição | 
| --- | --- | 
| `CallCount` | O número total de chamadas feitas para uma API no SDK do Amazon Chime. SUM representa o número total de chamadas para a API durante o período especificado. | 
| `ErrorCount` | O número total de erros gerados por uma API no SDK do Amazon Chime. SUM representa o número total de chamadas para a API durante o período especificado. | 
| `ThrottleCount` | O número total de erros de controle de utilização gerados por uma API no SDK do Amazon Chime. SUM, que representa o número total de chamadas para a API durante o período especificado. | 

O SDK do Amazon Chime publica métricas de uso no namespace `AWS/Usage` com as seguintes dimensões:


| Dimensão | Descrição | 
| --- | --- | 
| Serviço | O nome do AWS serviço que contém o recurso. Para as métricas de uso do SDK do Amazon Chime, o valor dessa dimensão é `ChimeSDK`. | 
| Type | O tipo de entidade que está sendo relatada. O único valor válido para métricas de uso do SDK do Amazon Chime é `API`. | 
| Recurso | O tipo de recurso que relata a métrica. Para as métricas de uso do SDK do Amazon Chime, o valor dessa dimensão é o nome da API. | 
| Classe | A classe do recurso sob acompanhamento. O único valor válido para métricas do SDK do Amazon Chime é `None`. | 

# Como criar pipelines de mídia do SDK do Amazon Chime
<a name="media-pipelines"></a>

Nesta seção, mostramos como criar pipelines de mídia, que são usados para capturar ou transmitir uma reunião do SDK do Amazon Chime. Antes de começar, é necessário integrar seu aplicativo do cliente à biblioteca do cliente do SDK do Amazon Chime. Para obter mais informações, consulte [Saiba mais sobre as bibliotecas de clientes do SDK do Amazon Chime](mtgs-sdk-client-lib.md). Para ter mais informações sobre pipelines de mídia, consulte [Capture Amazon Chime SDK Meetings Using media pipelines](https://aws.amazon.com/blogs//business-productivity/capture-amazon-chime-sdk-meetings-using-media-capture-pipelines/) no *AWS Business Productivity Blog*.

**Importante**  
Você e seus usuários finais devem entender que a gravação de reuniões do SDK do Amazon Chime pode estar sujeita a leis ou regulamentações relacionadas à gravação de comunicações eletrônicas. É responsabilidade sua e de seus usuários finais cumprir todas as leis aplicáveis em relação a gravações, incluindo notificar adequadamente todos os participantes de uma sessão gravada de que a sessão ou comunicação está sendo gravada e obter o consentimento deles.   
Você e seus usuários finais são responsáveis por todo o streaming de conteúdo usando o serviço de conector ativo de mídia e devem garantir que esse conteúdo não viole a lei, infrinja ou se aproprie indevidamente dos direitos de terceiros ou viole um termo material do seu contrato com a Amazon.

**Topics**
+ [Considerações sobre a criação de pipelines de mídia do SDK do Amazon Chime](creating-media-pipelines-considerations.md)
+ [Noções básicas sobre os limites padrão para pipelines de mídia ativos do SDK do Amazon Chime](media-pipelines-limits.md)
+ [Migrar para o namespace de pipelines de mídia do SDK do Amazon Chime](migrate-pipelines.md)
+ [Noções básicas sobre a criação do pipeline de mídia do SDK do Amazon Chime](create-pipeline.md)
+ [Criar pipelines de captura de mídia para reuniões do SDK do Amazon Chime](capture-pipe-config.md)
+ [Criar pipelines de captura de mídia para reuniões do SDK do Amazon Chime](create-concat-pipe.md)
+ [Criar pipelines de conectores ativos de mídia para reuniões do SDK do Amazon Chime](connector-pipe-config.md)
+ [Criar pipelines de fluxo de mídia usando o SDK do Amazon Chime](create-media-stream-pipeline.md)
+ [Compor áudio e vídeo em uma única visualização nas reuniões do SDK do Amazon Chime](pipeline-compositing.md)
+ [Criar um perfil vinculado ao serviço para pipelines de mídia do SDK do Amazon Chime](create-pipeline-role.md)
+ [Usar eventos de pipelines de mídia do SDK do Amazon Chime](media-pipe-events.md)
+ [Práticas recomendadas para interromper pipelines de mídia do SDK do Amazon Chime](stop-pipe-best-practices.md)

# Considerações sobre a criação de pipelines de mídia do SDK do Amazon Chime
<a name="creating-media-pipelines-considerations"></a>

Um pipeline de mídia pode consistir em um desses pipelines: 
+ **Captura de mídia**: use pipelines de captura de mídia para capturar fluxos de compartilhamento de áudio, de vídeo e de conteúdo, além de eventos de reuniões e mensagens de dados. Todos os pipelines de captura de mídia salvam seus dados no bucket do [Amazon Simple Storage Service](https://aws.amazon.com/s3/) (S3) que você cria. Você pode criar um pipeline de captura de mídia por reunião do SDK do Amazon Chime. Para obter mais informações, consulte [Noções básicas sobre a criação do pipeline de mídia do SDK do Amazon Chime](create-pipeline.md).
+ **Concatenação de mídia**: use pipelines de concatenação de mídia para concatenar os artefatos de um pipeline de captura de mídia. Os pipelines de concatenação funcionam independentemente dos pipelines de captura de mídia e de conectores ativos. Para obter mais informações, consulte [Criar pipelines de captura de mídia para reuniões do SDK do Amazon Chime](create-concat-pipe.md).
+ **Conector ativo de mídia**: use pipelines de conectores ativos de mídia para se conectar a serviços que possibilitem transmitir reuniões do SDK do Amazon Chime para um endpoint RTMP. Você pode criar até um pipeline de conectores ativos de mídia por reunião do SDK do Amazon Chime. Para obter mais informações, consulte [Criar pipelines de conectores ativos de mídia para reuniões do SDK do Amazon Chime](connector-pipe-config.md).
+ **Fluxo de mídia**: use pipelines de fluxo de mídia para capturar áudio individual de todos os participantes de uma reunião, além do áudio misto gerado por um pipeline de concatenação de mídia. Todos os pipelines de transmissão de mídia salvam seus dados no [Amazon Kinesis Video Streams](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/what-is-kinesis-video.html) (KVS). Para obter mais informações, consulte [Criar pipelines de fluxo de mídia usando o SDK do Amazon Chime](create-media-stream-pipeline.md).

Os pipelines que você cria dependem do namespace que você usa. Se você usar o namespace `Chime`, só poderá criar pipelines de captura de mídia. Se você usar o namespace `ChimeSdkMediaPipelines`, também poderá criar pipelines de concatenação de mídia e conectores ativos de mídia e usar atributos de composição. Se você quiser migrar para o namespace `ChimeSdkMediaPipelines`, consulte [Migrar para o namespace de pipelines de mídia do SDK do Amazon Chime](migrate-pipelines.md).

# Noções básicas sobre os limites padrão para pipelines de mídia ativos do SDK do Amazon Chime
<a name="media-pipelines-limits"></a>

A tabela a seguir lista os limites padrão para pipelines de mídia ativos em cada região. Cada tipo de pipeline conta até o limite. Se você exceder o limite de qualquer região, o, [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), e [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 lançará exceções de **limite de recursos excedido**.

Você pode usar a página **Service Quotas** no AWS console para ajustar seus limites ativos de funil ou entrar em contato com seu representante de [suporte ao cliente](https://docs.aws.amazon.com/awssupport/latest/user/getting-started.html). Para mais informações sobre limites de reuniões do SDK do Amazon Chime, consulte [Cotas do SDK do Amazon Chime](meetings-sdk.md#mtg-limits).


| Região | Limite de pipeline ativo padrão | 
| --- | --- | 
| 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 | 

# Migrar para o namespace de pipelines de mídia do SDK do Amazon Chime
<a name="migrate-pipelines"></a>

Você usa o `ChimeSdkMediaPipelines` namespace para endereçar os endpoints da API do pipeline de mídia em qualquer AWS região em que eles estejam disponíveis. Use esse namespace se você acabou de começar a usar o SDK do Amazon Chime. Para obter mais informações sobre as regiões, consulte [Regiões da AWS disponíveis para o SDK do Amazon Chime](sdk-available-regions.md) neste guia.

Os aplicativos existentes que usam o namespace [Amazon Chime](https://docs.aws.amazon.com/chime/latest/APIReference/API_Operations_Amazon_Chime.html) devem planejar a migração para o namespace dedicado.

**Topics**
+ [Motivos para migrar seus pipelines](#pipeline-migration-reasons)
+ [Antes de migrar seus pipelines](#migration-prerequisites)

## Motivos para migrar seus pipelines
<a name="pipeline-migration-reasons"></a>

Recomendamos que você migre para o namespace `ChimeSdkMediaPipelines` pelos seguintes motivos:

**Escolha do endpoint de API**  
O namespace Media Capture do SDK do Amazon Chime é o único namespace da API que pode usar endpoints da API em qualquer região que os disponibilize. Para obter mais informações sobre as regiões, consulte [Regiões da AWS disponíveis para o SDK do Amazon Chime](sdk-available-regions.md). Se quiser usar outros endpoints da API diferentes de `us-east-1`, você deve usar o namespace `ChimeSdkMediaPipelines`. Para obter mais informações sobre os endpoints atuais, consulte [Mapeamento de API](migrate-from-chm-namespace.md#name-end-map) neste guia.

**Pipeline de mídia atualizado e novo APIs**  
Só adicionamos ou atualizamos o pipeline de mídia APIs no `ChimeSdkMediaPipelines` namespace.

## Antes de migrar seus pipelines
<a name="migration-prerequisites"></a>

Antes de migrar, observe as diferenças entre os namespaces. A tabela a seguir lista e descreve-os.


| Item | Namespace Pipelines de mídia | Namespace Chime | 
| --- | --- | --- | 
|  Nomes do namespace  |  ChimeSdkMediaPipelines  |  Chime  | 
|  Regiões  |  Vários  |  Somente us-east-1  | 
|  Endpoints  |  https://media-pipelines-chime. *região.amazonaws.com*  |  https://service.chime.aws.amazon.com  | 
|  Entidade principal do serviço  |  mediapipelines.chime.amazonaws.com  |  chime.amazonaws.com  | 
|  APIs  |  Somente APIs para pipelines de mídia  |  APIs para canais de mídia e outras partes do Amazon Chime  | 
|  Reuniões  |  Os pipelines de mídia nas regiões `us-west-2`, `ap-southeast-1` e `eu-central-1` funcionam somente com reuniões criadas no namespace SDK do Amazon Chime Meetings. Os pipelines de mídia na região `us-east-1` funcionam com reuniões criadas por qualquer endpoint de reunião em qualquer namespace.  |  Os pipelines de mídia funcionam com reuniões criadas por qualquer endpoint de reunião em qualquer namespace.  | 
| Pipelines de mídia ativa padrão | 100 na região us-east-1 e 10 nas regiões us-west-2, ap-southeast-1 e eu-central-1.  | 100 somente em us-east-1. | 
|  Perfil vinculado a serviço  |  AWSServiceRoleForAmazonChimeSDKMediaOleodutos  |     | 
|  Tags  |  Disponível  |  Não disponível para o canal de mídia APIs.  | 
| CloudTrail fonte do evento | chime-sdk-media-pipelines.amazonaws.com | chime.amazonaws.com. | 
| Conexão em tempo real | Disponível |  Não disponível para o canal de mídia APIs.  | 
| Composição | Disponível |  Não disponível para o canal de mídia APIs.  | 
| Concatenação | Disponível | Não disponível. | 

A lista a seguir fornece mais informações sobre as diferenças entre o Chime e os AWS ChimeSdkMediaPipelines namespaces.

**Nomes do namespace**  
O namespace SDK do Amazon Chime usa o nome formal `AWS.Chime`. O namespace Pipelines de mídia SDK do Amazon Chime usa o nome formal `AWS.ChimeSDKMediaPipelines`. O formato preciso do nome varia de acordo com a plataforma.  
Por exemplo, essa linha de código Node.js aborda o namespace `chime`:  

```
const chimeMediaPipelines = AWS.Chime();
```
Para migrar para o namespace Pipelines de mídia SDK, atualize esse código com o novo namespace e a região do endpoint.  

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

**Regiões**  
O namespace Amazon Chime aborda somente os endpoints da API na região US-EAST-1. O namespace Pipelines de mídia SDK do Amazon Chime aborda os endpoints da API do Pipeline de mídia SDK do Amazon Chime em qualquer região que os tenha. Para obter uma lista atual das regiões do pipeline de mídia, consulte [Regiões da AWS disponíveis para o SDK do Amazon Chime](sdk-available-regions.md) neste guia.

**Endpoints**  
Para modificar um pipeline de captura de mídia, você deve usar o mesmo endpoint em que criou o pipeline. Por exemplo, se você criou pipelines por meio de um endpoint em eu-central-1, você deve usar eu-central-1 para interagir com esse pipeline. Para obter mais informações sobre os endpoints atuais, consulte [Mapeamento de API](migrate-from-chm-namespace.md#name-end-map) neste guia.

**Entidade principal do serviço**  
O namespace [Pipeline de mídia SDK do Amazon Chime](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Meetings.html) usa uma nova entidade principal de serviço: `mediapipelines.chime.amazonaws.com`. Se você tiver um bucket do Amazon S3 ou outras políticas do IAM que concedem acesso aos serviços, você precisa atualizar essas políticas para conceder acesso à nova entidade principal responsável pelo serviço.  
Por exemplo, ao criar pipelines de mídia, você deve adicionar as permissões de política listadas em [Criar um bucket do Amazon S3 para pipelines de captura de mídia do SDK do Amazon Chime](create-s3-bucket.md) à nova entidade principal responsável pelo serviço. Para obter mais informações sobre as políticas, consulte [Elementos de política JSON da AWS: entidade principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html) no Guia do usuário do IAM.

**APIs**  
O namespace Media Pipelines do Amazon Chime SDK contém somente aqueles APIs que criam e gerenciam canais de mídia. O namespace Amazon Chime inclui canais APIs de mídia, reuniões e outras partes do serviço Amazon Chime.

**Reuniões**  
Os pipelines de mídia na região IAD funcionam com reuniões criadas por qualquer endpoint de reunião em qualquer namespace.

**Perfil vinculado a serviço**  
Somente para o namespace Pipelines de mídia SDK do Amazon Chime. Crie a função *AWSServiceRoleForAmazonChimeSDKMediaPipelines*.

**Tags**  
O namespace [Pipelines de mídia SDK do Amazon Chime](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Meetings.html) suporta tags. A função deve ter permissão para chamar a `TagResource` operação ao chamar o [CreateMediaCapturePipeline](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaCapturePipeline.html)ou [CreateMediaLiveConnectorPipeline](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaLiveConnectorPipeline.html) APIs com uma ou mais tags.

# Noções básicas sobre a criação do pipeline de mídia do SDK do Amazon Chime
<a name="create-pipeline"></a>

Você segue um processo de várias etapas para criar um pipeline de mídia do SDK do Amazon Chime e pode criar vários tipos de pipelines. A lista a seguir descreve o processo de criação e fornece links para mais informações sobre a criação dos vários tipos de pipelines. 
+ Crie um bucket do Amazon S3. Você deve criar o bucket na mesma AWS região da reunião. Para mais informações, consulte [Criar um bucket do Amazon S3 para pipelines de captura de mídia do SDK do Amazon Chime](create-s3-bucket.md).
+ Crie um perfil vinculado a serviço chamado `AWSServiceRoleForAmazonChimeSDKMediaPipelines`. Isso permite que os pipelines de mídia acessem as reuniões em seu nome. Para obter mais informações, consulte [Criar um perfil vinculado ao serviço para pipelines de mídia do SDK do Amazon Chime](create-pipeline-role.md).
+ Crie uma função do IAM com permissão suficiente para interagir com o pipeline de [mídia do Amazon Chime SDK](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Media_Pipelines.html). APIs Para criar essa função, recomendamos adicionar a política gerenciada do [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) no console do IAM. A política contém o necessário APIs.

  Seu perfil do IAM também deve ter permissão para chamar a API [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicy.html) do Amazon S3 em todos os recursos. O exemplo abaixo mostra uma política típica para fazer isso.

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

****  

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

------

Depois de ter esses itens, consulte esses tópicos para informações sobre a criação de pipelines.
+ [Criar pipelines de captura de mídia para reuniões do SDK do Amazon Chime](capture-pipe-config.md)
+ [Criar pipelines de captura de mídia para reuniões do SDK do Amazon Chime](create-concat-pipe.md)
+ [Criar pipelines de conectores ativos de mídia para reuniões do SDK do Amazon Chime](connector-pipe-config.md)
+ [Criar pipelines de fluxo de mídia usando o SDK do Amazon Chime](create-media-stream-pipeline.md)

# Criar pipelines de captura de mídia para reuniões do SDK do Amazon Chime
<a name="capture-pipe-config"></a>

Os pipelines de captura de mídia capturam transmissões de compartilhamento de áudio, vídeo e conteúdo, além de eventos de reuniões e mensagens de dados. Todos os pipelines de captura de mídia salvam seus dados em um bucket do [Amazon Simple Storage Service](https://aws.amazon.com/s3/) (S3) que você cria. Você pode criar um pipeline de captura de mídia por reunião do SDK do Amazon Chime.

As seções a seguir explicam como criar um pipeline de captura de mídia. Siga-os na ordem indicada.

**Topics**
+ [Criar um bucket do Amazon S3 para pipelines de captura de mídia do SDK do Amazon Chime](create-s3-bucket.md)
+ [Habilitar a criptografia do lado do servidor para um bucket do Amazon S3 para pipelines de captura de mídia do SDK do Amazon Chime](sse-kms.md)
+ [Habilitando a criptografia do lado do servidor em nível de objeto com chave AWS KMS](using-kms-keys-for-encryption.md)
+ [Criar o pipeline de captura de mídia do SDK do Amazon Chime](create-capture-pipe.md)
+ [Trabalhar com artefatos de captura de mídia do SDK do Amazon Chime](artifacts.md)
+ [Configurar a pasta de áudio para os pipelines de captura de mídia do SDK do Amazon Chime](configure-audio.md)
+ [Configurar a pasta de vídeo para pipelines de captura de mídia do SDK do Amazon Chime](configure-video.md)
+ [Noções básicas sobre as mensagens na pasta data-channel para pipelines de captura de mídia do SDK do Amazon Chime](data-channel.md)
+ [Noções básicas sobre a estrutura de pastas de bucket do Amazon S3 para pipelines de captura de mídia do SDK do Amazon Chime](capture-folder-structure.md)
+ [Noções básicas sobre os arquivos de eventos de reunião para pipelines de captura de mídia do SDK do Amazon Chime](meeting-events.md)
+ [Noções básicas sobre os arquivos de transcrição para pipelines de captura de mídia do SDK do Amazon Chime](transcription-messages.md)
+ [Concatenar fluxos de dados para pipelines de captura de mídia do SDK do Amazon Chime](concatenate-streams.md)

# Criar um bucket do Amazon S3 para pipelines de captura de mídia do SDK do Amazon Chime
<a name="create-s3-bucket"></a>

Você pode usar o console do Amazon S3 ou a AWS SDKs AWS CLI para criar um bucket do Amazon S3. Para mais informações, consulte [Como criar um bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) no *Manual do usuário do Amazon Simple Storage Service (S3)*.

O bucket do Amazon S3 para seu pipeline de captura de mídia deve pertencer à mesma conta da AWS da reunião do SDK do Amazon Chime. Além disso, você deve conceder a permissão `s3:PutObject` e `s3:PutObjectAcl` à entidade principal do serviço do SDK do Amazon Chime, [mediapipelines.chime.amazonaws.com.](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html) Você pode fazer isso com o console Amazon S3 ou com o AWS Command Line Interface ()AWS CLI. O bucket do Amazon S3 deve pertencer a uma das [regiões de mídia disponíveis do SDK do Amazon Chime](https://docs.aws.amazon.com/chime-sdk/latest/dg/sdk-available-regions.html).

**nota**  
Certifique-se de adicionar uma política ao seu usuário do IAM para conceder acesso ao seu bucket. Além disso, se você usar uma região que é AWS desativada por padrão, você deve ter um bucket do Amazon S3 nessa região.  
Por padrão, a AWS desativa as seguintes regiões, e você não pode hospedar recursos de reunião nelas até que você as habilite:  
Africa (Cape Town)
Ásia-Pacífico (Hong Kong)
Ásia-Pacífico (Jacarta)
Europa (Milão)
Oriente Médio (Bahrein)
Se você usa uma dessas regiões, ela deve ter um bucket do Amazon S3. Isso se aplica mesmo se você usar o Amazon S3 APIs para se comunicar com regiões que não estão bloqueadas por padrão e que já têm um bucket. Para mais informações sobre como habilitar regiões bloqueadas, consulte [Como gerenciar regiões da AWS](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html) na *Referência geral da AWS*.

Depois de criar um bucket, registre seu ARN. Você o usa para criar um pipeline de captura de mídia.

O exemplo a seguir mostra uma política de bucket do 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:*"
                }
            }
        }
    ]
}
```

------

# Habilitar a criptografia do lado do servidor para um bucket do Amazon S3 para pipelines de captura de mídia do SDK do Amazon Chime
<a name="sse-kms"></a>

Para habilitar a criptografia do lado do servidor para um bucket do Amazon Simple Storage Service (Amazon S3), você pode usar esses tipos de chaves de criptografia:
+ Uma chave gerenciada pelo Amazon S3
+ Uma chave gerenciada pelo cliente no AWS Key Management Service (KMS)
**nota**  
O Key Management Service oferece suporte a dois tipos de chaves: chaves gerenciadas pelo cliente e chaves AWS gerenciadas. As reuniões do SDK do Amazon Chime oferecem suporte somente a chaves gerenciadas pelo cliente. 

## Usando uma chave gerenciada pelo Amazon S3
<a name="s3-keys"></a>

Você usa o console do Amazon S3, a CLI ou a API REST para habilitar a criptografia do lado do servidor para um bucket do Amazon S3. Em ambos os casos, escolha **Chave do Amazon S3** como tipo de chave de criptografia. Nenhuma outra ação é necessária. Quando você usa o bucket para captura de mídia, os artefatos são carregados e criptografados no lado do servidor. Para mais informações, consulte [Como especificar a criptografia do Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/specifying-s3-encryption.html) no *Manual do usuário do Amazon S3*. 

## Como usar uma chave que você possui
<a name="customer-key"></a>

Para habilitar a criptografia com uma chave que você gerencia, você precisa habilitar a criptografia do lado do servidor do bucket do Amazon S3 com uma chave gerenciada pelo cliente e, em seguida, adicionar uma declaração à política de chaves que permita ao Amazon Chime usar a chave e criptografar qualquer artefato carregado.

1. Crie uma chave gerenciada pelo cliente no KMS. *Para obter informações sobre como fazer isso, consulte [Especificação da criptografia do lado do servidor com AWS KMS (SSE-KMS) no Guia do usuário do Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/specifying-kms-encryption.html).*

1. Adicione uma instrução à política de chave que permita que a ação `GenerateDataKey` gere uma chave para uso pela entidade principal do serviço do SDK do Amazon Chime, `mediapipelines.chime.amazonaws.com`.

   Este exemplo mostra uma instrução típica.

   ```
   ...
   {
       "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. Se você usar um pipeline de concatenação de mídia, adicione uma instrução à política de chave que permita que a entidade principal do serviço do SDK do Amazon Chime, `mediapipelines.chime.amazonaws.com`, use a ação `kms:Decrypt`.

1. Configure o bucket do Amazon S3 para habilitar a criptografia do lado do servidor com a chave.

# Habilitando a criptografia do lado do servidor em nível de objeto com chave AWS KMS
<a name="using-kms-keys-for-encryption"></a>

O Media Capture Pipeline e o Media Concatenation Pipeline podem usar AWS Key Management Service (AWS KMS) chaves gerenciadas pelo cliente para habilitar a criptografia do lado do servidor (SSE) para objetos individuais em um bucket do Amazon S3. Para configurar isso, você deve usar a chamada de [CreateMediaCapturePipeline](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaCapturePipeline.html)API. O Media Concatenation Pipeline usará os parâmetros de criptografia do lado do servidor do Media Capture Pipeline associado.

Para habilitar o SSE para objetos individuais (SSE em nível de objeto) usando sua chave gerenciada pelo AWS KMS cliente, você deve fornecer a `SseAwsKeyManagementParams` estrutura e o `SinkIamRoleArn` durante a chamada da [CreateMediaCapturePipeline](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaCapturePipeline.html)API:

1. Use o `AwsKmsKeyId` parâmetro na `SseAwsKeyManagementParams` estrutura para especificar a AWS KMS chave. Você pode especificar o ID da chave usando o ID, o ARN ou o alias da chave.

1. Use o `SinkIamRoleArn` parâmetro para especificar a função do IAM para acessar a AWS KMS chave e o bucket Amazon S3 do coletor.

1. Opcionalmente, você pode usar o `AwsKmsEncryptionContext` parâmetro na `SseAwsKeyManagementParams` estrutura para especificar o contexto de criptografia a ser usado junto com os AWS KMS principais artefatos para aumentar a segurança.

**nota**  
Os `SinkIamRoleArn` parâmetros `AwsKmsKeyId` e são codependentes. Quando ambos estiverem presentes e válidos, o Media Capture Pipeline assumirá a função e colocará cada artefato no coletor de buckets especificado do Amazon S3 com a chave especificada. AWS KMS A chamada da [CreateMediaConcatenationPipeline](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaConcatenationPipeline.html)API não tem novos parâmetros, mas usará os parâmetros mencionados acima, se especificados. Se você planeja concatenar artefatos, certifique-se de que sua configuração de recursos esteja definida conforme descrito na [Configuração](#using-kms-keys-for-encryption-config) seção a seguir e seja persistente ao longo do tempo.

## Configuração
<a name="using-kms-keys-for-encryption-config"></a>

Eles `SinkIamRoleArn` devem ter as mesmas permissões e acesso que o principal para colocar artefatos no bucket do Amazon S3. Para obter mais informações sobre as permissões padrão esperadas no bucket do Amazon S3, consulte [Criação de um bucket do Amazon S3 para os pipelines de captura de mídia do SDK do Amazon Chime](https://docs.aws.amazon.com/chime-sdk/latest/dg/create-s3-bucket.html). Para habilitar o SSE para objetos individuais, seu bucket do Amazon S3 deve permitir que a função do IAM especificada usando o `SinkIamRoleArn` execute o mesmo conjunto de ações que você esperaria da identidade do IAM de chamada. Você pode conseguir isso adicionando o seguinte princípio à sua política de permissão de bucket do Amazon S3.

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

Eles `AwsKmsKeyId` devem apontar para uma chave que permita que eles `SinkIamRoleArn` `GenerateDataKey` funcionem. Se o Media Concatenation Pipeline for usado, a AWS KMS chave também deve permitir o uso da ação. `Decrypt` Veja o exemplo a seguir.

**nota**  
O recurso está configurado para usar curinga`“*”`, que neste contexto de uma política AWS KMS chave significa “ele mesmo”.

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

A `SinkIamRoleArn` função deve ter uma relação de confiança que permita que o serviço a assuma. Veja o exemplo a seguir.

```
{
    "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>:*"
        }
    }
}
```

Eles `SinkIamRoleArn` devem ter a seguinte política de permissões mínimas para o Media Capture Pipeline. Veja o exemplo a seguir.

```
{
    "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>:*"
        }
    }
}
```

Além disso, o chamador deve ter permissão para passar `SinkIamRoleArn` para o serviço. Nos casos em que o chamador não tem essa permissão, ela deve ser adicionada explicitamente. Veja o exemplo a seguir.

```
{
    "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"
        }
    }
}
```

## Implementação da concatenação de mídia
<a name="media-concatenation-implementatoin"></a>

Se você planeja usar o Media Concatenation Pipeline após a captura de mídia, consulte [Construindo um pipeline de concatenação de mídia do Amazon Chime SDK](create-concat-pipe-steps.md) para entender as permissões necessárias. Para fazer o pipeline funcionar com a AWS KMS chave para SSE em nível de objeto, as `SinkIamRoleArn` permissões (ações permitidas) devem ser expandidas para a AWS KMS chave e o bucket do Amazon S3. Veja o exemplo a seguir.

```
...
{
    ...
    {
        ...
        "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>/*",
    }
    ...
}
...
```

# Criar o pipeline de captura de mídia do SDK do Amazon Chime
<a name="create-capture-pipe"></a>

Depois de criar e configurar seu bucket ou buckets do Amazon S3, crie um pipeline de captura de mídia.

**Para criar um pipeline de captura de mídia**
+ Chame a API [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).

  Use o ARN do bucket como parâmetro `SinkArn`.

Depois de bem-sucedido, o SDK do Amazon Chime cria um participante que entra e captura a reunião.

Depois de criar um pipeline de captura de mídia e definir suas permissões, você cria um pipeline de concatenação de mídia para concatenar os fragmentos de mídia de 5 segundos em um único arquivo. Para mais informações, consulte [Criar pipelines de captura de mídia para reuniões do SDK do Amazon Chime](create-concat-pipe.md), mais adiante nesta seção.

# Trabalhar com artefatos de captura de mídia do SDK do Amazon Chime
<a name="artifacts"></a>

Durante uma reunião do SDK do Amazon Chime, um pipeline de captura de mídia cria os seguintes tipos de artefatos. 
+ Áudio
+ Vídeo
+ Mensagens do canal de dados
+ Eventos de reunião
+ Mensagens de transcrição

O pipeline cria os artefatos em um conjunto de pastas em seu bucket do Amazon S3, e você pode configurar as pastas de áudio e vídeo para limitar certos tipos de artefatos. As seções a seguir explicam a estrutura de pastas, como configurar pastas, como definir permissões para seu bucket do Amazon S3 e como concatenar os arquivos de artefatos.

# Configurar a pasta de áudio para os pipelines de captura de mídia do SDK do Amazon Chime
<a name="configure-audio"></a>

A pasta de áudio contém MP4 arquivos de 5 segundos do fluxo de áudio misto, o que significa que eles contêm áudio de todos os participantes, além do vídeo do palestrante ativo. A pasta contém arquivos para toda a reunião. Conforme desejado, você pode configurar a pasta para conter apenas os artefatos de áudio. *Cada nome de arquivo contém um yyyy-mm-dd-hour carimbo de min-seconds-milleseconds data/hora.* O carimbo de data/hora está em UTC e marca a hora de início. Você pode configurar a pasta para conter somente artefatos de áudio.

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

# Configurar a pasta de vídeo para pipelines de captura de mídia do SDK do Amazon Chime
<a name="configure-video"></a>

A pasta de vídeo contém MP4 arquivos de 5 segundos que contêm streams de vídeo, além de streams de compartilhamento de conteúdo, se forem especificados na solicitação da API. Cada nome de arquivo contém um <attendeeID>carimbo de data/hora < yyyy-mm-dd-hour - min-seconds-milleseconds >- com uma ID de participante. A parte do vídeo de compartilhamento de conteúdo é anexada como < yyyy-mm-dd-hour - min-seconds-milleseconds >- <attendeeID>\$1content .mp4. Você pode configurar a pasta para conter somente artefatos de vídeo.

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

# Noções básicas sobre as mensagens na pasta data-channel para pipelines de captura de mídia do SDK do Amazon Chime
<a name="data-channel"></a>

A pasta data-channel contém mensagens de dados no formato .txt, e cada mensagem é um objeto JSON. As mensagens são visíveis com todas as opções de configuração. Os nomes dos arquivos contêm o carimbo de min-seconds-milleseconds data/hora *yyyy-mm-dd-hour-*. Este exemplo mostra os campos de dados em uma mensagem.

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

# Noções básicas sobre a estrutura de pastas de bucket do Amazon S3 para pipelines de captura de mídia do SDK do Amazon Chime
<a name="capture-folder-structure"></a>

Os buckets do Amazon S3 para pipelines de captura de mídia usam essa estrutura de pastas.

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

# Noções básicas sobre os arquivos de eventos de reunião para pipelines de captura de mídia do SDK do Amazon Chime
<a name="meeting-events"></a>

A pasta meeting-events contém eventos de reunião no formato .txt, e cada evento é um objeto JSON. As mensagens são visíveis com todas as opções de configuração. Os nomes dos arquivos contêm o carimbo de data/hora < yyyy-mm-dd-hour - min-seconds-milleseconds >. Este exemplo mostra os campos e os dados em um arquivo de evento típico.

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

# Noções básicas sobre os arquivos de transcrição para pipelines de captura de mídia do SDK do Amazon Chime
<a name="transcription-messages"></a>

A pasta transcription-messages contém arquivos de transcrição no formato .txt. No entanto, a pasta só recebe arquivos quando você ativa a transcrição ao vivo. Para mais informações sobre como habilitar a transcrição ao vivo, consulte [Como usar a transcrição ao vivo do SDK do Amazon Chime](meeting-transcription.md).

A pasta inclui todas as mensagens de transcrição parcial e completa, e cada mensagem é um objeto JSON. Os nomes dos arquivos contêm o carimbo de data/hora < yyyy-mm-dd-hour - min-seconds-milleseconds >. Você pode ver exemplos de arquivos de transcrição em [Processar um evento de transcrição ao vivo do SDK do Amazon Chime](delivery-examples.md).

# Concatenar fluxos de dados para pipelines de captura de mídia do SDK do Amazon Chime
<a name="concatenate-streams"></a>

**nota**  
Para automatizar o processo de concatenação de artefatos de captura de mídia, consulte [Criar pipelines de captura de mídia para reuniões do SDK do Amazon Chime](create-concat-pipe.md) neste guia.

Este exemplo usa ffmpeg para concatenar arquivos de vídeo ou áudio em um único arquivo mp4. Primeiro, crie um arquivo filelist.txt que contenha todos os arquivos de entrada. Use este formato: 

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

Em seguida, use esse comando para concatenar o arquivo de entrada:

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

Para mais informações sobre pipelines de concatenação de mídias, consulte [Criar pipelines de captura de mídia para reuniões do SDK do Amazon Chime](create-concat-pipe.md) neste guia.

# Criar pipelines de captura de mídia para reuniões do SDK do Amazon Chime
<a name="create-concat-pipe"></a>

Você usa pipelines de concatenação de mídia para concatenar os artefatos (arquivos) gerados pelos pipelines de captura de mídia.

Os pipelines de captura de mídia capturam o conteúdo de uma reunião fragmentando os fluxos de mídia e armazenando esses artefatos em seu bucket do Amazon S3. Os pipelines de captura de mídia criam os seguintes tipos de artefatos: 
+ Áudio
+ Vídeo
+ Compartilhamentos de conteúdo
+ Mensagens do canal de dados
+ Mensagens de transcrição
+ Eventos de reunião
+ Vídeo composto, ou seja, compartilhamentos de conteúdo e várias transmissões de vídeo exibidas em uma grade como blocos de vídeo.

Os pipelines de concatenação de mídia possibilitam que você concatene cada tipo de artefato em um único arquivo e, depois, armazene esses arquivos maiores no bucket do Amazon S3. Você pode criar um pipeline de concatenação de mídia sem esperar que o evento de captura de mídia termine, mas o pipeline de concatenação só começa a concatenar quando o pipeline de captura é interrompido.

**nota**  
Os pipelines de captura de mídia, os pipelines de concatenação de mídia e os buckets do Amazon S3 devem residir na mesma conta. AWS 

**Topics**
+ [Arquitetura de pipelines de concatenação do SDK do Amazon Chime](concat-architecture.md)
+ [Construindo um pipeline de concatenação de mídia do Amazon Chime SDK](create-concat-pipe-steps.md)
+ [Noções básicas sobre a estrutura de pastas de bucket do Amazon S3 para pipelines de concatenação do SDK do Amazon Chime](concat-folder-structure.md)

# Arquitetura de pipelines de concatenação do SDK do Amazon Chime
<a name="concat-architecture"></a>

O diagrama a seguir mostra a arquitetura de um pipeline de concatenação de mídia.

![\[Diagrama mostrando a arquitetura de um pipeline de concatenação de mídia.\]](http://docs.aws.amazon.com/pt_br/chime-sdk/latest/dg/images/concatenation-pipe-architecture-2.png)


No diagrama, ao receber uma solicitação [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), o ambiente de gerenciamento de pipelines de mídia inicia um pipeline de captura de mídia no plano de dados do pipeline de mídia. Em seguida, o plano de dados envia os fragmentos capturados para o bucket de captura a cada 5 segundos. Ao receber uma solicitação [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), o ambiente de gerenciamento de pipelines de mídia aguarda a conclusão do pipeline de captura de mídia especificado e, depois, inicia um pipeline de concatenação de mídia no plano de dados do pipeline de mídia. Em seguida, o plano de dados lê os fragmentos capturados no bucket e envia os artefatos concatenados para o bucket de concatenação.

# Construindo um pipeline de concatenação de mídia do Amazon Chime SDK
<a name="create-concat-pipe-steps"></a>

Você segue um processo de várias etapas para criar um pipeline de concatenação de mídia do SDK do Amazon Chime. As etapas a seguir descrevem o processo.

1. Crie um bucket do Amazon S3 para usar como coletor de dados do pipeline de captura de mídia e configure a política do bucket. Para ter mais informações sobre como habilitar a criptografia do lado do servidor para o bucket do Amazon S3, consulte [Habilitar a criptografia do lado do servidor para um bucket do Amazon S3](https://docs.aws.amazon.com/chime-sdk/latest/dg/sse-kms.html) neste guia. Se você criou um bucket do Amazon S3 para uso com pipelines de captura de mídia, deve adicionar as ações `s3:GetObject` e `s3:ListBucket` à política desse bucket. A ação `s3:ListBucket` requer permissão para o bucket. As outras ações exigem permissão nos objetos no bucket. Você deve usar dois nomes de recursos da Amazon (ARNs) diferentes para especificar permissões no nível do bucket e no nível do objeto.

   O exemplo a seguir mostra a política do bucket. Copie e cole esse exemplo conforme necessário.

------
#### [ 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.  Crie um bucket do Amazon S3 para usar como coletor de dados do pipeline de concatenação de mídia e, depois, configure a política de bucket. Para ter mais informações sobre como habilitar a criptografia do lado do servidor para o bucket do Amazon S3, consulte [Habilitar a criptografia do lado do servidor para um bucket do Amazon S3](https://docs.aws.amazon.com/chime-sdk/latest/dg/sse-kms.html) neste guia. 

   O exemplo a seguir mostra a política.

------
#### [ 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:*"
                   }
               }
           }
       ]
   }
   ```

------
**nota**  
É possível usar um único bucket do Amazon S3 para pipelines de captura e de concatenação de mídia. No entanto, se você fizer isso, deverá adicionar as permissões `s3:GetObject` e `s3:ListBucket` à política do bucket de concatenação de mídia mostrada na etapa 2. Se você não quiser que a política do bucket de concatenação tenha essas permissões, crie buckets separados para cada pipeline. 

1. Use a API [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) para criar um pipeline de captura de mídia. Como parte disso, obtenha o ARN do pipeline. Para informações sobre como obter o ARN, consulte [Noções básicas sobre a criação do pipeline de mídia do SDK do Amazon Chime](create-pipeline.md). O ARN será usado na próxima etapa.

1. Use a API [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) para criar um pipeline de concatenação.

   O exemplo a seguir mostra um corpo de solicitação. O *Path* campo é opcional e o padrão é o ID do pipeline de concatenação.
**nota**  
Você deve usar um `MediaPipelineArn` criado nos últimos 30 dias.

   ```
   {
       "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]"
               }
           }
       ]
   }
   ```

   A concatenação começa sempre que o pipeline de captura é interrompido. O pipeline de concatenação é interrompido após a conclusão da concatenação.

# Noções básicas sobre a estrutura de pastas de bucket do Amazon S3 para pipelines de concatenação do SDK do Amazon Chime
<a name="concat-folder-structure"></a>

Os buckets do Amazon S3 para pipelines de concatenação de mídia usam esta estrutura de pastas:

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

**nota**  
Se você especificar um prefixo ao criar um pipeline de mídia, o caminho para as pastas se tornará *nome do bucket*/*prefixo*. Sem um prefixo, o caminho se torna *nome do bucket*/*ID do pipeline de mídia*. Você especifica um prefixo no campo `Destination` do objeto `S3BucketSinkConfiguration`. Os nomes dos arquivos concatenados consistem em *ID de pipeline de mídia* .mp4 para arquivos de mídia e *ID de pipeline de mídia* .txt para arquivos de texto.

# Criar pipelines de conectores ativos de mídia para reuniões do SDK do Amazon Chime
<a name="connector-pipe-config"></a>

As seções a seguir listam e descrevem o protocolo de mensagens em tempo real (RTMP), as configurações de áudio e vídeo para um pipeline de conectores ativos de mídia.

**Configurações do RTMP**  
Os pipelines de conectores ao vivo de mídia suportam RTMP em uma TLS/SSL conexão. O URL do coletor consiste no URL da transmissão e na chave da transmissão. URLs Siga este formato:

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

Os exemplos a seguir mostram como se conectar a plataformas de streaming comuns.
+ **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*

**Importante**  
O RTMPS usa criptografia para ajudar a garantir que uma transmissão não seja interceptada por uma entidade não autorizada. Como prática recomendada, use o RTMPS quando precisar de segurança adicional de dados.

**Configurações de áudio**  
Os pipelines de conectores ativos de mídia suportam as seguintes configurações de áudio:
+ **Codec**: AAC
+ **Taxa de amostragem**: 44100 Hz ou 48000 Hz. O padrão é 44100Hz.
+ **Canais**: Mono ou estéreo. O padrão é mono.

**Configurações de vídeo**  
Os pipelines de conectores ativos de mídia usam o codificador H264. Você pode usar HD em 1280x720 ou FHD em 1920x1080. Ambas as resoluções usam 30 quadros por segundo, com um quadro-chave a cada dois segundos.

**Interrompendo os pipelines de conectores ativos de mídia**  
Como prática recomendada para interromper pipelines de conectores ativos de mídia, chame a 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). O encerramento de uma transmissão em uma plataforma de streaming como o IVS não interrompe o fluxo de conectores ativos de mídia.

# Criar pipelines de fluxo de mídia usando o SDK do Amazon Chime
<a name="create-media-stream-pipeline"></a>

Os pipelines de transmissão de mídia capturam áudio individual de todos os participantes de uma reunião, além do áudio misto gerado por um pipeline de concatenação de mídia. Todos os pipelines de transmissão de mídia salvam seus dados no [Amazon Kinesis Video Streams](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/what-is-kinesis-video.html) (KVS).

Crie o fluxo de vídeo chamando a API [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). Você pode criar um pipeline de transmissão de mídia por reunião do SDK do Amazon Chime.

**nota**  
Se uma reunião usa uma região opcional como sua [MediaRegion](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeeting.html#chimesdk-meeting-chime_CreateMeeting-request-MediaRegion), o fluxo KVS deve estar na mesma região. Por exemplo, se uma reunião usar a região `af-south-1`, o fluxo do KVS também deverá estar em `af-south-1`. No entanto, se a reunião usar uma região ativada pela AWS por padrão, o fluxo do KVS poderá estar em qualquer região disponível, incluindo uma região opcional. Por exemplo, se a reunião usar `ca-central-1`, o fluxo do KVS poderá estar em `eu-west-2`, `us-east-1`, `af-south-1` ou em qualquer outra região compatível com o SDK do Amazon Chime.  
Para saber qual AWS região uma reunião usa, chame a [GetMeeting](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_GetMeeting.html)API e use o [MediaRegion](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeeting.html#chimesdk-meeting-chime_CreateMeeting-request-MediaRegion)parâmetro da resposta.  
Para obter mais informações sobre regiões opcionais, consulte este guia e [especifique quais AWS regiões sua conta pode usar](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-regions.html#rande-manage-enable.html) no *Guia de referência de gerenciamento de AWS contas*. [Regiões da AWS disponíveis para o SDK do Amazon Chime](sdk-available-regions.md)

As seções a seguir explicam como criar um pipeline de transmissão de mídia. Siga-os na ordem indicada.

**Topics**
+ [Criar um grupo do Kinesis Video Streams para pipelines de fluxo de mídia do SDK do Amazon Chime](create-kvs-pool.md)
+ [Exemplo de código de grupos do Kinesis Video Streams para pipelines de fluxo de mídia do SDK do Amazon Chime](pool-creation-code.md)
+ [Criar pipelines de fluxo de mídia do SDK do Amazon Chime](create-stream-pipeline.md)
+ [Exemplo de código para pipelines de fluxo de mídia do SDK do Amazon Chime](pipeline-creation-code.md)
+ [Usar notificações do Event Bridge para pipelines de fluxo de mídia do SDK do Amazon Chime](media-stream-event-bridge.md)
+ [Usar dados de pipelines de fluxo de mídia do SDK do Amazon Chime](media-stream-tips-tricks.md)

# Criar um grupo do Kinesis Video Streams para pipelines de fluxo de mídia do SDK do Amazon Chime
<a name="create-kvs-pool"></a>

O pool do Kinesis Video Streams (KVS) para seu pipeline de stream de mídia deve pertencer à mesma conta AWS da reunião do SDK do Amazon Chime. Crie um grupo do Kinesis Video Streams chamando a API [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).

O diagrama a seguir mostra a arquitetura de um grupo do Kinesis Video Streams do pipeline de mídia. Os números na imagem correspondem ao texto numerado abaixo:

![\[Diagrama mostrando uma chamada de API que cria um grupo do Kinesis Video Streams.\]](http://docs.aws.amazon.com/pt_br/chime-sdk/latest/dg/images/media-stream-pool-architecture.png)


No diagrama:

1. Você chama a API [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).

1. O ambiente de gerenciamento do pipeline de mídia cria e gerencia o Kinesis Video Streams (KVS) e o grupo em seu nome em sua conta.

A operação do grupo do KVS, o processo de criação, atualização e exclusão de transmissões no grupo é assíncrona. Como resultado, as notificações do Event Bridge usam o tipo de detalhe `Chime Media Pipeline Kinesis Video Pool State Change` para comunicar o status das transmissões em um grupo.

Você pode criar um grupo uma vez e reutilizá-lo em diferentes reuniões. Você também pode criar grupos diferentes conforme necessário e excluir grupos quando não precisar deles.

Os grupos aumentam a escala verticalmente automaticamente, com base na sua sequência de chamadas simultâneas. Você pode excluir qualquer grupo desnecessário.

**nota**  
Ao excluir um grupo, você deve esperar que o grupo seja completamente excluído antes de excluir as transmissões do KVS no grupo. Uma notificação do Event Bridge indicará quando o grupo foi completamente excluído. Isso acontece após o término de todas as reuniões que usam o grupo. Também é possível chamar a 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) para visualizar o `PoolId` de um grupo específico do KVS.  
Quando a API [https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_DeleteStream.html](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_DeleteStream.html) do Kinesis Video Streams é invocada, é possível usar essa string de nomenclatura para pesquisar e excluir os fluxos em um grupo. Também é possível chamar a 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) para visualizar o `PoolId` de um grupo específico do KVS. Os exemplos na próxima seção explicam como fazer isso.

# Exemplo de código de grupos do Kinesis Video Streams para pipelines de fluxo de mídia do SDK do Amazon Chime
<a name="pool-creation-code"></a>

Os exemplos a seguir mostram como criar, atualizar, obter, listar e excluir grupos do Kinesis Video Streams (KVS). Expanda cada seção para saber mais.

## Importações e variáveis comuns
<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'])
```

**Saída**:

```
{
    "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'])
```

**Saída**:

```
{
    "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'])
```

**Saída**:

```
{
    "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)
```

**Saída**:

```
[
    {
        "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
)
```

**Saída**: Uma solicitação `delete_media_pipeline_kinesis_video_stream_pool` bem-sucedida não tem corpo.

# Criar pipelines de fluxo de mídia do SDK do Amazon Chime
<a name="create-stream-pipeline"></a>

O pipeline de stream de mídia do chime deve pertencer à mesma AWS conta da reunião do Amazon Chime SDK. Crie o pipeline de fluxos de mídia do SDK do Amazon Chime chamando a API [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) e especificando uma origem e um coletor.

O diagrama a seguir mostra a arquitetura de um pipeline de transmissão de mídia do SDK do Amazon Chime. Os números no diagrama correspondem ao texto numerado abaixo.

![\[Diagrama mostrando uma chamada de API que cria um grupo de transmissão de mídia.\]](http://docs.aws.amazon.com/pt_br/chime-sdk/latest/dg/images/media-stream-pipe-architecture.png)


No diagrama:

1. Você chama a API `CreateMediaStreamPipeline`. Na solicitação, especifique as origens e os coletores das transmissões, se você deseja capturar áudio individual, áudio misto ou ambos. Inclua o ARN do seu grupo de KVS na solicitação.
   + A matriz de origens consiste em `SourceType` e `SourceArn`. Você deve usar o `ChimeSdkMeeting SourceType`. O `SourceArn` é o ARN da `ChimeSdkMeeting`.
   + A matriz de coletores consiste em `SinkType`, `SinkArn`, `ReservedStreamCapacity` e `MediaStreamType`. Nós só oferecemos suportes ao `KinesisVideoStreamPoolSinkType`. O `SinkArn` é o ARN da `KinesisVideoStreamPool`. O `MediaStreamType` controla o tipo de mídia transmitida para o coletor, `MixedAudio` ou`IndividualAudio`. A `ReservedStreamCapacity` define o número de transmissões alocadas para o `MediaStreamType` do `KinesisVideoStreamPool`.
     + Se você quiser transmitir ambos `IndividualAudio` e `MixedAudio`, crie dois objetos coletores na matriz `Sinks`, um para o `IndividualAudio` e outro para o `MixedAudio`. O `SinkArn` (o ARN do `KinesisVideoStreamPool`) pode variar para cada coletor.
     + Para transmitir apenas áudio individual ou áudio misto, crie um objeto coletor com o `MediaStreamType` desejado.
   + Observe o seguinte:
     + Ao invocar a API [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) com `KinesisVideoStreamPool` como o `SinkType`, o `SinkARN` deve pertencer à região do ambiente de gerenciamento na qual o `CreateMediaStreamPipeline` está sendo invocado.

       Por exemplo, se você criar um pipeline de transmissão de mídia em `us-east-1`, você deverá usar um `KinesisVideoStreamPool` em `us-east-1`.
     + A `ReservedStreamCapacity` deve ser **1** quando você especifica o `MediaStreamType` do `MixedAudio` e entre **1-10** quando você especifica o `MediaStreamType` do `IndividualAudio`.

1. O plano de dados do pipeline de mídia chama a [ PutMedia](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_dataplane_PutMedia.html)API KVS para armazenar áudio individual em um fluxo KVS que pertence ao pool KVS que você especifica.

1. O plano de dados do pipeline de mídia chama a API `PutMedia` do KVS para armazenar áudio misto em uma transmissão que pertence ao grupo do KVS especificado por você.

**nota**  
Depois de chamar a API [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), os construtores podem usar [eventos do pipeline de mídia](media-pipe-events.md) ou chamar a API [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) para determinar se o estado do pipeline é `InProgress`.  
Quando o estado do pipeline atinge `InProgress`, a mídia: qualquer combinação de `IndividualAudio` e `MixedAudio`: é transmitida para o KVS.   
Para o tipo de `IndividualAudio` fluxo, existe um mapeamento 1:1 entre o participante IDs e o fluxo KVS alocado do. `KinesisVideoStreamPool` O mapeamento se aplica durante a vida útil do pipeline de mídia.  
Para saber qual stream do KVS é mapeado para uma ID de participante ou para o qual está atribuído MixedAudio, use uma das seguintes técnicas:  
Use as [notificações do Event Bridge](media-stream-event-bridge.md). Cada notificação fornece informações como o participante IDs e o ARN do KVS que transmite o áudio do participante. Quando uma sessão de streaming com `IndividualAudio` ou `MixedAudio` começa, enviamos um evento `chime:MediaPipelineKinesisVideoStreamStart`. As sessões de streaming terminam quando um participante deixa a chamada (para `IndividualAudio`) ou quando a reunião termina.
Use os metadados persistentes que o Kinesis Video Streams envia com cada fragmento. Os metadados contêm informações semelhantes às que o Event Bridge envia. Os construtores precisam analisar todos os fluxos do `KinesisVideoStreamPool` especificando o nome do grupo como prefixo na API [https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_ListStreams.html](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_ListStreams.html) do Kinesis Video Streams usando essa solução.
O encerramento do pipeline do Media Stream acontece quando a reunião é excluída ou a 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) é invocada para esse pipeline de fluxo de mídia. Uma [notificação do Event Bridge](media-pipe-events.md) também é enviada para indicar o encerramento do pipeline de mídia.

# Exemplo de código para pipelines de fluxo de mídia do SDK do Amazon Chime
<a name="pipeline-creation-code"></a>

Os exemplos a seguir mostram como criar pipelines de transmissão de mídia para áudio misto, áudio individual e ambos. Expanda cada seção para saber mais.

## CreateMediaStreamPipeline para áudio misto
<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'
        },
    ]
)
```

**Resposta:**

```
{
    '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 para áudio individual
<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'
        },
    ]
)
```

**Resposta:**

```
{
    '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 para áudio misto e individual
<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'
        },
    ]
)
```

**Resposta:**

```
{
    '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'
            },
        ]
    }
}
```

# Usar notificações do Event Bridge para pipelines de fluxo de mídia do SDK do Amazon Chime
<a name="media-stream-event-bridge"></a>

Além dos [Usar eventos de pipelines de mídia do SDK do Amazon Chime](media-pipe-events.md), os pipelines de transmissão de mídia enviam notificações do Event Bridge quando iniciam e param o streaming para o KVS e quando os estados do grupo de vídeo mudam.

**Topics**
+ [Noções básicas sobre os eventos do pipeline de fluxo de mídia do SDK do Amazon Chime](stream-pipe-events.md)
+ [Noções básicas sobre eventos do grupo do Kinesis Video Streams para os pipelines de fluxo de mídia do SDK do Amazon Chime](media-stream-pool-events.md)

# Noções básicas sobre os eventos do pipeline de fluxo de mídia do SDK do Amazon Chime
<a name="stream-pipe-events"></a>

Os pipelines de transmissão de mídia enviam os seguintes eventos. Expanda cada seção para saber mais.

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

O pipeline de mídia do SDK do Amazon Chime envia esse evento quando o pipeline de transmissão de mídia começa a receber o áudio da reunião e a transmitir esse áudio para o KVS. Os campos vazios `AttendeeId` e `ExternalUserId` indicam que o pipeline de mídia enviou áudio misto para a transmissão do 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>

O pipeline de mídia envia esse evento para o Event Bridge quando a transmissão para o KVS termina.

```
{
    "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"
    }
}
```

# Noções básicas sobre eventos do grupo do Kinesis Video Streams para os pipelines de fluxo de mídia do SDK do Amazon Chime
<a name="media-stream-pool-events"></a>

Os pipelines de mídia enviam os seguintes eventos para o Event Bridge quando os estados dos grupos mudam. Expanda cada seção para saber mais.

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

O pipeline de mídia envia esse evento depois que a API [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) criar um grupo.

```
{
    "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 Media Pipeline Kinesis Video Pool Updated
<a name="kvs-pool-updated"></a>

O pipeline de mídia envia esse evento depois que a API [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) atualiza um grupo.

```
{
    "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 Pipeline Kinesis Video Pool Deleted
<a name="kvs-pool-deleted"></a>

O pipeline de mídia envia esse evento ao Event Bridge quando 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) exclui um grupo.

Para mais informações sobre a exclusão de grupos, consulte o [Criar um grupo do Kinesis Video Streams para pipelines de fluxo de mídia do SDK do Amazon Chime](create-kvs-pool.md) nesta seção.

```
{
    "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 Pipeline Kinesis Video Pool Temporary Failure
<a name="kvs-pool-temp-failure"></a>

O pipeline de mídia envia o seguinte evento para o Event Bridge quando um grupo de vídeo falha temporariamente.

```
{
    "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 Pipeline Kinesis Video Pool Permanent Failure
<a name="kvs-pool-perm-failure"></a>

O pipeline de mídia envia o seguinte evento para o Event Bridge quando um grupo de vídeo falha permanentemente.

```
{
    "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"
    }
}
```

Você receberá o seguinte evento adicional de pipeline de mídia se sua conta da AWS tiver excedido o limite de streaming de vídeo do 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"
    }
}
```

# Usar dados de pipelines de fluxo de mídia do SDK do Amazon Chime
<a name="media-stream-tips-tricks"></a>

Você pode usar os metadados nas notificações para obter KVS ARNs, números de fragmentos e timestamps de fragmentos. Essas informações podem ajudá-lo a processar os dados de áudio em uma transmissão do KVS.

Além disso, você pode usar o KVS ARNs com o KVS APIs para ler dados de um fluxo. Dependendo do caso de uso, você chama [https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_dataplane_GetMedia.html](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_dataplane_GetMedia.html) APIse. Normalmente, uma chamada da `GetMediaForFragmentList` é precedida por uma chamada para a API [https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_reader_ListFragments.html](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_reader_ListFragments.html). Para obter mais informações, consulte [Leitura de dados de streams](https://aws.amazon.com/kinesis/video-streams/faqs/) no *Amazon Kinesis Video* Streams. FAQs

Dependendo do caso de uso, os construtores podem usar a biblioteca de analisadores do Kinesis Video Streams, que, por sua vez, usa a API [https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_dataplane_GetMedia.html](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_dataplane_GetMedia.html) do KVS.

Os pipelines de transmissão de mídia adicionam os seguintes metadados da reunião e do participante a cada fragmento.

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

Os dados de mídia são armazenados no formato MKV. Todos os dados de áudio MKV são codificados em AAC. Para mais informações, consulte [Modelo de dados do Kinesis Data Streams](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/how-data.html) no *Guia do desenvolvedor do Kinesis Video Streams*.

# Compor áudio e vídeo em uma única visualização nas reuniões do SDK do Amazon Chime
<a name="pipeline-compositing"></a>

Os pipelines de mídia do SDK do Amazon Chime suportam a composição de áudio, vídeos de webcam e transmissões de vídeo de compartilhamento de conteúdo em uma única visualização. Em seguida, você pode usar o conector ao vivo para enviar essa visualização única para serviços de streaming, como Amazon Interactive Video Service, Twitch ou YouTube Live. O vídeo composto também pode ser capturado no Amazon Simple Storage Service para armazenamento ou consumo adicional.

A composição usa um layout de tela padrão chamado `GridView`, que tem os seguintes comportamentos. 
+ Quando somente os vídeos da webcam estão ativos, a `GridView` organiza as transmissões no seguinte padrão de grade:  
![\[Uma grade de quatro colunas e quatro linhas mostrando os contornos das pessoas.\]](http://docs.aws.amazon.com/pt_br/chime-sdk/latest/dg/images/grid-no-content-share.png)

  A grade exibe no máximo 25 transmissões de webcam e ordena os blocos de acordo com o momento em que os usuários ligam suas câmeras.
+ A `GridView` fornece duas orientações de tela: `Landscape` e `Portrait`. Paisagem, a orientação padrão que suporta resoluções de vídeo de 1280x720 e 1920x1080 para FHD. Retrato suporta resoluções de 720x1280 e 1080x1920 para FHD.
+ Você pode configurar a ordem, a posição, o número total, a proporção do bloco, o raio do canto, a cor da borda, a espessura da borda e a cor de destaque dos blocos de vídeo.
+ Durante uma reunião, quando alguém compartilha a tela, os blocos de vídeo de webcam mudam dinamicamente para abrir espaço para o compartilhamento do conteúdo. Você controla essas transições e os locais dos blocos de vídeo usando uma das configurações de layout descritas na próxima seção.

**Sobre as configurações de layout**  
Quando alguém inicia um compartilhamento de conteúdo, você pode escolher como compor o compartilhamento de conteúdo e as transmissões de vídeo da webcam usando uma das seguintes configurações de layout.
+ A `ActiveSpeakerOnlyConfiguration` compõe o vídeo do conteúdo em tela cheia, com o vídeo da webcam de quem está falando sobreposto em um canto. Você pode especificar o canto.
+ A `PresenterOnlyConfiguration` compõe o vídeo do conteúdo em tela cheia, com o vídeo da webcam do apresentador sobreposto em um canto. Você pode especificar o canto.
+ A `VerticalLayoutConfiguration` compõe o vídeo do conteúdo com o vídeo da webcam em uma coluna vertical adjacente. Você pode exibir a coluna à direita ou à esquerda do compartilhamento de conteúdo.
+ A `HorizontalLayoutConfiguration` compõe o vídeo do conteúdo com o vídeo da webcam em uma linha horizontal adjacente. Você pode exibir a linha acima ou abaixo do compartilhamento de conteúdo.

Os layouts compostos fazem a transição automática entre a `GridView` e o layout escolhido, com base no fato de o compartilhamento de conteúdo estar ativo ou não.

Os tópicos a seguir explicam como usar as configurações globais da `GridView` e cada layout de configuração.

**Topics**
+ [Definir a orientação da tela para composição em reuniões do SDK do Amazon Chime](canvas-orientation.md)
+ [Definir atributos de borda e de canto para composição em reuniões do SDK do Amazon Chime](video-attribute.md)
+ [Usar as configurações de layout para composição em reuniões do SDK do Amazon Chime](compositing-layouts.md)

# Definir a orientação da tela para composição em reuniões do SDK do Amazon Chime
<a name="canvas-orientation"></a>

Na composição, a *tela* contém todas as suas transmissões de vídeo. Você pode especificar uma orientação `Landscape` ou `Portrait` para a tela. A orientação paisagem fornece uma proporção de 16:9. A orientação retrato fornece uma proporção de 9:16.

A imagem a seguir mostra a orientação retrato.

![\[Imagem mostrando dois blocos de vídeo em uma janela na vertical (retrato).\]](http://docs.aws.amazon.com/pt_br/chime-sdk/latest/dg/images/compositing-portrait-with-tile.png)


O exemplo a seguir mostra como implementar uma tela em modo retrato com o bloco de vídeo no canto superior direito. Neste exemplo, quem está falando aparece no bloco. Para mais informações, consulte [ActiveSpeakerOnlyConfiguration](compositing-layouts.md#active-speaker-only).

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

A imagem a seguir mostra a orientação paisagem.

![\[Imagem mostrando dois blocos de vídeo em uma janela na horizontal (paisagem).\]](http://docs.aws.amazon.com/pt_br/chime-sdk/latest/dg/images/compositing-landscape-with-tile.png)


**CanvasOrientation**  
*Descrição*: A configuração de orientação, Paisagem ou Retrato.  
*Valores permitidos*: `Landscape` \$1 `Portrait`  
*Obrigatório*: Não  
*Padrão*: Paisagem

# Definir atributos de borda e de canto para composição em reuniões do SDK do Amazon Chime
<a name="video-attribute"></a>

Conforme desejado, você pode usar o parâmetro `VideoAttribute` para especificar as configurações de borda e canto para seus blocos de vídeo. Você pode especificar cores, larguras e cantos arredondados. Você também pode especificar uma cor de destaque, e a borda muda para essa cor quando alguém fala. 

Suas configurações de atributos se aplicam a todos os layouts, independentemente do compartilhamento de conteúdo.

A imagem a seguir mostra um bloco de vídeo com a cor da borda e o raio do canto aplicados.

![\[Imagem de um compartilhamento de tela e um bloco de vídeo com uma borda vermelha e cantos arredondados.\]](http://docs.aws.amazon.com/pt_br/chime-sdk/latest/dg/images/compositing-speaker-border.png)


O exemplo a seguir mostra como usar cada atributo. Nesse caso, os blocos de vídeo têm cantos arredondados com um raio de cinco pixels. Os blocos têm uma borda verde, também com cinco pixels de largura. Quando o locutor fala, o atributo `HighlightColor` muda a cor da borda para vermelho.

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

**VideoAttribute**  
*Descrição*: Especifica as configurações para bordas de blocos de vídeo e cantos arredondados  
*Valores permitidos*: `BorderColor` \$1 `BorderThickness` \$1 `CornerRadius` \$1 `HighlightColor`  
*Obrigatório*: Não

**VideoAttribute.BorderColor**  
*Descrição*: Define a cor da borda para todos os blocos de vídeo  
*Valores permitidos*: Nomes de cores, como vermelho, verde ou azul  
*Obrigatório*: Não

**VideoAttribute.BorderThickness**  
*Descrição*: Define a espessura da borda em pixels para todos os blocos de vídeo  
*Tipo*: Inteiro  
*Valores permitidos*: 1 - 20  
*Obrigatório*: Não

**VideoAttribute.CornerRadius**  
*Descrição*: Define o raio do canto em pixels para todos os blocos de vídeo.   
*Tipo*: Inteiro  
*Valores permitidos*: 1 - 20  
*Obrigatório*: Não

**VideoAttribute.HighlightColor**  
*Descrição*: Define a cor da borda que aparece quando um apresentador ou locutor fala  
*Valores permitidos*: nomes de cores, como vermelho, verde ou azul  
*Obrigatório*: Não

# Usar as configurações de layout para composição em reuniões do SDK do Amazon Chime
<a name="compositing-layouts"></a>

Os tópicos a seguir explicam como usar os diferentes layouts de configuração. Os layouts só entram em vigor quando alguém inicia um compartilhamento de conteúdo. Expanda cada seção para saber mais.

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

A `ActiveSpeakerOnlyConfiguration` exibe o compartilhamento de conteúdo e o vídeo de quem está falando, o que significa que a pessoa que está falando aparece no pequeno bloco de vídeo que se sobrepõe à transmissão de compartilhamento de conteúdo.

A imagem a seguir mostra a configuração e os locais disponíveis para o bloco de quem está falando.

![\[Imagem mostrando um grande bloco de vídeo no centro de uma janela e um pequeno bloco no canto superior esquerdo.\]](http://docs.aws.amazon.com/pt_br/chime-sdk/latest/dg/images/compositing-active-speaker-4x.png)


O exemplo a seguir mostra como implementar o layout `ActiveSpeakerOnly` de forma programática. Nesse caso, o bloco do apresentador aparece no canto superior esquerdo.

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

**ActiveSpeakerOnlyConfiguration**  
*Descrição*: As configurações de um bloco de vídeo `ActiveSpeakerOnly`  
*Tipo*: objeto da ActiveSpeakerOnlyConfiguration  
*Obrigatório*: Não

**ActiveSpeakerOnlyConfiguration.ActiveSpeakerPosition**  
*Descrição*: A posição do bloco de vídeo de quem está falando  
*Tipo*: String  
*Valores válidos*: `TopLeft` \$1 `TopRight` \$1 `BottomLeft` \$1 `BottomRight`  
*Obrigatório*: Não  
*Padrão*: `TopRight`

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

A `PresenterOnlyConfiguration` exibe o compartilhamento de conteúdo e somente o vídeo do apresentador, independentemente de quem fala. A imagem a seguir mostra a configuração.

![\[Imagem de quatro telas. Cada tela tem uma janela de compartilhamento no meio e um bloco de vídeo em cada canto.\]](http://docs.aws.amazon.com/pt_br/chime-sdk/latest/dg/images/compositing-presenter-only-4x.png)


O exemplo a seguir mostra como implementar o layout de forma programática com o apresentador no canto superior direito.

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

**PresenterOnlyConfiguration**  
*Descrição*: As configurações de um layout `PresenterOnly`  
*Tipo*: objeto da `PresenterOnlyConfiguration`  
*Obrigatório*: Não

**PresenterOnlyConfiguration.PresenterPosition**  
*Descrição*: A posição do bloco de vídeo do apresentador  
*Tipo*: String  
*Valores válidos*: `TopLeft` \$1 `TopRight` \$1 `BottomLeft` \$1 `BottomRight`  
*Obrigatório*: Não  
*Padrão*: `TopRight`

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

A `HorizontalLayoutConfiguration` exibe o compartilhamento de conteúdo e as transmissões de vídeo horizontalmente. Você pode usar a configuração `TilePosition` para exibir os blocos acima ou abaixo da transmissão de compartilhamento de conteúdo. Os apresentadores sempre aparecem à esquerda. Os blocos adicionais aparecem na ordem ditada pela `JoinSequence`. 

A imagem a seguir mostra os blocos abaixo da transmissão de compartilhamento de conteúdo.

![\[Imagem mostrando um bloco central grande e 4 blocos menores em uma linha abaixo.\]](http://docs.aws.amazon.com/pt_br/chime-sdk/latest/dg/images/compositing-horizontal-bottom.png)


O exemplo a seguir mostra como implementar um layout horizontal de forma programática. Nesse caso, o layout ordena os blocos por `SpeakerSequence` e os coloca abaixo do compartilhamento de tela. O layout permite no máximo quatro blocos e aplica uma proporção de 16/9.

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

**HorizontalLayoutConfiguration**  
*Descrição*: As configurações de um layout horizontal  
*Tipo*: objeto da HorizontalLayoutConfiguration   
*Obrigatório*: Não

**HorizontalLayoutConfiguration.TilePosition**  
*Descrição*: Coloca os blocos acima ou abaixo de um compartilhamento de conteúdo.  
*Tipo* - String  
*Valores válidos*: `Bottom` \$1 `Top`  
*Obrigatório*: Não  
*Padrão*: Parte inferior

**HorizontalLayoutConfiguration.TileOrder**  
*Descrição*: Ordena os blocos de acordo com o momento em que os usuários entram ou quando falam  
*Tipo*: String  
*Valores válidos*: `JoinSequence` \$1 `SpeakerSequence`  
*Obrigatório*: Não  
*Padrão*: JoinSequence

**HorizontalLayoutConfiguration.TileCount**  
*Descrição*: Especifica o número de blocos que permanecem visíveis durante um compartilhamento de tela  
*Tipo*: Inteiro  
*Valores válidos*: 1–10  
*Obrigatório*: Não  
*Padrão*: 4

**HorizontalLayoutConfiguration.TileAspectRatio**  
*Descrição*: Especifica a proporção dos blocos  
*Tipo*: Inteiro  
*Valores válidos*: *n***/***n*  
*Obrigatório*: Não  
*Padrão*: 16/9, o valor se aplica a todos os blocos

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

A `VerticalLayoutConfiguration` exibe o compartilhamento de conteúdo e os quatro vídeos mais recentes empilhados à direita. Os apresentadores sempre aparecem no topo. Outros participantes aparecem na ordem ditada por `TileOrder`.

![\[Imagem mostrando um grande bloco de vídeo no centro de uma janela e 4 blocos menores empilhados à direita.\]](http://docs.aws.amazon.com/pt_br/chime-sdk/latest/dg/images/grid-vertical.png)


O exemplo a seguir mostra como implementar o layout vertical de forma programática. Nesse caso, o layout ordena os blocos JoinSequence e os coloca à direita do compartilhamento de tela. O layout permite no máximo quatro blocos e aplica uma proporção de 16/9.

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

**VerticalLayoutConfiguration**  
*Descrição*: As configurações para um layout vertical  
*Tipo*: objeto da VerticalLayoutConfiguration   
*Obrigatório*: Não

**VerticalLayoutConfiguration.TilePosition**  
*Descrição*: Coloca blocos à direita ou à esquerda de um compartilhamento de conteúdo.  
*Tipo*: String  
*Valores válidos*: `Bottom` \$1 `Top`  
*Obrigatório*: Não  
*Padrão*: Parte inferior

**VerticalLayoutConfiguration.TileOrder**  
*Descrição*: Ordena os blocos de acordo com o momento em que os usuários entram ou quando falam  
*Tipo*: String  
*Valores válidos*: `JoinSequence` \$1 `SpeakerSequence`  
*Obrigatório*: Não  
*Padrão*: JoinSequence

**VerticalLayoutConfiguration.TileCount**  
*Descrição*: Especifica o número de blocos  
*Tipo*: Inteiro  
*Valores válidos*: 1–10  
*Obrigatório*: Não  
*Padrão*: 4

**VerticalLayoutConfiguration.TileAspectRatio**  
*Descrição*: Especifica a proporção dos blocos  
*Tipo*: Inteiro  
*Valores válidos*: *n***/***n*  
*Obrigatório*: Não  
*Padrão*: 9/16, o valor se aplica a todos os blocos

# Criar um perfil vinculado ao serviço para pipelines de mídia do SDK do Amazon Chime
<a name="create-pipeline-role"></a>

As informações nas seções a seguir explicam como criar um perfil vinculado a serviços que conceda aos pipelines de mídia acesso às suas reuniões do SDK do Amazon Chime.

**Topics**
+ [Como configurar permissões de perfil](#pipeline-role-permissions)
+ [Como criar uma função vinculada ao serviço](#create-sl-role)
+ [Editando a função vinculada ao serviço](#edit-pipeline-role)
+ [Excluindo uma função vinculada ao serviço](#delete-pipeline-role)
+ [Regiões compatíveis com perfis vinculados ao serviço](#role-supported-regions)

## Como configurar permissões de perfil
<a name="pipeline-role-permissions"></a>

*os pipelines de mídia usam uma função vinculada a serviços chamada Pipelines. AWSService RoleForAmazonChime SDKMedia* A função permite que os pipelines de captura acessem as reuniões do Amazon Chime SDK e publiquem métricas na CloudWatch Amazon em seu nome. O perfil confia no serviço `mediapipelines.chime.amazonaws.com`.

A política de permissões de função permite que o Amazon Chime SDK conclua as seguintes ações em todos os recursos: AWS 
+ Ação: `cloudwatch:PutMetricData` em `all AWS resources`
+ Ação: `chime:CreateAttendee` em `all AWS resources`
+ Ação: `chime:DeleteAttendee` em `all AWS resources`
+ Ação: `chime:GetMeeting` em `all AWS resources`
+ Ação: `kinesisvideo:CreateStream` em `arn:aws:kinesisvideo:*:111122223333:stream/ChimeMediaPipelines-*`
+ Ação: `kinesisvideo:PutMedia` em `arn:aws:kinesisvideo:*:111122223333:stream/ChimeMediaPipelines-*`
+ Ação: `kinesisvideo:UpdateDataRetention` em `arn:aws:kinesisvideo:*:111122223333:stream/ChimeMediaPipelines-*`
+ Ação: `kinesisvideo:DescribeStream` em `arn:aws:kinesisvideo:*:111122223333:stream/ChimeMediaPipelines-*`
+ Ação: `kinesisvideo:GetDataEndpoint` em `arn:aws:kinesisvideo:*:111122223333:stream/ChimeMediaPipelines-*`
+ Ação: `kinesisvideo:ListStreams` em `arn:aws:kinesisvideo:*:111122223333:stream/*`

É necessário configurar permissões para permitir que uma entidade do IAM, como um usuário, grupo ou perfil, crie, edite ou exclua um perfil vinculado ao serviço. Para mais informações sobre permissões, consulte [ Permissões de perfil vinculado a serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions) no *Guia do usuário do IAM*. 

## Como criar uma função vinculada ao serviço
<a name="create-sl-role"></a>

Você usa o console do IAM para criar um perfil vinculado ao serviço para usar com pipelines de mídia do SDK do Amazon Chime. Você deve ter permissões administrativas do IAM para concluir essas etapas. Caso contrário, entre em contato com um administrador do sistema.

**Para criar a função**

1. Faça login no AWS Management Console e abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam).

1. No painel de navegação do console do IAM, escolha **Perfis** e, em seguida, **Criar perfil**.

1. Escolha o tipo de perfil do **Serviço da AWS** e, em seguida, escolha **Pipelines de mídia do SDK do Chime**.

   A política do IAM é exibida.

1. Marque a caixa de seleção ao lado da política e escolha **Próximo: Tags**.

1. Escolha **Próximo: revisar**.

1. Edite a descrição conforme necessário e escolha **Criar perfil**.

*Você também pode usar a AWS CLI ou a AWS API para criar uma função vinculada ao serviço chamada mediapipelines.chime.amazonaws.com.* Na AWS CLI, execute este comando:

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

Para mais informações sobre a criação do perfil, consulte [Criando um perfil vinculado ao serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#create-service-linked-role) no *Guia do usuário do IAM*. Se você excluir esse perfil, será possível usar esse mesmo processo para criá-lo novamente.

## Editando a função vinculada ao serviço
<a name="edit-pipeline-role"></a>

Você não pode editar a função vinculada ao serviço *AWSServiceRoleForAmazonChimeSDKMediaPipelines*. Depois de criar o perfil, você não pode alterar o seu nome, pois outras entidades podem fazer referência a ele. No entanto, é possível usar o IAM para editar a descrição do perfil. Para mais informações, consulte [Como editar uma função vinculada ao serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role) no *Guia do usuário do IAM*.

## Excluindo uma função vinculada ao serviço
<a name="delete-pipeline-role"></a>

Se você não precisa de um perfil vinculado ao serviço, recomendamos que o exclua. Para fazer isso, primeiro exclua os pipelines de mídia que usam o perfil. Você pode usar a AWS CLI ou a [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 para excluir os pipelines. 

**Como usar a CLI para excluir pipelines**  
Use esse comando na AWS CLI para excluir pipelines de mídia em sua conta.

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

**Como usar uma API para excluir pipelines**  
Use a 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) para excluir pipelines de mídia em sua conta.

**Como excluir o perfil**  
Depois de excluir os pipelines, você pode usar o console do IAM, a AWS CLI ou AWS a API para excluir a função. Para mais informações sobre a exclusão de perfis, consulte [Como excluir um perfil vinculado ao serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role) no *Guia do usuário do IAM*.

## Regiões compatíveis com perfis vinculados ao serviço
<a name="role-supported-regions"></a>

O Amazon Chime SDK oferece suporte ao uso de funções vinculadas a serviços em todas as AWS regiões em que o serviço está disponível. Para mais informações, consulte [Endpoints e quotas do SDK do Amazon Chime](https://docs.aws.amazon.com/general/latest/gr/chime-sdk.html) no *Referência geral da Amazon Web Services*.

# Usar eventos de pipelines de mídia do SDK do Amazon Chime
<a name="media-pipe-events"></a>

Cada tipo de pipeline de mídia envia eventos de ciclo de vida, que você pode usar para acionar notificações e iniciar fluxos de trabalho posteriores. Alguns exemplos de uso de eventos de pipeline de mídia incluem:
+ Processamento da mídia capturada após a conclusão de um pipeline de mídia.
+ Como notificar os participantes da reunião se um pipeline de mídia tiver uma falha temporária.
+ Como interromper uma reunião se um pipeline de mídia falhar permanentemente.

Você pode enviar eventos para a Amazon EventBridge, Amazon Simple Notification Service (SNS) e Amazon Simple Queue Service (SQS). Para obter mais informações, consulte [Eventos de AWS serviços](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-service-event.html) no *Guia do EventBridge usuário da Amazon*.

## O pipeline de mídia do SDK do Amazon Chime foi criado
<a name="media-pipeline-create"></a>

O SDK do Amazon Chime envia esse evento quando o pipeline de mídia é criado.

**Exemplo: Dados do evento**  
 A seguir estão dados de exemplo para esse evento.

```
{
    "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"
    }
}
```

## O pipeline de mídia do SDK do Amazon Chime foi excluído
<a name="media-pipeline-delete"></a>

O SDK do Amazon Chime envia esse evento depois que o pipeline de mídia é interrompido com êxito. 

**Exemplo: dados do evento**  
A seguir estão dados de exemplo para esse evento.

```
{
    "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"
    }
}
```

## O pipeline de mídia do SDK do Amazon Chime tem uma falha temporária
<a name="pipeline-temp-failure"></a>

O SDK do Amazon Chime envia esse evento quando o pipeline de mídia tem uma falha temporária.

**Exemplo: Dados do evento**  
A seguir estão dados de exemplo para esse evento.

```
{
    "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"
    }
}
```

## Pipeline de mídia do SDK do Amazon Chime em andamento
<a name="pipeline-in-progress"></a>

O SDK do Amazon Chime envia esse evento quando o pipeline de mídia começa a capturar artefatos.

**Exemplo: dados do evento**  
A seguir estão dados de exemplo para esse evento.

```
{
    "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"
    }
}
```

## Falha permanente no pipeline de mídia do SDK do Amazon Chime
<a name="pipeline-perm-failure"></a>

O SDK do Amazon Chime envia esse evento quando um pipeline de mídia falha permanentemente.

**Exemplo: Dados do evento**  
A seguir estão dados de exemplo para esse evento.

```
{
    "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"
    }
}
```

# Definir permissões de bucket do Amazon S3 para pipelines de mídia do SDK do Amazon Chime
<a name="s3-permissions"></a>

Se você não criou um bucket do Amazon S3, certifique-se de criar o seu na conta e na região em que você hospeda reuniões. Além disso, certifique-se de conceder permissões adequadas para o serviço. Para mais informações sobre como criar um bucket do Amazon S3, consulte [Criar um bucket do Amazon S3 para pipelines de captura de mídia do SDK do Amazon Chime](create-s3-bucket.md).

# Enviando eventos de pipeline de mídia do Amazon Chime SDK para CloudTrail
<a name="pipeline-cloudtrail"></a>

AWS habilita CloudTrail para você quando você cria sua AWS conta. Quando um usuário chama uma API compatível no SDK do pipeline de mídia, CloudTrail registra essa atividade dessa API no **histórico de eventos**, junto com outros AWS eventos. Você pode visualizar, pesquisar e baixar eventos de pipeline de mídia em sua conta da AWS. Para obter mais informações, consulte [Visualizar eventos com histórico de CloudTrail eventos](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html) no *Guia CloudTrail do usuário*.

Para obter um registro contínuo de eventos de pipeline de mídia, você pode criar uma *trilha*. Uma trilha permite CloudTrail entregar arquivos de log para seu bucket do Amazon S3. O exemplo a seguir mostra uma trilha de pipeline de mídia. Os dados incluem o usuário que chamou a API, o perfil do IAM usado para chamar a API e os registros de data/hora. Para obter mais informações sobre o uso, CloudTrail consulte [Registro e monitoramento](https://docs.aws.amazon.com/chime-sdk/latest/ag/monitoring-overview.html) no Guia do *administrador do Amazon Chime SDK*.

```
{
   "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"
       }
    },  
  ]
}
```

# Práticas recomendadas para interromper pipelines de mídia do SDK do Amazon Chime
<a name="stop-pipe-best-practices"></a>

Como prática recomendada para interromper os pipelines de mídia, chame a 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). A API permite que você exclua os pipelines de captura de mídia e conectores ativos de mídia. Também é possível chamar a 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) para excluir pipelines de captura de mídia. Todos os pipelines de mídia param quando a reunião termina.

# Como usar a transcrição ao vivo do SDK do Amazon Chime
<a name="meeting-transcription"></a>

Você usa a transcrição ao vivo do SDK do Amazon Chime para gerar transcrições ao vivo atribuídas pelo usuário de suas reuniões. A transcrição ao vivo do SDK do Amazon Chime se integra aos serviços Amazon Transcribe e Amazon Transcribe Medical para gerar transcrições das reuniões do SDK do Amazon Chime enquanto elas estão em andamento.

A transcrição ao vivo do SDK do Amazon Chime processa o áudio de cada usuário separadamente para melhorar a precisão em cenários com vários alto-falantes. O SDK do Amazon Chime usa seu algoritmo de locutor ativo para selecionar os dois principais locutores ativos e, em seguida, envia o áudio para o Amazon Transcribe, em canais separados, por meio de um único stream. Os participantes da reunião recebem transcrições atribuídas pelo usuário por meio de mensagens de dados do SDK do Amazon Chime. Você pode usar as transcrições de várias maneiras, como exibir legendas, criar transcrições de reuniões ou usar as transcrições para análise de conteúdo.

A transcrição ao vivo usa um stream para o Amazon Transcribe durante a transcrição da reunião. Aplicam-se os custos-padrão do Amazon Transcribe e do Amazon Transcribe Medical. Para obter mais informações, consulte os [Preços do Amazon Transcribe](https://aws.amazon.com/transcribe/pricing/). Em caso de dúvidas sobre uso ou cobrança, entre em contato com seu gerente de AWS conta.

**Importante**  
[Por padrão, o Amazon Transcribe pode usar e armazenar conteúdo de áudio processado pelo serviço para desenvolver e AWS melhorar os serviços de IA/ML, conforme descrito mais detalhadamente na seção 50 dos Termos de Serviço.AWS](https://aws.amazon.com/service-terms/) O uso do Amazon Transcribe pode estar sujeito às leis ou regulamentações federais e estaduais relacionadas à gravação ou interceptação de comunicações eletrônicas. É responsabilidade sua e de seus usuários finais cumprir todas as leis aplicáveis em relação à gravação, incluindo notificar adequadamente todos os participantes de uma sessão ou comunicação gravada de que a sessão ou comunicação está sendo gravada e obter todos os consentimentos necessários. Você pode optar por não AWS usar conteúdo de áudio para desenvolver e melhorar os serviços de AWS IA/ML configurando uma política de exclusão de serviços de IA usando o Organizations. AWS 

**Topics**
+ [Arquitetura do sistema](#sys-architecture)
+ [Faturamento e uso](#billing-and-usage)
+ [Configurar sua conta para a transcrição ao vivo do SDK do Amazon Chime](configure-transcribe.md)
+ [Escolher as opções de transcrição ao vivo do SDK do Amazon Chime](transcription-options.md)
+ [Iniciar e interromper a transcrição ao vivo do SDK do Amazon Chime](initiate-transcription.md)
+ [Parâmetros de transcrição ao vivo do SDK do Amazon Chime](#transcription-parameters)
+ [Noções básicas sobre os eventos de transcrição ao vivo do SDK do Amazon Chime](transcription-events.md)
+ [Noções básicas sobre os eventos de transcrição ao vivo do SDK do Amazon Chime](process-msgs.md)
+ [Processar um evento de transcrição ao vivo do SDK do Amazon Chime](delivery-examples.md)
+ [Analisar transcrições do SDK do Amazon Chime](parse-transcripts.md)

## Arquitetura do sistema
<a name="sys-architecture"></a>

O SDK do Amazon Chime cria transcrições de reuniões em tempo real, sem que o áudio saia da rede da AWS , por meio de uma integração do lado do serviço com sua conta Amazon Transcribe ou Amazon Transcribe Medical. Para maior precisão, o áudio dos usuários é processado separadamente e depois misturado na reunião. O SDK do Amazon Chime usa seu algoritmo de locutor ativo para selecionar os dois principais locutores ativos e, em seguida, envia o áudio para o Amazon Transcribe ou para o Amazon Transcribe Medical, em canais separados, por meio de um único stream. Para reduzir a latência, as transcrições atribuídas pelo usuário são enviadas diretamente para cada participante da reunião por meio de mensagens de dados. Ao usar um canal de mídia para capturar o áudio da reunião, as informações de transcrição da reunião também são capturadas.

![\[Um diagrama mostrando o fluxo de dados da transcrição da reunião.\]](http://docs.aws.amazon.com/pt_br/chime-sdk/latest/dg/images/transcription-architecture.png)


## Faturamento e uso
<a name="billing-and-usage"></a>

A transcrição ao vivo usa um stream para o Amazon Transcribe ou Amazon Transcribe Medical durante a transcrição da reunião. Aplicam-se os custos-padrão do Amazon Transcribe e do Amazon Transcribe Medical. Para obter mais informações, consulte os [Preços do Amazon Transcribe](https://aws.amazon.com/transcribe/pricing/). Em caso de dúvidas sobre uso ou cobrança, entre em contato com seu gerente de AWS conta.

# Configurar sua conta para a transcrição ao vivo do SDK do Amazon Chime
<a name="configure-transcribe"></a>

Antes de usar a transcrição ao vivo do Amazon Chime SDK, você deve conceder permissão ao Amazon Chime SDK para chamar o Amazon Transcribe e o Amazon Transcribe Medical em sua conta. AWS Você faz isso adicionando a função vinculada ao serviço Chime Transcription à sua conta. Para obter informações sobre a criação da função vinculada ao serviço para transcrição ao vivo, consulte [Uso de funções com transcrição ativa](https://docs.aws.amazon.com/chime-sdk/latest/ag/using-service-linked-roles-transcription.html) no *Guia de administração do SDK do Amazon Chime*. Para obter mais informações sobre funções vinculadas a serviços, consulte [Funções vinculadas a serviços](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html) no *Guia do usuário do IAM*.

# Escolher as opções de transcrição ao vivo do SDK do Amazon Chime
<a name="transcription-options"></a>

Ao usar a transcrição ao vivo do SDK do Amazon Chime, você usa o [Amazon Transcribe](https://aws.amazon.com/transcribe/) ou o [Amazon Transcribe Medical](https://aws.amazon.com/transcribe/medical/) em sua conta da AWS . Você tem acesso a todas as [linguagens de streaming suportadas pelo Amazon Transcribe](https://docs.aws.amazon.com/transcribe/latest/dg/what-is-transcribe.html), além de atributos como [vocabulários personalizados](https://docs.aws.amazon.com/transcribe/latest/dg/how-vocabulary.html) e [filtros de vocabulário](https://docs.aws.amazon.com/transcribe/latest/dg/filter-unwanted-words.html). Ao usar o Amazon Transcribe Medical, você pode escolher uma especialidade médica, um tipo de conversação e, opcionalmente, fornecer qualquer vocabulário personalizado. Aplicam-se os custos-padrão do Amazon Transcribe e do Amazon Transcribe Medical.

O processo de escolha das opções de transcrição segue essas etapas. 

## Etapa 1: escolha de um serviço de transcrição
<a name="choose-service"></a>

Você precisa decidir qual serviço de transcrição usar, [Amazon Transcribe](https://aws.amazon.com/transcribe/) ou [Amazon Transcribe Medical](https://aws.amazon.com/transcribe/medical/). 

Se o seu caso de uso exigir recursos médicos de fala para texto, você provavelmente quer usar o Amazon Transcribe Medical. Para todos os outros casos de uso, você provavelmente quer usar o Amazon Transcribe.

Você especifica qual serviço de transcrição usar ao chamar a API `StartMeetingTranscription`:
+ Para usar o Amazon Transcribe, especifique uma `TranscriptionConfiguration` com `EngineTranscribeSettings`. 
+ Para usar o Amazon Transcribe Medical, especifique uma `TranscriptionConfiguration` com `EngineTranscribeMedicalSettings`.

## Etapa 2: escolha de uma região de transcrição
<a name="choose-region"></a>

Você precisa escolher uma AWS região para o serviço de transcrição. [Para obter informações sobre as AWS regiões disponíveis para o Amazon Transcribe e o Amazon Transcribe Medical, consulte a tabela de serviços regionais.AWS](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/)

 Em geral, a menor latência entre a região de mídia e a região de transcrição de uma reunião oferece a melhor experiência de usuário. Para obter a latência mais baixa, use a mesma região para mídia e transcrição sempre que possível. No entanto, você pode ter outros fatores a considerar ao selecionar uma região, como requisitos regulatórios ou as regiões em que você configurou o Amazon Transcribe ou o Amazon Transcribe Medical.

Os atributos do Amazon Transcribe e do Amazon Transcribe Medical, como vocabulários personalizados ou filtros de vocabulário, são específicos da região. Se você configurar qualquer um desses recursos, deverá fazê-lo de forma idêntica em todas as AWS regiões nas quais pretende usar a transcrição ao vivo. Como alternativa, você pode usar a mesma região do Amazon Transcribe para todas as reuniões.

Você pode especificar a região que o serviço de transcrição usa. Você faz isso adicionando o nome da região ao campo `Region` das configurações do mecanismo de transcrição ao chamar a API `StartMeetingTranscription`. Se você não especificar uma região, o SDK do Amazon Chime tentará usar o serviço de transcrição na região de mídia da reunião. Para que o SDK do Amazon Chime selecione a região do serviço de transcrição para você, especifique `auto` no campo `Region`. Quando você faz isso, o Amazon Chime seleciona a região do serviço de transcrição com base na região de mídia da reunião, conforme descrito nas tabelas abaixo. Para obter mais informações sobre a API `StartMeetingTranscription`, consulte [Iniciar e interromper a transcrição ao vivo do SDK do Amazon Chime](initiate-transcription.md) neste guia.

**nota**  
A região de transcrição selecionada pelo Amazon Chime SDK está sujeita a alterações, pois o AWS Amazon Chime SDK, o Amazon Transcribe e o Amazon Transcribe Medical disponibilizam mais regiões.

**Seleção automática de região do Amazon Transcribe**  



|  Região de mídia do SDK do Amazon Chime  |  Código da região  |  Região da transcrição  | 
| --- | --- | --- | 
|  Leste dos EUA (Ohio)  |  us-east-2  | us-east-2  | 
|  Leste dos EUA (Norte da Virgínia)  |  us-east-1  | us-east-1  | 
|  Oeste dos EUA (Norte da Califórnia)  |  us-west-1  | us-west-2 | 
|  Oeste dos EUA (Oregon)  |  us-west-2  | us-west-2  | 
|  África (Cidade do Cabo)**\$1**  |  af-south-1  | eu-west-2  | 
|  Ásia-Pacífico (Mumbai)  |  ap-south-1  | eu-west-2 | 
|  Ásia-Pacífico (Seul)  |  ap-northeast-2  | ap-northeast-2 | 
|  Ásia-Pacífico (Singapura)  |  ap-southeast-1  | ap-northeast-1 | 
|  Ásia-Pacífico (Sydney)  |  ap-southeast-2  | ap-southeast-2 | 
|  Ásia-Pacífico (Tóquio)  |  ap-northeast-1  | ap-northeast-1 | 
|  Canadá (Central)  |  ca-central-1  | ca-central-1 | 
|  Europa (Frankfurt)   |  eu-central-1  | eu-central-1  | 
|  Europa (Irlanda)  |  eu-west-1  | eu-west-1 | 
|  Europa (Londres)  |  eu-west-2  | eu-west-2  | 
|  Europa (Milão)**\$1**  |  eu-south-1  | eu-central-1  | 
|  Europa (Paris)  |  eu-west-3  | eu-central-1  | 
|  Europa (Estocolmo)  |  eu-north-1  | eu-central-1 | 
|  América do Sul (São Paulo)  |  sa-east-1  | sa-east-1 | 
|  GovCloud (Leste dos EUA)  |  us-gov-east-1  |  us-gov-west-1  | 
|  GovCloud (Oeste dos EUA)  |  us-gov-west-1  |  us-gov-west-1  | 

**Seleção automática de região do Amazon Transcribe Medical**  



|  Região de mídia do SDK do Amazon Chime  |  Código da região  |  Região da transcrição  | 
| --- | --- | --- | 
|  Leste dos EUA (Ohio)  |  us-east-2  | us-east-2 | 
|  Leste dos EUA (Norte da Virgínia)  |  us-east-1  | us-east-1 | 
|  Oeste dos EUA (Norte da Califórnia)  |  us-west-1  | us-west-2 | 
|  Oeste dos EUA (Oregon)  |  us-west-2  | us-west-2 | 
|  África (Cidade do Cabo)**\$1**  |  af-south-1  |  eu-west-1  | 
|  Ásia-Pacífico (Mumbai)  |  ap-south-1  | eu-west-1  | 
|  Ásia-Pacífico (Seul)  |  ap-northeast-2  | us-west-2 | 
|  Ásia-Pacífico (Singapura)  |  ap-southeast-1  | ap-southeast-2 | 
|  Ásia-Pacífico (Sydney)  |  ap-southeast-2  | ap-southeast-2 | 
|  Ásia-Pacífico (Tóquio)  |  ap-northeast-1  | us-west-2 | 
|  Canadá (Central)  |  ca-central-1  | ca-central-1 | 
|  Europa (Frankfurt)   |  eu-central-1  | eu-west-1 | 
|  Europa (Irlanda)  |  eu-west-1  | eu-west-1 | 
|  Europa (Londres)  |  eu-west-2  | us-east-1 | 
|  Europa (Milão)**\$1**  |  eu-south-1  | eu-west-1 | 
|  Europa (Paris)  |  eu-west-3  | eu-west-1 | 
|  Europa (Estocolmo)  |  eu-north-1  | eu-west-1 | 
|  América do Sul (São Paulo)  |  sa-east-1  | us-east-1 | 

**nota**  
Para usar a transcrição ao vivo em regiões marcadas com um asterisco (**\$1**), você deve primeiro ativar a região em sua conta da AWS . Para obter mais informações, consulte [Como habilitar uma região](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html) em Referência geral da AWS.

Para informações sobre regiões do e os endpoints para cada serviço, consulte:
+ [Regiões de mídia do SDK do Amazon Chime](https://docs.aws.amazon.com/chime-sdk/latest/dg/chime-sdk-meetings-regions.html)
+ [Endpoints e cotas do Amazon Transcribe](https://docs.aws.amazon.com/general/latest/gr/transcribe.html#transcribe_region)
+ [Endpoints e cotas do Amazon Transcribe Medical](https://docs.aws.amazon.com/general/latest/gr/transcribe-medical.html)

## Etapa 3: revisar as service quotas
<a name="transcribe-quotas"></a>

Cada reunião do SDK do Amazon Chime com transcrição ao vivo requer exatamente um stream HTTP/2 para o Amazon Transcribe ou o Amazon Transcribe Medical. Ambos os serviços têm service quotas regionais para o número de fluxos HTTP/2 simultâneos e para transações iniciais de fluxo por segundo. Para obter mais informações sobre as cotas, consulte [Diretrizes e cotas](https://docs.aws.amazon.com/transcribe/latest/dg/limits-guidelines.html) no *Guia do desenvolvedor do Amazon Transcribe*. Para obter informações sobre aumentos de cotas, consulte Service Quotas no AWS console.

# Iniciar e interromper a transcrição ao vivo do SDK do Amazon Chime
<a name="initiate-transcription"></a>

Use a API [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_StartMeetingTranscription.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_StartMeetingTranscription.html) do SDK do Amazon Chime para iniciar a transcrição da reunião aplicando uma `TranscriptionConfiguration` à reunião. O controlador do SDK do Amazon Chime encaminha a configuração para a reunião de forma assíncrona. O sucesso ou o fracasso de iniciar a transcrição da reunião é sinalizado por meio de uma mensagem via Amazon Simple Notification Service (Amazon SNS) e Amazon. EventBridge

**Como iniciar a transcrição**  
Este exemplo de mostra como iniciar a transcrição ao vivo com o 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"
        }
    }
}
```

Este exemplo de mostra como iniciar a transcrição ao vivo com o 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`: inicia a transcrição da reunião.  
`meetingId`: o ID da reunião, exibido pela [API CreateMeeting](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateMeeting.html#API_CreateMeeting_ResponseSyntax).  
`TranscriptionConfiguration`: encapsula os parâmetros para a transcrição ao vivo. Você deve especificar exatamente uma configuração, `EngineTranscribeSettings` ou `EngineTranscribeMedicalSettings`.

`EngineTranscribeSettings`: especifica o uso do Amazon Transcribe e transmite suas configurações ao [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` – obrigatório.  
`VocabularyFilterMethod`: opcional.  
`VocabularyFilterName`: opcional.  
`VocabularyName`: opcional.  
`Region`: opcional.  
`EnablePartialResultsStabilization`: opcional.  
`PartialResultsStability`: opcional.  
` ContentIdentificationType`: opcional.  
`ContentRedactionType`: opcional.  
`PiiEntityTypes `: opcional.  
`LanguageModelName`: opcional.

`EngineTranscribeMedicalSettings`: especifica o uso do Amazon Transcribe Medical e transmite suas configurações ao [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` – obrigatório.  
`Speciality` – obrigatório.  
`Type` – obrigatório.  
`VocabularyName`: opcional.  
`Region`: opcional.  
` ContentIdentificationType`: opcional.

**Respostas**  
O Amazon Transcribe e o Amazon Transcribe Medical recebem as seguintes respostas:
+ `OK` (200) com corpo vazio, se você aplicar com sucesso o `TranscriptionConfiguration` à reunião.

**Mensagens de erro**  
O Amazon Transcribe e o Amazon Transcribe Medical recebem as seguintes mensagens de erro:
+ **BadRequestException (400):** Os parâmetros de entrada não correspondem às restrições do serviço.
+ **ForbiddenException (403):** O cliente está permanentemente proibido de fazer a solicitação.
+ **NotFoundException (404):** O `meetingId` não existe.
+ **ResourceLimitExceededException (400):** A solicitação excede o limite de recursos. Por exemplo, muitas reuniões têm a transcrição ao vivo ativada.
+ **ServiceFailureException (500):** O serviço encontrou um erro inesperado.
+ **ServiceUnavailableException (503):** O serviço não está disponível no momento.
+ **ThrottledClientException (429):** O cliente excedeu seu limite de taxa de solicitação.
+ **UnauthorizedClientException (401):** O cliente não está atualmente autorizado a fazer a solicitação.

Chamar `StartMeetingTranscription` pela segunda vez atualiza a `TranscriptionConfiguration` aplicada à reunião.

**Como interromper a transcrição**  
Use a API [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) para remover a `TranscriptionConfiguration` para um `meetingID` específico e finalizar a transcrição da reunião. O encerramento de uma reunião interrompe a transcrição automaticamente.

Este exemplo mostra a sintaxe da solicitação que invoca a `StopMeetingTranscription`.

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

**Respostas**  
O Amazon Transcribe e o Amazon Transcribe Medical recebem as seguintes respostas:
+ `OK` (200) com corpo vazio, se você remover com sucesso a `TranscriptionConfiguration` da reunião.

**Mensagens de erro**  
O Amazon Transcribe e o Amazon Transcribe Medical recebem as seguintes mensagens de erro:
+ **BadRequestException (400):** Os parâmetros de entrada não correspondem às restrições do serviço.
+ **ForbiddenException (403):** O cliente está permanentemente proibido de fazer a solicitação.
+ **NotFoundException (404):** O `meetingId` não existe.
+ **ServiceFailureException (500):** O serviço encontrou um erro inesperado.
+ **ServiceUnavailableException (503):** O serviço não está disponível no momento.
+ **ThrottledClientException (429):** O cliente excedeu seu limite de taxa de solicitação.
+ **UnauthorizedClientException (401):** O cliente não está atualmente autorizado a fazer a solicitação.

## Parâmetros de transcrição ao vivo do SDK do Amazon Chime
<a name="transcription-parameters"></a>

O Amazon Transcribe e o Amazon Transcribe APIs Medical oferecem vários parâmetros ao iniciar a transcrição do streaming, como e. [https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html) É possível usar esses parâmetros na API `StartMeetingTranscription`, a menos que o SDK do Amazon Chime predetermine o valor do parâmetro. Por exemplo, os parâmetros `MediaEncoding` e `MediaSampleRateHertz` e não estão disponíveis porque o SDK do Amazon Chime os define automaticamente.

O Amazon Transcribe e o Amazon Transcribe Medical validam os parâmetros, o que permite que você use novos valores de parâmetros assim que estiverem disponíveis. Por exemplo, se o Amazon Transcribe Medical lançar o suporte para um novo idioma, você só precisará especificar o valor do novo idioma no parâmetro `LanguageCode`. 

# Noções básicas sobre os eventos de transcrição ao vivo do SDK do Amazon Chime
<a name="transcription-events"></a>

O SDK do Amazon Chime envia eventos do ciclo de vida da transcrição, que você pode usar para acionar notificações e iniciar fluxos de trabalho posteriores. Alguns exemplos de uso dos eventos de transcrição incluem:
+ Como medir a adoção da transcrição ao vivo em reuniões do SDK do Amazon Chime
+ Preferências de idioma de rastreamento

Você pode enviar eventos para a Amazon EventBridge, Amazon Simple Notification Service e Amazon Simple Queue Service. Para obter mais informações, consulte [Eventos de AWS serviços](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-service-event.html) no *Guia do EventBridge usuário da Amazon*.

## A transcrição da reunião do SDK do Amazon Chime foi iniciada
<a name="transcript-start"></a>

O SDK do Amazon Chime envia esse evento quando a transcrição da reunião é iniciada ou quando [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_TranscriptionConfiguration.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_TranscriptionConfiguration.html) é atualizada. 

**Exemplo: dados do evento**  
A seguir estão dados de exemplo para esse evento.

```
{
    "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)": "{...}"
    }
}
```

## A transcrição da reunião do SDK do Amazon Chime foi paralisada
<a name="transcript-stop"></a>

O SDK do Amazon Chime envia esse evento quando a transcrição da reunião é paralisada.

**Exemplo: dados do evento**  
A seguir estão dados de exemplo para esse evento.

```
{
    "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)": "{...}"
    }
}
```

## A transcrição da reunião do SDK do Amazon Chime foi interrompida
<a name="transcript-interrupted"></a>

O SDK do Amazon Chime envia esse evento se a transcrição da reunião é interrompida.

**Exemplo: dados do evento**  
A seguir estão dados de exemplo para esse evento.

```
{
    "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)": "{...}"
    }
}
```

## A transcrição da reunião do SDK do Amazon Chime foi retomada
<a name="transcript-resumed"></a>

O SDK do Amazon Chime envia esse evento se a transcrição da reunião é retomada após uma interrupção.

**Exemplo: dados do evento**  
A seguir estão dados de exemplo para esse evento.

```
{
    "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)": "{...}"
    }
}
```

## A transcrição da reunião do SDK do Amazon Chime falhou
<a name="transcript-failed"></a>

O SDK do Amazon Chime envia esse evento se a transcrição da reunião falhar ao iniciar ou não for retomada após uma interrupção.

**Exemplo: dados do evento**  
A seguir estão dados de exemplo para esse evento.

```
{
    "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)": "{...}"
    }
}
```

# Noções básicas sobre os eventos de transcrição ao vivo do SDK do Amazon Chime
<a name="process-msgs"></a>

O serviço do SDK do Amazon Chime compartilha informações de transcrição com os participantes enviando objetos `TranscriptEvent` em mensagens de dados. Um `TranscriptEvent` entrega uma `Transcript` ou um `TranscriptionStatus`. 

Uma `Transcript` inclui resultados com registro de data e hora, palavras atribuídas pelo usuário e pontuação. Um resultado pode ser “parcial”; nesse caso, o sistema geralmente o atualiza em um `TranscriptEvent` posterior. Isso permite que você veja as transcrições rapidamente e aplique atualizações em linha posteriormente, conforme necessário.

Um `TranscriptStatus` pode realizar um dos eventos `TranscriptionStatusType`, listados no exemplo na próxima seção.

As versões mais recentes do Amazon SDKs Chime incluem tipos de dados adicionais e funções auxiliares para processamento comum a. `TranscriptEvent`

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

Este exemplo mostra um evento de transcrição típico.

```
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;
}
```

## Diretrizes de dados
<a name="data-guidelines"></a>

Lembre-se dessas diretrizes à medida que avança.

1. `transcription.results` pode apresentar mais de um resultado.

1. Se `transcription.results[i].isPartial = true`, pode haver uma atualização para todo o resultado. A atualização é provável, mas não garantida. A atualização tem o mesmo `transcript.result[i].resultId`. Se você quiser evitar transcrições de baixa confiança, pode ignorar completamente os resultados parciais. Se quiser resultados de baixa latência, você pode exibir resultados parciais e, em seguida, sobrescrever completamente quando a atualização chegar.

1. `transcription.results[i].alternatives` sempre contém pelo menos uma entrada. Se contiver mais de uma entrada, a entrada mais confiável será a primeira na lista. Na maioria dos casos, você pode pegar a primeira entrada em `transcription.results[i].alternatives` e ignorar as outras.

1. `transcription.results[i].alternatives[j].items` inclui uma entrada para cada palavra ou sinal de pontuação.

1. O conteúdo `transcription.results[i].alternatives[j].items[k].` é o que foi falado.

1. `transcription.results[i].alternatives[j].items[k].attendee` é a atribuição do conteúdo pelo usuário (quem).

1. `transcription.results[i].alternatives[j].items[k].startTimeMs` é o "quando" do conteúdo. Isso permite a word-by-word renderização da transcrição atribuída pelo usuário em diferentes usuários na ordem em que as palavras foram faladas.

1. Geralmente, o campo `transcription.results[i].alternatives[j].items[k].endTimeMs` pode ser ignorado, mas é fornecido para determinar quem disse o quê e quando.

1. `transcription.results[i].alternatives[j].items[k].vocabularyFilterMatch` é verdadeiro se o conteúdo corresponder a uma palavra no filtro, caso contrário, é falso.

1. `transcription.results[i].alternatives[j].items[k].confidence` é um valor entre 0 e 1. Isso indica a confiança do mecanismo de que o conteúdo do item corresponde corretamente à palavra falada, com 0 sendo a menor confiança e 1 sendo a maior confiança.

1. `transcription.results[i].alternatives[j].items[k].stable` indica se a palavra atual será alterada em futuras atualizações parciais de resultados. Esse valor só pode ser verdadeiro se você ativar o atributo de estabilização parcial de resultados configurando `EnablePartialResultsStabilization` como `true` em sua solicitação.

1. `transcription.results[i].alternatives[j].entities` inclui uma entrada para cada entidade que os atributos de identificação ou redação de conteúdo detectam. A lista só será preenchida se você ativar a Identificação ou Redação de conteúdo. Uma entidade pode ser dados como informações de identificação pessoal ou informações de saúde. Você pode usar entidades para destacar ou agir sobre palavras de interesse durante a transcrição.

1. `transcription.results[i].alternatives[j].entities[k].category` é a categoria da entidade. É igual ao tipo de identificação ou redação de conteúdo, como "PII" ou "PHI", que é fornecido na solicitação.

1. `transcription.results[i].alternatives[j].entities[k].confidence` mede o quão forte é o mecanismo para que o conteúdo específico seja realmente uma entidade. Observe que isso é diferente da confiança no nível do item, que mede a confiança do mecanismo na exatidão das palavras em si.

1. `transcription.results[i].alternatives[j].entities[k].content` é o texto real que compõe a entidade. Isso pode ser vários itens, como um endereço.

1. `transcription.results[i].alternatives[j].entities[k].startTimeMs` captura a hora em que a entidade começou a ser falada.

1. `transcription.results[i].alternatives[j].entities[k].endTimeMs` captura a hora em que a entidade parou de ser falada.

1. `transcription.results[i].alternatives[j].entities[k].type` só é compatível com o mecanismo de Transcrição e fornece o subtipo da entidade. Esses são valores como `ADDRESS`, `CREDIT\$1DEBIT\$1NUMBER` e assim por diante.

## Registrar manipuladores de eventos para TranscriptEvents
<a name="register-handler"></a>

Os exemplos a seguir usam a biblioteca cliente do Amazon Chime SDK para. JavaScript No entanto, o padrão é consistente em todo o Amazon Chime SDKs.

O `TranscriptionController` no `RealtimeController` e no `RealtimeControllerFacade` inclui funções específicas para adicionar um manipulador que processa `TranscriptionEvents`:

```
/** 
 * Returns the [[TranscriptionController]] for this real-time controller. 
 */
readonly transcriptionController?: TranscriptionController;
```

O `TranscriptionController` tem duas funções para gerenciar a assinatura e o cancelamento da assinatura de retornos de chamada de `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;
}
```

**Como usar o `TranscriptionController` opcional**  
Nós fornecemos uma implementação-padrão da interface `TranscriptionController` chamada `DefaultTranscriptionController`. A implementação-padrão em `DefaultRealtimeController` e `DefaultAudioVideoFacade` retorna um objeto `DefaultTranscriptionController`:

```
/** 
get transcriptionController(): TranscriptionController {
   return this.realtimeController.transcriptionController;
}
```

O `DefaultRealtimeController` também usa um objeto `TranscriptionController` opcional em seu construtor. Isso permite que você anule o comportamento `DefaultTranscriptionController`. Os aplicativos do desenvolvedor assinam e cancelam a assinatura de um ou mais retornos de chamada por meio do objeto `TranscriptionController` do objeto `AudioVideoFacade`:

```
// Subscribe
this.audioVideo.transcriptionController?.subscribeToTranscriptEvent(this.transcriptEventHandler);

// Unsubscribe
this.audioVideo.transcriptionController?.unsubscribeFromTranscriptEvent(this.transcriptEventHandler););
```

# Processar um evento de transcrição ao vivo do SDK do Amazon Chime
<a name="delivery-examples"></a>

Os exemplos a seguir mostram como processar um `TranscriptEvent` recebido.

**nota**  
O resultado exato depende de vários fatores, incluindo a rapidez com que as pessoas falam e quando fazem uma pausa.

## Exemplo 1: StartMeetingTranscription
<a name="example-1"></a>

Este exemplo mostra uma operação de `StartMeetingTranscription` típica.

```
meeting.StartMeetingTranscription(
    { EngineTranscribeSettings: { Languagecode: ‘en-US’ } } );
```

A operação gera um `TranscriptEvent`.

```
{   
    status: {        
        type: 'started',        
        eventTimeMs: 1620118800000,        
        transcriptionConfig: {                    
            LanguageCode: 'en-US'        
        }    
    }
}
```

## Exemplo 2: um resultado de transcrição parcial
<a name="example-2"></a>

Neste exemplo, um participante diz: "A rápida raposa marrom pula sobre o cachorro preguiçoso." Observe que neste exemplo, o valor `isPartial` é `true`. Se você examinar mais profundamente a mensagem, verá que o sistema processou a palavra "raposa" como "fatos". O sistema usa o mesmo `resultId` para atualizar a transcrição. 

```
{
    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
                }]
            }]
        }]
    }
}
```

## Exemplo 3: um resultado de transcrição final
<a name="example-3"></a>

No caso de uma transcrição parcial, o sistema processa a frase novamente. Esse exemplo tem um valor `isPartial` de `false`, e a mensagem contém "raposa" em vez de "fatos". O sistema reemite a mensagem usando o mesmo 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
                }]
            }]
        }]
    }
}
```

# Analisar transcrições do SDK do Amazon Chime
<a name="parse-transcripts"></a>

Use o comando a seguir para analisar o conteúdo da transcrição de uma mensagem de transcrição. O comando analisa frases completas dos arquivos 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"])
```

# Usar replicação de mídia para reuniões do SDK do Amazon Chime
<a name="media-replication"></a>

Você pode usar a replicação de mídia para vincular uma sessão WebRTC principal a várias sessões de réplica para alcançar públicos maiores. Cada sessão de mídia WebRTC suporta 250 conexões, e você pode replicar uma sessão principal em várias sessões de réplica. Os participantes conectados a uma sessão de réplica recebem somente o áudio e o vídeo dos apresentadores conectados à sessão principal. Eles não têm conhecimento dos participantes conectados à sessão replicada, o que torna a replicação de mídia ideal para webinars e outros casos de uso em que a privacidade é desejada.

A imagem a seguir mostra a replicação de mídia entre uma sessão principal, com apresentadores compartilhando áudio e vídeo, e uma sessão de réplica, com participantes consumindo a mídia.

![\[Apresentadores compartilhando em uma sessão principal.\]](http://docs.aws.amazon.com/pt_br/chime-sdk/latest/dg/images/replication-1.png)


**nota**  
A service quota *Chime SDK Meetings - reuniões de réplica por reunião principal* tem um valor-padrão de 4, e você pode aumentar esse limite mediante solicitação. Para obter mais informações sobre as cotas, consulte [Service quotas da AWS](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html) na *Referência geral da AWS *.

**Topics**
+ [Participantes interativos](#interactive-participants)
+ [Participantes globais](#global-participants)
+ [Ciclo de vida da sessão](#session-lifecycle)

## Participantes interativos
<a name="interactive-participants"></a>

Os participantes conectados a uma sessão de réplica podem ter acesso para participar da sessão principal. Como todos usam uma conexão WebRTC, apresentadores e participantes não sofrem atrasos na transcodificação. Quando os participantes alternam entre sessões principais e replicadas, eles reutilizam suas conexões WebRTC, então a troca é extremamente rápida. Isso permite que os participantes contribuam com a conversa ao vivo sem perder nenhum conteúdo.

A imagem a seguir mostra um participante em uma sessão de réplica usando sua conexão WebRTC para alternar para a sessão principal.

![\[Diagrama mostrando dois participantes passando de uma reunião de réplica para a reunião principal.\]](http://docs.aws.amazon.com/pt_br/chime-sdk/latest/dg/images/replication-2.png)


## Participantes globais
<a name="global-participants"></a>

Você pode escolher a AWS região para cada sessão de mídia do WebRTC. Isso permite que você crie sessões de réplica em regiões mais próximas de seus participantes do que na região da sessão principal. Quando você faz isso, a mídia flui da sessão principal para as sessões de réplica na rede da AWS e, em seguida, da sessão de réplica para o participante pela Internet. Ao apresentar para um público global, ter sessões de réplica perto dos participantes pode ajudar a garantir que a mídia viaje pelo mundo na rede da AWS, em vez da Internet, para uma melhor experiência de reunião.

A imagem a seguir mostra uma sessão principal e sessões replicadas em diferentes regiões.

![\[Diagrama mostrando participantes em três regiões assistindo a uma apresentação.\]](http://docs.aws.amazon.com/pt_br/chime-sdk/latest/dg/images/replication-3.png)


## Ciclo de vida da sessão
<a name="session-lifecycle"></a>

Como criar uma sessão  
Você usa o [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) ou [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 para criar sessões de mídia WebRTC. Por padrão, eles APIs criam uma sessão primária, a menos que você crie especificamente uma sessão de réplica.  
Você cria uma sessão de réplica especificando o `MeetingId` da sessão principal como o `PrimaryMeetingId` na `CreateMeeting` ou na chamada de API de `CreateMeetingWithAttendees`.  
Se você especificar o `MeetingId` de uma sessão de réplica como o `PrimaryMeetingId`, a chamada de API falhará.

Como criar participantes  
 Para criar as credenciais de participantes necessárias para participar de uma sessão de mídia do WebRTC, você pode usar o [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), ou [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.   
Ao criar sessões para um grande número de participantes, use `CreateMeetingWithAttendees` ou `BatchCreateAttendee` para minimizar o número de chamadas de API necessárias.

Como excluir participantes  
Você usa o [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 para revogar as credenciais de um participante para uma sessão de mídia WebRTC. Se o participante estiver conectado à sessão, ele será desconectado e não poderá voltar.  
Quando você usa o [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 para excluir uma sessão de mídia do WebRTC, a API exclui automaticamente todos os participantes e você não precisa ligar. `DeleteAttendee`

Como alternar entre sessões  
Para permitir que um participante mude de uma sessão de réplica para uma sessão principal, você deve criar credenciais para ele na reunião principal. Consulte *Criar participantes* no início desta lista. Use as credenciais com o método `promoteToPrimaryMeeting` na biblioteca cliente do SDK do Amazon Chime para mudar para a sessão principal.  
Para transferir os participantes de volta para uma sessão de réplica, use o `demoteFromPrimaryMeeting` método na biblioteca cliente do Amazon Chime SDK ou use o [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 para invalidar suas credenciais de sessão primária.  
Um apresentador que se conecta diretamente a uma sessão principal não pode mudar para uma sessão de réplica.
Para obter mais informações sobre alternar entre sessões, consulte a documentação da biblioteca cliente:  
+ [Amazon Chime SDK](https://github.com/aws/amazon-chime-sdk-android) para Android ativado. GitHub
+ [Amazon Chime SDK](https://github.com/aws/amazon-chime-sdk-ios) para iOS ativado. GitHub
+ [Biblioteca cliente do Amazon Chime SDK](https://github.com/aws/amazon-chime-sdk-js) para um. JavaScript GitHub

Como excluir uma sessão  
Você usa o [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 para excluir sessões de mídia do WebRTC.  
Se você excluir uma sessão principal, a API `DeleteMeeting` excluirá automaticamente todas as sessões de réplica anexadas. Então, para excluir todas as sessões, basta excluir a principal.  
O serviço exclui automaticamente uma sessão principal se nenhum participante se conectar por 5 minutos contínuos. O serviço só exclui sessões de réplica automaticamente quando exclui uma sessão principal. Isso significa que você pode criar sessões de réplica ao criar uma sessão principal, e as réplicas estarão disponíveis durante a sessão principal.

# Solucionar problemas e depurar reuniões do SDK do Amazon Chime
<a name="troubleshoot-sdk-meetings"></a>

Use os tópicos a seguir para ajudar a diagnosticar e solucionar problemas que você encontre ao trabalhar com o SDK do Amazon Chime. 

**Topics**
+ [Noções básicas sobre os requisitos do sistema para reuniões do SDK do Amazon Chime](ts-supported-browsers.md)
+ [Configurar o registro em log e o monitoramento de reuniões do SDK do Amazon Chime](ts-log-monitor.md)
+ [Solucionar problemas em reuniões do SDK do Amazon Chime](self-troubleshooting.md)
+ [Noções básicas sobre problemas comuns com reuniões do SDK do Amazon Chime](common-issues.md)

# Noções básicas sobre os requisitos do sistema para reuniões do SDK do Amazon Chime
<a name="ts-supported-browsers"></a>

Como parte da solução de problemas, certifique-se de codificar para navegadores compatíveis. Para obter uma lista atual dos navegadores, versões e sistemas operacionais compatíveis, consulte [Requisitos do sistema do SDK do Amazon Chime](meetings-sdk.md#mtg-browsers). O [guia do desenvolvedor e FAQs o Github](https://github.com/aws/amazon-chime-sdk-js/issues/1059) abordam o navegador e outros problemas de compatibilidade. Além disso, familiarize-se com os [problemas conhecidos do navegador](https://aws.github.io/amazon-chime-sdk-js/modules/faqs.html#known-browser-issues) GitHub e com quaisquer soluções alternativas.

Se você acabou de começar com o Amazon Chime SDK Meetings, o [Builder Journey do Amazon Chime SDK](https://github.com/aws/amazon-chime-sdk-js/blob/main/guides/20_Builders_Journey.md) fornece um step-by-step guia para criar com o Amazon Chime SDK, além das ferramentas necessárias para a solução de problemas.

# Configurar o registro em log e o monitoramento de reuniões do SDK do Amazon Chime
<a name="ts-log-monitor"></a>

O registro de log ajuda você a coletar informações, como eventos de reuniões do lado do servidor e logs do console do navegador do lado do cliente.

O Amazon Chime SDK fornece eventos de reunião do lado do servidor que você pode enviar para a Amazon e os registros de eventos da Amazon. EventBridge CloudWatch Você pode criar CloudWatch métricas e insights e usá-los em seu painel para monitoramento. A postagem do blog [Logging and Monitoring of Amazon Chime SDK events no lado do servidor](https://aws.amazon.com/blogs/business-productivity/server-side-logging-and-monitoring-of-amazon-chime-sdk-events/) explica como habilitar as métricas, os insights e o CloudWatch painel.

O SDK do Amazon Chime fornece eventos do lado do cliente para problemas de qualidade de áudio e vídeo, largura de banda da rede e conectividade. A postagem no blog de [eventos Monitoramento e solução de problemas com o Amazon Chime SDK Meeting](https://aws.amazon.com/blogs/business-productivity/monitoring-and-troubleshooting-with-amazon-chime-sdk-meeting-events/) explica como habilitar CloudWatch métricas, insights e painel para falhas de junção, problemas de qualidade de áudio e falhas na configuração do microfone e da câmera. Para obter informações adicionais sobre eventos de reunião, consulte [Eventos de reunião](https://github.com/aws/amazon-chime-sdk-js/blob/main/guides/06_Meeting_Events.md) no Github. 



## Opções para métricas de solução de problemas
<a name="ts-cloudwatch-options"></a>

Para coletar eventos de solução de problemas, você tem as opções a seguir.
+ Envie métricas em todos os eventos 
+ Eventos em lote a cada N segundos 
+ Envie métricas no final da reunião 
+ Nível de registro de log para logs do console do navegador

## Métricas recomendadas
<a name="ts-cloudwatch-metrics"></a>

No mínimo, você deve coletar e gerar log das seguintes métricas.
+ Plataforma e versão do SDK
+ Versão do navegador
+ Sistema operacional
+ Núcleos lógicos
+ Reunião iniciada
+ Reunião encerrada
+ Participante ingressou
+ Participante saiu
+ Participantes caíram

Além disso, dependendo dos problemas que você enfrenta, as métricas a seguir podem fornecer informações sobre problemas de conectividade, largura de banda e qualidade. Você pode registrar todas as ocorrências dessas métricas ou apenas contá-las. A contagem pode fornecer uma visão resumida dos problemas subjacentes:
+ connectionDidSuggestStopVideo
+ connectionDidBecomeBom
+ connectionDidBecomePobre
+ Tempo de ingresso do participante > t segundos
+ MeetingStartFailed
+ MeetingFailed

## Como habilitar o registro de log do lado do cliente
<a name="client-side-logging"></a>

Você pode habilitar os registros de log do navegador no nível de `INFO` do navegador passando `LogLevel.INFO` para o objeto `ConsoleLogger`.

```
const logger = new ConsoleLogger('MyLogger', LogLevel.INFO);const meetingSession = new DefaultMeetingSession(configuration,logger,deviceController); 
```

Você também pode usar o `POSTLogger` componente no SDK do Amazon Chime JavaScript para capturar logs do navegador em seu back-end, como o Amazon Logs. CloudWatch `POSTLogger`faz `HTTP POST` solicitações para carregar os registros do navegador para o URL fornecido no [POSTLoggerconstrutor](https://aws.github.io/amazon-chime-sdk-js/classes/postlogger.html). Por exemplo, a [demonstração sem servidor do Amazon Chime SDK GitHub](https://github.com/aws/amazon-chime-sdk-js/blob/main/demos/browser/app/meetingV2/meetingV2.ts#L1773) usa o `POSTLogger` para enviar registros do navegador ao Amazon CloudWatch Logs para futuras investigações.

## Como habilitar o registro de log do lado do servidor
<a name="server-side-logging"></a>

O Amazon Chime SDK para JavaScript também chama o método `eventDidReceive` observador com os principais eventos de reunião, como e. `MeetingStartFailed` `MeetingFailed` Os eventos de reunião geralmente incluem motivos específicos para falhas. Por exemplo, digamos que um grande grupo de clientes tenha falhas. Seu aplicativo web pode coletar esses eventos de reunião e depois compartilhá-los conosco para solucionar a causa raiz. Para obter mais informações sobre eventos de reunião, consulte o [guia de eventos da reunião e a postagem do blog sobre GitHub](https://aws.github.io/amazon-chime-sdk-js/modules/meetingevents.html) [Monitoramento e solução de problemas com eventos de reunião do Amazon Chime SDK](https://aws.amazon.com/blogs/business-productivity/monitoring-and-troubleshooting-with-amazon-chime-sdk-meeting-events/).

# Solucionar problemas em reuniões do SDK do Amazon Chime
<a name="self-troubleshooting"></a>

As seções deste tópico explicam várias maneiras de resolver automaticamente problemas com as reuniões do SDK do Amazon Chime.

**Topics**
+ [Verificação FAQs e problemas conhecidos](#check-faqs)
+ [Como verificar o acesso à rede](#net-acess)

## Verificação FAQs e problemas conhecidos
<a name="check-faqs"></a>

Verifique essas FAQs e as listas de problemas conhecidos GitHub para obter conselhos sobre solução de problemas e depuração.
+ [SDK do Amazon Chime — - Reuniões JavaScript ](https://github.com/aws/amazon-chime-sdk-js/blob/main/guides/07_FAQs.md#meetings)
+ [Amazon Chime SDK — — Mídia JavaScript ](https://github.com/aws/amazon-chime-sdk-js/blob/main/guides/07_FAQs.md#media)
+ [Amazon Chime SDK — - Rede JavaScript ](https://github.com/aws/amazon-chime-sdk-js/blob/main/guides/07_FAQs.md#networking)
+ [SDK do Amazon Chime – Áudio e vídeo](https://github.com/aws/amazon-chime-sdk-js/blob/main/guides/07_FAQs.md#audio-and-video)

## Como verificar o acesso à rede
<a name="net-acess"></a>

As empresas geralmente têm firewalls de rede que restringem o acesso a portas específicas ou conexões a intervalos de endereços IP fora da rede. As seções a seguir explicam algumas das maneiras pelas quais você pode verificar o acesso à rede.

**Topics**
+ [Validando AWS sub-redes e portas do SDK e do Amazon Chime SDK](#subnets-ports)
+ [Como usar aplicativos de demonstração para reproduzir problemas](#repro-on-demo-apps)
+ [Como usar o Meeting Readiness Checker](#ready-checker)

### Validando AWS sub-redes e portas do SDK e do Amazon Chime SDK
<a name="subnets-ports"></a>

Os aplicativos que usam o SDK do Amazon Chime utilizam duas camadas, servidor e cliente. A camada do servidor usa o AWS SDK e tem manipuladores de reuniões do lado do servidor. O nível do cliente usa o cliente SDKs.

O AWS SDK é usado para chamar servidores APIs como [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). Eles APIs se conectam aos endpoints de serviço AWS globais nas `us-gov-west-1` regiões `us-east-1``us-west-2`,`ap-southeast-1`,,`eu-central-1`,`us-gov-east-1`, e. A página [Intervalos de endereços IP AWS](https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html) na *Referência geral AWS * lista os intervalos de endereços IP para cada região. Para obter mais informações sobre os endpoints e service quotas, consulte [Endpoints e cotas de SDK do Amazon Chime](https://docs.aws.amazon.com/general/latest/gr/chime-sdk.html).

Clientes SDKs, como o Amazon Chime SDK para JavaScript, se conectam aos endpoints de serviço no domínio. `*.chime.aws` 

Use as seguintes validações para garantir que você tenha permissões de rede:
+ Execute o [Amazon Chime SDK Meeting Readiness Checker](https://github.com/aws/amazon-chime-sdk-js#meeting-readiness-checker) GitHub para verificar se você pode acessar sua rede e portas.
+ Verifique se você pode resolver o domínio \$1.chime.aws da sua rede ou da rede do seu usuário final. 
+ Certifique-se de que seu firewall permita conexões com o intervalo de AWS IP via porta TCP 443 para comandos de controle e porta UDP 3478 para mídia. 

### Como usar aplicativos de demonstração para reproduzir problemas
<a name="repro-on-demo-apps"></a>

Como prática recomendada, inicie o processo de depuração tentando reproduzir seu problema em um dos aplicativos de demonstração. Isso permite que a equipe de serviço localize onde o problema pode estar. Se você não conseguir reproduzir o problema com um aplicativo de demonstração, poderá revisar o código do aplicativo para ver como ele implementou o caso de uso relevante.




| SDK do Amazon Chime | Atributo | Recursos do aplicativo de demonstração | 
| --- | --- | --- | 
| JavaScript SDK | Reuniões | [Instruções de demonstração](https://github.com/aws/amazon-chime-sdk-js/tree/main/demos/serverless), [código-fonte](https://github.com/aws/amazon-chime-sdk-js/tree/main/demos/browser) | 
| Componentes do React | Reuniões |   [Instruções de demonstração](https://github.com/aws-samples/amazon-chime-sdk/tree/main/apps/meeting) [código-fonte](https://github.com/aws-samples/amazon-chime-sdk/tree/main/apps/meeting/src)   | 
| Chat de reunião | Sistema de mensagens |   [Publicação do blog](https://aws.amazon.com/blogs/business-productivity/build-meeting-features-into-your-amazon-chime-sdk-messaging-application/), [instruções de demonstração](https://github.com/aws-samples/amazon-chime-sdk/tree/main/apps/chat), [código-fonte](https://github.com/aws-samples/amazon-chime-sdk/tree/main/apps/chat/src)   | 
| iOS/Android | Reuniões |  (Publicação do blog) [ Como criar um aplicativo de reunião no Android usando o SDK do Amazon Chime](https://aws.amazon.com/blogs/business-productivity//building-a-meeting-application-on-android-using-the-amazon-chime-sdk/) (Publicação do blog) [ Como criar um aplicativo de reunião no iOS usando o SDK do Amazon Chime](https://aws.amazon.com/blogs/business-productivity/building-a-meeting-application-on-ios-using-the-amazon-chime-sdk/)   | 
| Áudio PSTN | Chamada de entrada |   [Publicação do blog](https://github.com/aws-samples/amazon-chime-sma-update-call) [código-fonte](https://github.com/aws-samples/amazon-chime-sma-update-call)   | 

### Como usar o Meeting Readiness Checker
<a name="ready-checker"></a>

Use o [Amazon Chime SDK Meeting Readiness Checker](https://github.com/aws/amazon-chime-sdk-js#meeting-readiness-checker) ativado. GitHub O verificador ajuda a verificar os dispositivos de áudio e vídeo e as conexões do usuário. Você pode apresentar os resultados aos seus usuários finais usando pass/fail estátuas que expõem a causa raiz de qualquer problema.

# Noções básicas sobre problemas comuns com reuniões do SDK do Amazon Chime
<a name="common-issues"></a>

As seções a seguir fornecem métodos de solução de problemas comuns em reuniões.

**Topics**
+ [Problemas de conectividade](#connectivity-issues)
+ [Problemas de qualidade de áudio e vídeo](#a-v-quality)
+ [Verificar as cotas do SDK e o controle de utilização da API para reuniões do SDK do Amazon Chime](quotas-throttling.md)
+ [Abrir casos de suporte para reuniões do SDK do Amazon Chime](open-support-cases.md)

## Problemas de conectividade
<a name="connectivity-issues"></a>

Para problemas de conectividade, consulte [Como verificar o acesso à rede](self-troubleshooting.md#net-acess).

## Problemas de qualidade de áudio e vídeo
<a name="a-v-quality"></a>

Problemas de qualidade de áudio e vídeo podem ter várias causas. Dois motivos principais para uma audio/video qualidade abaixo do ideal são a largura de banda da rede e o desempenho do dispositivo. Para obter informações detalhadas sobre os diferentes desafios e como eles afetam a audio/video qualidade, consulte [Qualidade, largura de banda e conectividade ativada *GitHub*](https://aws.github.io/amazon-chime-sdk-js/modules/qualitybandwidth_connectivity.html). Este artigo descreve diferentes eventos e métricas que podem ser monitorados para detectar problemas de largura de banda e possíveis mitigações.

Você pode escolher uma região de mídia mais próxima do público de destino da sessão da reunião. Para entender como escolher uma região de mídia ideal, consulte Usando regiões de reunião (https://docs.aws.amazon.com/chime-sdk/latest/dg/chime- sdk-meetings-regions .html).

Dependendo da largura de banda disponível para um participante da reunião, o SDK do Amazon Chime ajusta a qualidade de vídeo do vídeo que está sendo política. received/uploaded. To understand how you can control the video quality for different video layouts, visit Managing Video Quality for different Video Layouts (https://aws.github.io/amazon-chime-sdk-js/modules/videolayout.html). This article describes video lifecycle management and uplink/downlink 

**Considerações sobre resolução de vídeo**
+ A resolução-padrão para upload de vídeo é 540p e 15fps a 1400 kbps. Dependendo da largura de banda, você pode reduzir essa resolução e a taxa de quadros.
+ Com base na largura de banda do receptor disponível, determine quantos blocos de vídeo serão exibidos. Não ultrapasse 6 Mbps em todos os blocos de vídeo e compartilhamento de conteúdo. Os usuários finais veem blocos de vídeo pretos quando não têm largura de banda suficiente.

**Como usar políticas de largura de banda de uplink e downlink de vídeo**  
O SDK do Amazon Chime fornece as seguintes políticas de largura de banda.
+ NScaleVideoUplinkBandwidthPolicy — implementa parâmetros de captura e codificação quase iguais aos usados pelos clientes de desktop, web e dispositivos móveis.
+ AllHighestVideoBandwidthPolicy — Sempre assine o stream de vídeo da mais alta qualidade.
+ NoVideoDownlinkBandwidthPolicy — Desativa o vídeo quando a largura de banda cai abaixo de um determinado limite.
+ VideoPriorityBasedPolicy — Prioriza o áudio sobre o vídeo em casos de baixa largura de banda.
+ VideoAdaptiveProbePolicy

# Verificar as cotas do SDK e o controle de utilização da API para reuniões do SDK do Amazon Chime
<a name="quotas-throttling"></a>

A página de [endpoints e cotas do SDK do Amazon Chime](https://docs.aws.amazon.com/general/latest/gr/chime-sdk.html) lista as service quotas, as taxas de API e se você pode ajustá-las. Use a página [Service quota do console da AWS](https://console.aws.amazon.com/servicequotas/home/services/chime/quotas) para solicitar ajustes de cota.

**Como ajustar suas taxas de API**  
Os aplicativos que excedem suas taxas de API recebem o Código de Status HTTP 429 e mensagens `ThrottledClientException`. Você pode ajustar suas taxas de API, mas antes disso, verifique se há bugs em seu aplicativo que possam esgotar essas taxas. Por exemplo, você pode criar reuniões em um loop ou criar reuniões e não limpar.

Dependendo de como você cria reuniões, pode ser necessário modificar seu código. Por exemplo, substitua `CreateMeeting` e `CreateAttendee` por: 
+ [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): cria até dez participantes por reunião.
+ [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): cria até cem participantes por reunião.

Você pode armazenar os participantes criados em um banco de dados, extrair as informações dos participantes à medida que os convidados participam da reunião e, em seguida, associá-los aos participantes pré-criados.

# Abrir casos de suporte para reuniões do SDK do Amazon Chime
<a name="open-support-cases"></a>

Se você tiver mais perguntas ou precisar de suporte para sua empresa, entre em contato com o [suporte ao cliente da AWS](https://pages.awscloud.com/GLOBAL-aware-GC-Amazon-Chime-SDK-2020-reg.html). Para obter mais informações sobre nossos planos de suporte, consulte a página [Comparar planos de suporte](https://aws.amazon.com/premiumsupport/plans/?nc=sn). Ao criar um caso de suporte, sempre o abra na conta que apresenta o problema. Inclua registros do navegador do console, reuniões e participantes IDs e quaisquer casos ou GitHub problemas de suporte relacionados.