

# Ingestão de streams do IVS \$1 Streaming em tempo real
<a name="rt-stream-ingest"></a>

Como alternativa ao uso do SDK de transmissão do IVS, você pode publicar vídeo em um palco do IVS de uma origem WHIP ou RTMP. Essa abordagem oferece flexibilidade para fluxos de trabalho em que o uso do SDK não é viável ou preferencial, como ao publicar vídeos do OBS Studio ou de um codificador de hardware. Sempre que possível, recomendamos o uso do SDK de transmissão do IVS, pois não podemos garantir a performance ou a compatibilidade de soluções de terceiros com o IVS.

Este diagrama ilustra como a publicação com o WHIP e RTMP funciona:

![\[Publicar com o WHIP e RTMP.\]](http://docs.aws.amazon.com/pt_br/ivs/latest/RealTimeUserGuide/images/Stream_Ingest.png)


## Protocolos compatíveis
<a name="supported-protocols"></a>

O streaming em tempo real do IVS é compatível com vários protocolos de ingestão:
+ RTMP and RTMPS — O RTMP (protocolo de mensagens em tempo real): é um padrão da indústria para transmissão de vídeo em uma rede. RTMPS é a versão segura do RTMP que opera por meio do TLS.

  O IVS suporta o recurso de vídeo com várias faixas do E-RTMP (RTMP aprimorado). Consulte o [Vídeo com várias faixas do E-RTMP](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/rt-rtmp-publishing.html#rtmp-multitrack) na documentação de Publicação do RTMP do IVS.
+ WHIP (protocolo de ingestão de WebRTC-HTTP): um esboço do IETF desenvolvido para padronizar a ingestão de WebRTC.

 Para obter orientações detalhadas sobre o uso desses protocolos, consulte nossa documentação sobre [RTMP](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/rt-rtmp-publishing.html) e [WHIP](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/obs-whip-support.html).

## Especificações de mídia compatível
<a name="supported-media-specifications"></a>
+ Formato de entrada de áudio
  + Codec: AAC-LC para RTMP e Opus para WHIP
  + Canais: 2 (estéreo) ou 1 (mono)
  + Taxa de amostragem: 44,1 kHz ou 48 kHz
  + Taxa de bits máxima: 160 Kbps
+ Formato de entrada de vídeo
  + Codec: H.264
  + Perfil H.264: linha de base
  + Intervalo IDR: 1 ou 2 segundos
  + Taxa de quadros: 10 a 60 FPS
  + Quadros B: 0

    Observação: o SDK de transmissão do IVS tem quadros B habilitados por padrão, mas a partir da versão 1.25.0, ele desativa automaticamente os quadros B ao transmitir para um palco do IVS. Para streaming em tempo real com outros codificadores RTMP, os desenvolvedores devem desativar os quadros B. *Se os desenvolvedores que usam outros codificadores RTMP não desabilitarem os quadros B, seus streams serão desconectados*.
  + Resolução: máxima: 720p; mínima: 160p
  + Taxa de bits máxima: 8,5 Mbps

    Nota: Para transmissões do RTMP de faixa única, esse limite se aplica a essa faixa. Para vídeo com várias faixas publicado usando RTMP aprimorado, o limite se aplica à taxa de bits combinada de todas as faixas de vídeo.
  + Configuração do codificador: recomendamos usar as configurações `veryfast` e `zerolatency` para um codificador H.264. Além disso: a opção `sliced_threads` x264 está incluída nas predefinições `zerolatency`, e recomendamos que você a desabilite. Por exemplo, ao usar FFmpeg, o comando deve incluir: `-preset:v veryfast -tune zerolatency -x264-params sliced-threads=0`

# Publicação RTMP do IVS \$1 Streaming em tempo real
<a name="rt-rtmp-publishing"></a>

Este documento descreve o processo de publicação em um palco do IVS usando RTMP. Para obter detalhes adicionais sobre várias opções de ingestão, consulte a documentação de [ingestão de streams](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/rt-stream-ingest.html)

## Pré-requisitos
<a name="rtmp-prerequisites"></a>

### Criar um palco
<a name="rtmp-create-stage"></a>

Para criar um palco, use o seguinte comando:

`aws ivs-realtime create-stage --name "test-stage"`

Consulte [CreateStage](https://docs.aws.amazon.com/ivs/latest/RealTimeAPIReference/API_CreateStage.html) para obter detalhes, incluindo a resposta.

**Importante:** na resposta, observe o campo `endpoints`, que lista os endpoints RTMP e RTMPS. Eles são necessários para configurar o codificador RTMP.

### Criar uma configuração de ingestão
<a name="rtmp-create-an-ingest-configuration"></a>

Para publicar em um palco usando RTMP, primeiro você deve criar uma configuração de ingestão e associá-la ao seu palco. Quando você publica no palco (usando a chave de transmissão da configuração de ingestão e o endpoint RTMP do palco), a mídia será publicada no palco como participante. Você tem a opção de especificar um `userId` e personalizar `attributes`, que serão associados ao [participante](https://docs.aws.amazon.com/ivs/latest/RealTimeAPIReference/API_Participant.html) que se conectar ao palco.

```
aws ivs-realtime create-ingest-configuration \
  --name 'test' \
  --stage-arn arn:aws:ivs:us-east-1:123456789012:stage/8faHz1SQp0ik \
  --user-id '123' \
  --ingest-protocol 'RTMPS'
```

Consulte [CreateIngestConfiguration](https://docs.aws.amazon.com/ivs/latest/RealTimeAPIReference/API_CreateIngestConfiguration.html) para obter detalhes, incluindo a resposta.

Ao criar uma configuração de ingestão, você pode associá-la antecipadamente a um ARN de palco específico. Sem essa associação, a chave do stream fica inutilizada. Além disso, as configurações de ingestão (incluindo o campo `stageArn`) podem ser atualizadas por meio da operação [UpdateIngestConfiguration](https://docs.aws.amazon.com/ivs/latest/RealTimeAPIReference/API_UpdateIngestConfiguration.html), permitindo que você reutilize a mesma configuração em diferentes estágios.

**Observação:** o campo `insecureIngest` de configuração de ingestão é padronizado como `false`, exigindo o uso de RTMPS. As conexões RTMP serão rejeitadas. Caso precise usar RTMP, defina `insecureIngest` como `true`. Recomendamos o uso de RTMPS, a menos que você tenha casos de uso específicos e verificados que requeiram RTMP.

## Vídeo com faixa única do RTMP
<a name="rtmp-singletrack"></a>

Abaixo, descrevemos como usar o OBS Studio; no entanto, você pode usar qualquer codificador RTMP que atenda às [especificações de mídia](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/rt-stream-ingest.html#supported-media-specifications) do IVS.

### Guia para o OBS
<a name="rtmp-singletrack-obs"></a>

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

1. Clique em **Settings (Configurações)**. Na seção **Stream** do painel **Configurações**, selecione **Personalizar** no menu suspenso **Serviço**.

1. Para o **Servidor**, insira o endpoint RTMP ou RTMPS do palco.

1. Para a **Chave de transmissão**, insira a `streamKey` da configuração da ingestão.

1. Defina as configurações de vídeo como faria normalmente, com algumas restrições:

   1. O streaming em tempo real do IVS é compatível com entrada de até 720p a 8,5 Mbps. Se você exceder um desses limites, seu stream será desconectado.

   1. Recomendamos definir o **intervalo de quadros-chave** no painel **Saída** para 1s ou 2s. Um intervalo baixo de quadros-chave permite que a reprodução do vídeo comece mais rapidamente para os espectadores. Também recomendamos definir **Predefinição de uso da CPU** para **veryfast** e **Ajuste** para **zerolatency**, para permitir a menor latência.

   1. Como o OBS não é compatível com a transmissão simultânea, recomendamos manter sua taxa de bits abaixo de 2,5 Mbps. Isso permite que os espectadores em conexões de baixa largura de banda assistam.

   1. Desabilite os quadros B, pois os fluxos com quadros B serão automaticamente desconectados. Execute um destes procedimentos:
      + Nas opções x264, insira `bframes=0 sliced-threads=0`.
      + Defina quadros B como 0 se for uma opção (por exemplo, para NVENC).

   Observação: os streams RTMP devem incluir trilhas de áudio e de vídeo, ou serão desconectados.

1. Selecione **Iniciar streaming**.

**Importante:** se a taxa de bits máxima do seu codificador estiver definida como 8,5 Mbps, o publicador eventualmente desaparecerá da sessão. Isso ocorre porque a configuração máxima da taxa de bits é apenas uma meta, e os codificadores ocasionalmente ultrapassam a meta. Para evitar esse problema, defina a taxa de bits máxima do seu codificador mais baixa, por exemplo, para 6 Mbps.

## Vídeo com várias faixas do E-RTMP
<a name="rtmp-multitrack"></a>

O IVS suporta o recurso de vídeo com várias faixas do E-RTMP (Enhanced Real-Time Messaging Protocol), que permite publicar várias qualidades de vídeo em um único fluxo do RTMP em seu estágio do IVS. Isso permite o streaming de taxa de bits adaptável, para que os assinantes possam assistir automaticamente com a melhor qualidade para sua conexão de rede.

Uma vez ingeridas, as diferentes qualidades de vídeo são entregues aos assinantes como camadas de transmissão simultânea. Para configurar quais camadas são recebidas pelos assinantes, consulte as seções "Codificação em camadas com transmissão simultânea" nos guias do SDK de streaming em tempo real: [Android](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/broadcast-android.html), [iOS](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/broadcast-ios.html) e [Web](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/broadcast-web.html).

Para ver o código de exemplo, consulte [aws-samples/sample-amazon-ivs-multitrack-video](https://github.com/aws-samples/sample-amazon-ivs-multitrack-video) no GitHub.

Este diagrama ilustra como a publicação com o vídeo com várias faixas funciona:

![\[Publicação de vídeo com várias faixas em um estágio."\]](http://docs.aws.amazon.com/pt_br/ivs/latest/RealTimeUserGuide/images/E-RTMP.png)


### Guia para o OBS
<a name="rtmp-multitrack-obs"></a>

1. Baixe e instale o OBS Studio:

   1. Windows: o vídeo com várias faixas é suportado a partir do OBS Studio 30.2.

   1. macOS: o vídeo com várias faixas é suportado a partir do OBS Studio 31.1 Beta (somente com chip Apple Silicon).

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

1. Clique em **Settings (Configurações)**. Na seção **Fluxo** do painel **Configurações**, selecione **Amazon IVS** no menu suspenso **Serviço**.

1. Em **Servidor**, deixe a configuração como **Auto**.

1. Para a **Chave de transmissão**, insira a `streamKey` da configuração da ingestão.

1. Na seção **Vídeo com várias faixas**, marque **Habilitar vídeo com várias faixas**.

1. No painel **Vídeo**, defina as resoluções desejadas para **Resolução de base (tela)** e **Resolução de base (saída)**. O streaming em tempo real do IVS é compatível com entrada de até 720p . Se você exceder esse limite, sua transmissão será desconectada.

   Quando o vídeo com várias faixas está habilitado, as configurações como o número de faixas de vídeo, suas taxas de bits e o intervalo de quadros-chave são configuradas automaticamente com base nas capacidades do dispositivo.

1. Selecione **Iniciar transmissão**.

### Publicar com FFmpeg.
<a name="rtmp-multitrack-ffmpeg"></a>

Você pode usar o FFmpeg para publicar vídeo e áudio ao vivo em streaming em tempo real do IVS via RTMP. O FFmpeg é um projeto gratuito e de código aberto que compreende um conjunto abrangente de bibliotecas de software e ferramentas para processamento de vídeo, áudio e outros conteúdos multimídia.

O comando de exemplo a seguir publica um fluxo que inclui um padrão de cores e um tom:

```
ffmpeg \
 -re \
 -f lavfi -i testsrc=d=300:s=1280x720:r=60,format=yuv420p \
 -f lavfi -i sine=f=440:b=4:d=300 \
 -c:v libx264 \
 -b:v 2500k \
 -g 60 -bf 0 \
 -profile:v baseline \
 -preset veryfast \
 -tune zerolatency \
 -x264opts sliced-threads=0 \
 -c:a aac \
 -ac 2 \
 -b:a 160k \
 -ar 48000 \
 -f flv \
 rtmps://$INGEST_ENDPOINT/app/$STREAM_KEY
```

No exemplo, substitua `$INGEST_ENDPOINT` e `$STREAM_KEY` por seus próprios valores do console do IVS ou da API.

Essa configuração atende às [especificações de mídia compatíveis](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/rt-stream-ingest.html#supported-media-specifications) para streaming do IVS em tempo real, incluindo vídeo H.264 (perfil de linha de base, sem quadros B, sem threads fatiados) e áudio AAC.

## Ingestão privada em estágios
<a name="private-ingest-stages"></a>

Você pode publicar transmissões RTMP(S) e E-RTMP(S) em um estágio usando recursos dentro da sua Amazon VPC ou do Direct Connect, com um endpoint da VPC de interface. Isso permite uma conexão privada entre sua VPC e o IVS, mantendo o tráfego de ingestão dentro da rede AWS. Para configurar um endpoint da VPC de interface para o IVS, consulte [Ingestão privada do IVS](https://docs.aws.amazon.com//ivs/latest/LowLatencyUserGuide/private-ingest-ll.html) no *Guia do usuário de streaming de baixa latência do IVS*. 

# Publicação WHIP do IVS \$1 Streaming em tempo real
<a name="obs-whip-support"></a>

Este documento explica como usar codificadores compatíveis com o WHIP, como OBS, para publicar no streaming em tempo real do IVS. O [WHIP](https://www.ietf.org/archive/id/draft-ietf-wish-whip-01.html) (Protocolo de ingestão WebRTC-HTTP) é um esboço do IETF desenvolvido para padronizar a ingestão de WebRTC.

O WHIP possibilita a compatibilidade com softwares como o OBS, oferecendo uma alternativa (ao SDK de transmissão do IVS) para editoração eletrônica. Streamers mais sofisticados familiarizados com o OBS podem preferi-lo por seus recursos avançados de produção, como transições de cena, mixagem de áudio e gráficos de sobreposição. Isso fornece aos desenvolvedores uma opção versátil: usar o SDK de transmissão para a Web do IVS para publicação direta no navegador ou permitir que os streamers usem o OBS em seus desktops para obter ferramentas mais avançadas.

O WHIP também é benéfico em situações em que o uso do SDK de transmissão do IVS não é viável ou preferencial. Por exemplo, em configurações que envolvem codificadores de hardware, o SDK de transmissão do IVS pode não ser uma opção. No entanto, se o codificador for compatível com WHIP, ainda será possível publicar diretamente do codificador para o IVS.

**Requisitos de WHIP:**
+ Sua oferta SDP precisará incluir uma faixa de vídeo H.264, mesmo que você esteja publicando somente áudio. Se a oferta não incluir uma faixa de vídeo, a conexão será rejeitada.
+ O endpoint global do WHIP (https://global.whip.live-video.net) retorna um redirecionamento temporário 307. Os clientes WHIP precisam processar redirecionamentos 307 corretamente e manter os cabeçalhos na solicitação redirecionada, conforme exigido pela especificação WHIP.

## Guia para o OBS
<a name="whip-support-obs-guide"></a>

O OBS é compatível com o WHIP a partir da versão 3.0. [Para começar, faça download do OBS v30 ou mais recente: https://obsproject.com/](https://obsproject.com/).

Para publicar em um palco do IVS usando o OBS via WHIP, siga estas etapas:

1. [Gere](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/getting-started-distribute-tokens.html) um token de participante com capacidade de publicação. Em termos de WHIP, um token de participante é um token de portador. Por padrão, os tokens de participantes expiram em 12 horas, mas você pode estender a duração para até 14 dias.

1. Clique em **Settings (Configurações)**. Na seção **Stream** do painel **Configurações**, selecione **WHIP** no menu suspenso **Serviço**.

1. Para o **Servidor**, insira https://global.whip.live-video.net.

1. Para o **Bearer Token**, insira o token do participante que você gerou na etapa 1.

1. Defina as configurações de vídeo como faria normalmente, com algumas restrições:

   1. O streaming em tempo real do IVS é compatível com entrada de até 720p a 8,5 Mbps. Se você exceder um desses limites, seu stream será desconectado.

   1. Recomendamos definir o **intervalo de quadros-chave** no painel **Saída** para 1s ou 2s. Um intervalo baixo de quadros-chave permite que a reprodução do vídeo comece mais rapidamente para os espectadores. Também recomendamos definir **Predefinição de uso da CPU** para **veryfast** e **Ajuste** para **zerolatency**, para permitir a menor latência.

   1. Como o OBS não é compatível com a transmissão simultânea, recomendamos manter sua taxa de bits abaixo de 2,5 Mbps. Isso permite que os espectadores em conexões de baixa largura de banda assistam.

1. Pressione **Iniciar streaming**.

**Observação**: estamos cientes dos problemas de qualidade (como congelamento intermitente de vídeo) que podem ocorrer com o WHIP no OBS. Normalmente, eles surgem quando a rede do transmissor está instável. Recomendamos testar o WHIP no OBS antes de usá-lo para transmissões ao vivo de produção. Reduzir a taxa de bits de transmissão também pode ajudar a reduzir a ocorrência desses problemas.