

# Etapa 5: configurar o software de streaming
<a name="getting-started-set-up-streaming"></a>

Você pode transmitir (baixa latência) para o Amazon IVS com:
+ Os [SDKs de transmissão nativos do IVS](#broadcast-sdk), que oferecem suporte para RTMPS. Recomendamos isso especialmente para cenários de produção.
+ O [console do Amazon IVS](#ivs-console): adequado para testar fluxos.
+ Outros codificadores de software e hardware de streaming: você pode usar qualquer codificador de streaming que seja compatível com os protocolos RTMP, RTMPS ou SRT. Vários exemplos são descritos abaixo, usando Open Broadcast Software (OBS) e FFmpeg com RTMPS e SRT. O RTMPS permite alta segurança por meio do uso de um stream de TLS criptografado.

As principais configurações do codificador são o intervalo do quadro-chave (2 segundos) e a taxa de resolução/taxas de bits/quadro (os quais estão inter-relacionados). Para obter mais detalhes sobre as configurações do codificador, consulte: 
+ [Configuração de streaming](streaming-config.md) no *Manual do usuário do Amazon IVS* 
+ Esta postagem de blog: [Setting Up for Streaming with Amazon Interactive Video Service](https://aws.amazon.com/blogs/media/setting-up-for-streaming-with-amazon-ivs/)

**Observações:** 
+ A duração máxima dos streams do Amazon IVS é de 48 horas. Depois disso, o stream será encerrado e a sessão de streaming desconectada. Uma reconexão bem-sucedida (automática ou manualmente) iniciará um novo stream.
+ Se o codificador parar de enviar dados (por exemplo, devido a um problema temporário da rede), o Amazon IVS aguardará 30 segundos. Caso nenhum dado do emissor seja recebido durante esse período, o Amazon IVS será desconectado.

## Streaming com o SDK de Transmissão do Amazon IVS
<a name="broadcast-sdk"></a>

Para fazer transmissão de suas aplicações iOS ou Android, você pode usar o SDK de Transmissão do Amazon IVS. O SDK de Transmissão aproveita a arquitetura do Amazon IVS e receberá continuamente melhorias e novos recursos, juntamente com o Amazon IVS. Como SDK de Transmissão nativo móvel, foi projetado para minimizar o impacto na performance em sua aplicação e nos dispositivos com os quais seus usuários acessam sua aplicação.


| Para transmitir de: | Você pode usar: | Observações | 
| --- | --- | --- | 
| Seus aplicativos Android ou iOS | SDK de Transmissão do Amazon IVS para Android ou iOS | Como SDK de Transmissão nativo móvel, foi projetado para minimizar o impacto na performance em sua aplicação e nos dispositivos com os quais seus usuários acessam sua aplicação. | 
| Um ambiente web | SDK de Transmissão do Amazon IVS para Web | Como um SDK de Transmissão pela web, o SDK de Transmissão do Amazon IVS para Web permite que você transmita a partir de ambientes da web usando WebRTC. Ele é compatível entre navegadores e plataformas. | 

Para obter detalhes, consulte [SDK de Transmissão do IVS \| Streaming de baixa latência](broadcast.md).

## Transmissão com o console do Amazon IVS
<a name="ivs-console"></a>

1. Abra o [console do Amazon IVS](https://console.aws.amazon.com/ivs).

   (Você também pode acessar o console do Amazon IVS por meio do [Console de Gerenciamento da AWS](https://console.aws.amazon.com/).)

1. No painel de navegação, selecione **Canais**. (Se o painel de navegação estiver fechado, expanda-o selecionando o ícone de hambúrguer.)

1. Selecione o canal para o qual você deseja transmitir para acessar a respectiva página de detalhes.

1. Selecione a guia **Transmissão**. (As guias estão abaixo da seção **Configuração geral**.)

1. Você será solicitado a conceder para o console do IVS acesso à sua câmera e microfone; **Aceite** essas permissões.

1. Na parte inferior da guia **Transmissão**, use as caixas suspensas para selecionar dispositivos de entrada para o microfone e a câmera.

1. Para começar a transmitir, selecione **Iniciar transmissão**.

1. Para ver a transmissão ao vivo, acesse a guia **Reprodução**.

   **Observação**: depois de iniciar a transmissão, espere um breve atraso (geralmente menos de 30 segundos) antes que ela possa ser visualizada na guia Reprodução.

Você pode usar esse recurso para transmitir simultaneamente para vários canais.

**Observação**: a transmissão do console consome recursos, e você acumulará custos de entrada de vídeo ao vivo. Para saber mais, consulte [Custos de entrada de vídeo ao vivo](https://aws.amazon.com/ivs/pricing/#Low-Latency_Streaming), na página de preços do IVS.

## Streaming com o OBS Studio usando RTMPS
<a name="obs-rtmps"></a>

O ([OBS Studio](https://obsproject.com/)) é um pacote de software gratuito e de código aberto para a gravação e streaming ao vivo. O OBS fornece captura de origem e dispositivo em tempo real, composição de cenas, codificação, gravação e streaming. 

Siga estas etapas para começar a usar rapidamente o OBS Studio v30.2 ou posterior:

1. Faça download e instale o software: [https://obsproject.com/download](https://obsproject.com/download).

1. Execute o **assistente de configuração automática** do OBS Studio, que aparecerá quando você carregar o OBS Studio pela primeira vez. Siga as etapas e aceite os padrões.

1. Em **Informações do fluxo**, escolha **Amazon IVS** no menu suspenso **Serviço** e insira a **Chave de fluxo**.

   Se você criou o canal com o console do Amazon IVS, a **Chave de fluxo** inserida no OBS é a **Chave de fluxo** do console: `sk_us-west-2_abcd1234efgh5678ijkl`

   Se você criou o canal com a CLI da AWS, a **Chave de fluxo** inserida no OBS é o **Valor de streamKey** da resposta da CLI `sk_us-west-2_abcd1234efgh5678ijkl`

   Se o seu canal do IVS estiver configurado para entrada de vídeo de várias faixas, selecione **Habilitar vídeo de várias faixas**. Opcionalmente, defina as configurações de **Máximo de faixas de vídeo** e **Largura de banda máxima de streaming**, que são usadas para limitar as configurações de fluxo definidas automaticamente.

1. Para **resolução de saída de vídeo** e **taxa de bits**, consulte [Tipos de canais](streaming-config.md#streaming-config-settings-channel-types) em *Configuração de streaming do Amazon IVS*. Se um dos valores escolhidos pelo assistente de OBS exceder os valores permitidos pelo Amazon IVS, será necessário ajustar manualmente os valores para evitar falha de conexão com o Amazon IVS. Depois que o assistente for concluído:

   1. Para ajustar a resolução de vídeo, use **Settings > Video > Output (Scaled) Resolution** (Configurações > Vídeo > Resolução de saída [escalada]).

   1. Para ajustar a taxa de bits de vídeo, use **Settings > Output > Streaming > Video Bitrate** (Configurações > Saída > Streaming > Taxa de bits de vídeo). 

      **Observação:** isso não afetará o fluxo ao vivo se você tiver marcado anteriormente a opção **Habilitar vídeo de várias faixas**.

1. Recomendamos um **intervalo de quadro-chave** de dois segundos para melhorar a estabilidade do fluxo e evitar buffer na reprodução do visualizador. Depois que o assistente for concluído, acesse **Configurações > Saída > Modo de saída**, selecione **Avançado** e, na guia **Transmissão**, verifique se o **Intervalo de quadro-chave** é 2.

   **Observação:** o intervalo de quadros-chave será configurado automaticamente se você tiver marcado anteriormente a opção **Habilitar vídeo de várias faixas**.

1. Na janela principal do OBS Studio, selecione **Start Streaming** (Iniciar streaming).

Para obter mais informações sobre streaming com o OBS Studio, consulte o [Quickstart do OBS Studio](https://obsproject.com/wiki/OBS-Studio-Quickstart).

Você pode modificar as suas configurações do OBS manualmente mais tarde:

1. Selecione **Settings > Stream** (Configurações > Stream).

1. Escolha **Amazon IVS** no menu suspenso.

1. Cole a **Chave de fluxo**.

Você pode executar o assistente novamente a qualquer momento: selecione **Tools > Auto-Configuration Wizard** (Ferramentas > Assistente de Configuração Automática).

Opcionalmente, em **Settings > General** (Configurações > Geral), habilite a gravação local para salvar o seu stream ao vivo para uso posterior. Conforme mencionado anteriormente, problemas de rede entre a transmissão e a AWS ou na AWS podem resultar em alguma perda de dados durante a gravação do seu stream. Em casos como este, o Amazon IVS prioriza o stream ao vivo em relação à gravação. Gravar localmente por meio da sua ferramenta de streaming fornece redundância.

Recomenda-se que você verifique regularmente se há atualizações do OBS Studio e o atualize para a versão mais atual. (Por exemplo, se você receber um erro “Failed to connect to server” [Falha ao conectar-se ao servidor], pode ser que esteja usando uma versão antiga do OBS Studio não compatível com o RTMPS.)

## Streaming com o OBS Studio usando SRT
<a name="obs-srt"></a>

Siga estas etapas para começar a usar rapidamente o protocolo Secure Reliable Transport:

1. Faça download e instale o software: [https://obsproject.com/download](https://obsproject.com/download).

1. Execute o **assistente de configuração automática** do OBS Studio, que aparecerá quando você carregar o OBS Studio pela primeira vez. Siga as etapas e aceite os padrões.

1. Em **Stream Information** (Informações de transmissão), escolha **Custom...** (Personalizado...) no menu suspenso **Service** (Serviço) e insira o **Server (Ingest server)** (Servidor [servidor de ingestão]) e a **Stream Key** (Chave de transmissão).

   Se você criou o canal com a AWS CLI:
   + O **Servidor** que você insere no OBS é uma combinação de cinco elementos:
     + Um protocolo de ingestão: `srt://`
     + O **endpoint** da estrutura `srt` na resposta da CLI: 

       `a1b2c3d4e5f6.srt.live-video.net`
     + Uma porta: `9000`
     + Um streamid, que é o **Valor de streamKey** da resposta da CLI:

       `sk_us-west-2_abcd1234efgh5678ijkl`
     + Uma frase secreta, usada para criptografar o conteúdo. Use isso somente se a **ingestão insegura** não estiver habilitada.

       `ZU5A3yrjGAkghUNDr0c5NXBhsPrjlmtcKMNBluh7oImwJQ3ijeyClvMKxlpPcGAMziICJ`

     A entrada completa é:

     `srt://a1b2c3d4e5f6.srt.live-video.net:9000?streamid=sk_us-west-2_abcd1234efgh5678ijkl&passphrase=ZU5A3yrjGAkghUNDr0c5NXBhsPrjlmtcKMNBluh7oImwJQ3ijeyClvMKxlpPcGAMziICJ`
   + A **chave de fluxo** inserida no OBS permanecerá vazia para o protocolo SRT.

1. Para **resolução de saída de vídeo** e **taxa de bits**, consulte [Tipos de canais](streaming-config.md#streaming-config-settings-channel-types) em *Configuração de streaming do Amazon IVS*. Se um dos valores escolhidos pelo assistente de OBS exceder os valores permitidos pelo Amazon IVS, será necessário ajustar manualmente os valores para evitar falha de conexão com o Amazon IVS. Depois que o assistente for concluído: 

   1. Para ajustar a resolução de vídeo, use **Settings > Video > Output (Scaled) Resolution** (Configurações > Vídeo > Resolução de saída [escalada]).

   1. Para ajustar a taxa de bits de vídeo, use **Settings > Output > Streaming > Video Bitrate** (Configurações > Saída > Streaming > Taxa de bits de vídeo).

1. Recomendamos um **intervalo de quadro-chave** de dois segundos para melhorar a estabilidade do fluxo e evitar buffer na reprodução do visualizador. Depois que o assistente for concluído, acesse **Configurações > Saída > Modo de saída**, selecione **Avançado** e, na guia **Transmissão**, verifique se o **Intervalo de quadro-chave** é 2.

1. Na janela principal do OBS Studio, selecione **Start Streaming** (Iniciar streaming). 

Você pode modificar as suas configurações do OBS manualmente mais tarde:

1. Selecione **Settings > Stream** (Configurações > Stream).

1. Selecione **Custom** (Personalizado) no menu suspenso.

1. Cole no **servidor** e/ou **chave de stream**.

Você pode executar o assistente novamente a qualquer momento: selecione **Tools > Auto-Configuration Wizard** (Ferramentas > Assistente de Configuração Automática).

Opcionalmente, em **Settings > General** (Configurações > Geral), habilite a gravação local para salvar o seu stream ao vivo para uso posterior. Conforme mencionado anteriormente, problemas de rede entre a transmissão e a AWS ou na AWS podem resultar em alguma perda de dados durante a gravação do seu stream. Em casos como este, o Amazon IVS prioriza o stream ao vivo em relação à gravação. Gravar localmente por meio da sua ferramenta de streaming fornece redundância.

Recomenda-se que você verifique regularmente se há atualizações do OBS Studio e o atualize para a versão mais atual. (Por exemplo, se você receber um erro "Falha ao conectar-se ao servidor", pode ser que esteja usando uma versão antiga do OBS Studio que não ofereça suporte a RTMPS.)

## Streaming de um vídeo gravado com FFmpeg usando RTMPS
<a name="ffmpeg-rtmps"></a>

Siga estas etapas:

1. Faça download e instale o FFmpeg: [https://www.ffmpeg.org/download.html](https://www.ffmpeg.org/download.html).

1. Defina `$VIDEO_FILEPATH` para a localização de um vídeo MP4 para fazer streaming:

   ```
   VIDEO_FILEPATH=/home/test/my_video.mp4
   ```

1. Defina `STREAM_KEY` para o seu **valor** de StreamKey:

   ```
   STREAM_KEY=sk_us-west-2_abcd1234efgh5678ijkl
   ```

1. Defina `INGEST_ENDPOINT` em seu **IngestEndpoint** (da AWS CLI):

   ```
   INGEST_ENDPOINT=a1b2c3d4e5f6.global-contribute.live-video.net
   ```

1. Comece a fazer streaming com o seguinte comando de terminal (isso corresponde a uma linha):

   ```
   ffmpeg -re -stream_loop -1 -i $VIDEO_FILEPATH -r 30 -c:v libx264 -pix_fmt yuv420p -profile:v main -preset veryfast -x264opts "nal-hrd=cbr:no-scenecut" -minrate 3000 -maxrate 3000 -g 60 -c:a aac -b:a 160k -ac 2 -ar 44100 -f flv rtmps://$INGEST_ENDPOINT:443/app/$STREAM_KEY
   ```

   *Observe que o comando acima é um exemplo. Para streaming de produção, ajuste os parâmetros às suas necessidades.*

## Streaming de um vídeo gravado com FFmpeg usando SRT
<a name="ffmpeg-srt"></a>

1. Faça download e instale o FFmpeg: [https://www.ffmpeg.org/download.html](https://www.ffmpeg.org/download.html). Se você estiver usando uma versão antiga/compilada do FFmpeg, crie uma nova versão com o sinalizador `--enable-libsrt`.

1. Verifique se o SRT está disponível para uso no FFmpeg: execute o comando a seguir e verifique se `libsrt` está na saída. Se `libsrt` não estiver lá, reconstrua ou obtenha uma versão mais recente do FFmpeg com suporte para SRT.

   ```
   ffmpeg -version | grep enable-libsrt
   ```

1. Defina `$VIDEO_FILEPATH` para a localização de um vídeo MP4 para fazer streaming:

   ```
   VIDEO_FILEPATH=/home/test/my_video.mp4
   ```

1. Defina `STREAM_KEY` para o seu **valor** de StreamKey:

   ```
   STREAM_KEY=sk_us-west-2_abcd1234efgh5678ijkl
   ```

1. Defina `INGEST_ENDPOINT` como seu **endpoint** (da AWS CLI abaixo do objeto `srt`):

   ```
   INGEST_ENDPOINT=a1b2c3d4e5f6.srt.live-video.net
   ```

1. Defina `PASSPHRASE` como sua **frase secreta** (da AWS CLI abaixo do objeto `srt`). Use a frase secreta somente se a ingestão insegura não estiver habilitada para o canal. 

   ```
   PASSPHRASE=ZU5A3yrjGAkghUNDr0c5NXBhsPrjlmtcKMNBluh7oImwJQ3ijeyClvMKxlpPcGAMziICJ
   ```

1. Comece a fazer streaming com o seguinte comando de terminal (isso corresponde a uma linha):

   ```
   ffmpeg -re -i $VIDEO_FILEPATH -c copy -f mpegts "srt://$INGEST_ENDPOINT:9000?streamid=$STREAM_KEY&passphrase=$PASSPHRASE”
   ```