

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

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