

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