Configuração de streaming do Amazon IVS - Amazon Interactive Video Service

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

Configuração de streaming do Amazon IVS

O Amazon Interactive Video Service (IVS) permite que os desenvolvedores forneçam facilmente vídeos de baixa latência a visualizadores em todo o mundo. Com o Amazon IVS, os streamers precisam lidar apenas com a produção de stream e, em seguida, enviar o stream para o Amazon IVS. O Amazon IVS lida com processamento de vídeo (ingestão e transcodificação), entrega e reprodução para os visualizadores usando o player do Amazon IVS.

Há uma grande variedade de soluções para streaming ao vivo. Se você tiver um estúdio equipado com várias câmeras, switchers visuais, composição gráfica e uma variedade de equipamentos de mixagem de áudio, ou planejar iniciar o seu primeiro stream em um smartphone, você precisará lidar com alguns conceitos e parâmetros de codificação semelhantes.

Este documento descreve como configurar codificadores de vídeo para fazer streaming para o Amazon IVS. O público-alvo deste documento são desenvolvedores que desejam criar funcionalidades de streaming em suas aplicações.

Observe que a entrada somente de áudio não é compatível com streaming de baixa latência do IVS.

Pré-requisitos

Siga as etapas em Conceitos básicos do streaming de baixa latência do IVS para criar um canal e configurar o streaming. No processo, um canal do ARN (nome do recurso da Amazon) e uma chave de stream serão atribuídos, juntamente com URLs para ingestão e reprodução de um stream. Você precisará indicar a sua aplicação de streaming para a URL de ingestão.

Antes de ler este documento, é necessário que você esteja familiarizado com o seguinte:

Redução de latência

O streaming de baixa latência do Amazon IVS é compatível com a maioria das aplicações de streaming e exige apenas pequenas alterações na configuração da sua aplicação de streaming. Para obter a menor latência possível, você deve usar o player do Amazon IVS. Os players de vídeo HLS de terceiros não são compatíveis. Consulte a documentação do SDK do Player do Amazon IVS.

Para preparar a sua aplicação de streaming para streaming de baixa latência, faça o seguinte. (Observação: nem todas essas opções estão disponíveis em todas as aplicações de streaming).

  • No codificador de vídeo, IDR/Keyframe defina para um intervalo de 2 segundos (ou 1 segundo, para uma end-to-end latência ainda menor).

    IDR/Keyframeafeta diretamente o tempo de inicialização do stream e a latência dos EventBridge eventos relacionados (Stream Start e Recording Start). Se IDR/Keyframe durar dois segundos, a latência de início da transmissão será de aproximadamente seis a sete segundos. Se IDR/Keyframe durar um segundo, a latência de início da transmissão será de aproximadamente três a quatro segundos. O seu vídeo estará disponível para os visualizadores e gravação automática no Amazon S3 somente após o período inicial de latência de início do stream.

    O intervalo de quadro-chave de 1 segundo mais curto tem algumas compensações de QoS. Isso pode fazer com que o streaming de taxa de bits adaptável (ABR) do Player do Amazon IVS alterne a resolução com mais frequência. Como o tamanho do segmento é menor, a verificação da ABR ocorre de forma mais frequente. A armazenagem em buffer pode aumentar em função da mudança de resolução aumentada e/ou se a rede do visualizador não conseguir fazer download dos segmentos de forma suficientemente rápida. Avalie essas compensações ao decidir entre um intervalo de quadro-chave de 1 ou 2 segundos.

    Evite definir IDR/Keyframe com valores superiores a 5 segundos. Além de a latência de início da transmissão ser maior do que ao usar 1 ou 2 segundos, o IVS não poderá garantir que cada segmento gerado para reprodução comece com um IDR/quadro-chave. Segmentos que não começarem com um IDR/quadro-chave podem resultar em erros de decodificação ou distorções visuais quando os espectadores iniciarem a reprodução ou alterarem as reproduções.

  • Se estiver disponível, defina o codificador para o ajuste de latência zero em uma configuração de x264.

  • Certifique-se de que o tamanho do buffer (VBV) não exceda a taxa de bits média (kilobits-per-second) do fluxo.

Evite serviços de streaming/encaminhamento de terceiros

É altamente recomendável não usar o serviço de terceiros para repetir o streaming ou encaminhar conteúdo para o Amazon IVS. Isso resultará em latência extra. Para obter baixa latência, faça streaming diretamente para o Amazon IVS.

Configurações do codificador

Ingestão de fluxo: codecs, RTMPS e porta 443

Codecs: o Amazon IVS é compatível com H.264 para vídeo e com AAC (LC) para áudio.

O Amazon IVS é compatível com o protocolo de ingestão segura mais comum usado em software e hardware de streaming, o RTMPS (Real-Time Messaging Protocol executado por meio de uma conexão TLS/SSL). O streaming e a reprodução no Amazon IVS exigem a versão 1.2 ou superior do TLS.

O seu codificador de vídeo deve conectar-se à ingestão do Amazon IVS por meio do protocolo RTMPS associado à porta de saída 443/TCP. Para garantir isso, especifique um servidor de ingresso do IVS, que inclui a porta no caminho:

rtmps://<IVS-ingest-server>/<IVS-stream-key>

Por exemplo: .

rtmps://a1b2c3d4e5f6.global-contribute.live-video.net:443/app/<IVS-stream-key>

Os canais do IVS também podem ser configurados para permitir ingestão insegura de RTMP, embora seja recomendado que você use RTMPS, a menos que tenha casos de uso específicos e verificados que requeiram RTMP. Ao transmitir RTMP, verifique se o protocolo está definido como rtmp:// e remova a porta :443. Por exemplo: .

rtmp://a1b2c3d4e5f6.global-contribute.live-video.net/app/<IVS-stream-key>

Resolução/taxa de bits/FPS

A resolução do stream determina em grande parte sua taxa de bits e taxa de quadros (frames-per-secondou FPS). Use as diretrizes a seguir, que são nossas recomendações. Observe que as resoluções exibidas abaixo estão em uma orientação de paisagem (horizontal x vertical), então altere-as para a orientação de retrato.

Qualidade aceitável (SD) 480 p (852 x 480) Boa qualidade (HD) 720 p (1.280 x 720) Alta qualidade (Full HD) 1.080 p (1.920 x 1.080)
Taxa de bits Até 1.500 Kbps Até 4.500 Kbps Até 8.500 Kbps
FPS 30 30 ou 60 30 ou 60
Intervalo de keyframe 2 segundos 2 segundos 2 segundos

A taxa de bits, o FPS e a resolução estão inter-relacionados. Os valores ideais dependem das circunstâncias e pode ser complicado determiná-los. O nosso melhor conselho é que você comece com os valores acima e faça experimentações, se desejar. O objetivo é o movimento claro e suave dos componentes de vídeo durante o streaming e uma boa resolução dentro da largura de banda disponível. O aumento da taxa de quadros e/ou resolução resulta no aumento da qualidade geral do vídeo, mas isso é necessariamente limitado pela largura de banda.

O Amazon IVS oferece suporte a taxas de quadros de até 60 FPS (incluindo taxas de quadros padrão de 25 e 50 do PAL europeu). Quanto maior a taxa de quadros, melhor será a qualidade (desde que haja largura de banda de bits adequada). Dependendo da aplicação, uma taxa baixa referente aos quadros pode o suficiente; como, por exemplo, para uma câmera de segurança.

Tipos de canais

O tipo de canal determina a resolução permitida e a taxa de bits. Se você ultrapassar a resolução ou a taxa de bits permissível de entrada, provavelmente o fluxo será deconectado imediatamente.

Há quatro tipos de canais: STANDARD, ADVANCED_SD, ADVANCED_HD, e BASIC. Quando você cria um canal, o tipo padrão é STANDARD.

Dependendo do tipo de canal, o vídeo pode ser transcodificado ou transmixado:

  • O vídeo nos canais STANDARD e ADVANCED são transcodificados: várias qualidades são geradas com base na entrada original para proporcionar automaticamente aos espectadores a melhor experiência para seus dispositivos e condições de rede. A transcodificação garante melhor qualidade de reprodução em uma variedade de velocidades de download.

  • O vídeo nos canais BASIC é transmixado: o Amazon IVS entrega a entrada original aos espectadores.

Todos os canais transcodificados têm predefinições de transcodificação que determinam quais apresentações são produzidas. Pense nelas como escadas de ABR. Elas permitem que você permute a largura de banda de download disponível por mais qualidade de vídeo para otimizar a experiência de visualização.

  • Os canais STANDARD têm uma única predefinição de transcodificação padrão.

  • Os canais ADVANCED têm duas predefinições de transcodificação selecionáveis:

    • A entrega de largura de banda restrita usa uma taxa de bits mais baixa do que STANDARD para cada nível de qualidade. Use essa opção se você tiver pouca largura de banda de download e/ou conteúdo de vídeo simples (p. ex., locutor).

    • A entrega de largura de banda mais alta usa uma taxa de bits maior para cada nível de qualidade. Use essa opção se você tiver grande largura de banda de download e/ou conteúdo de vídeo complexo (p. ex., flashes e mudanças rápidas de cena). Esse é o padrão.

Canais STANDARD

Os canais STANDARD são transcodificados. A maior resolução de vídeo produzida é full HD, 1080 p. Esse é o tipo de canal padrão.

  • Predefinições de transcodificação: existe uma escada de predefinições de transcodificação padrão.

  • Áudio: para apresentações em até 360 p, o áudio é transcodificado. Para outras apresentações, o áudio original é repassado.

Resolução de entrada e taxa de bits máxima Detalhes da escada

1080p60 a 8,5 Mbps

  1. 1080p60 à taxa de bits da fonte

  2. 720p60 a 3,4 Mbps

  3. 480p30 a 1,4 Mbps

  4. 360p30 a 0,63 Mbps

  5. 160p30 a 0,23 Mbps

1080p30 a 8,5 Mbps

  1. 1080p30 à taxa de bits da fonte

  2. 720p30 a 2,4 Mbps

  3. 480p30 a 1,4 Mbps

  4. 360p30 a 0,63 Mbps

  5. 160p30 a 0,23 Mbps

Menor que 1080p60 e maior que 720p60, a 8,5 Mbps

  1. Repasse da fonte

  2. 720p60 a 3,4 Mbps

  3. 480p30 a 1,4 Mbps

  4. 360p30 a 0,63 Mbps

  5. 160p30 a 0,23 Mbps

Menor que 1080p30 e maior que 720p30, a 8,5 Mbps

  1. Repasse da fonte

  2. 720p30 a 2,4 Mbps

  3. 480p30 a 1,4 Mbps

  4. 360p30 a 0,63 Mbps

  5. 160p30 a 0,23 Mbps

720p60 a 8,5 Mbps

  1. 720p60 a 3,4 Mbps

  2. 480p30 a 1,4 Mbps

  3. 360p30 a 0,63 Mbps

  4. 160p30 a 0,23 Mbps

720p30 a 8,5 Mbps

  1. 720p30 a 2,4 Mbps

  2. 480p30 a 1,4 Mbps

  3. 360p30 a 0,63 Mbps

  4. 160p30 a 0,23 Mbps

Menor que 720p30/60 e maior ou igual a 480p30/60, a 8,5 Mbps

  1. 480p30 a 1,4 Mbps

  2. 360p30 a 0,63 Mbps

  3. 160p30 a 0,23 Mbps

Canais ADVANCED-HD

Os canais ADVANCED-HD são transcodificados. A maior resolução de vídeo produzida é HD, 720 p.

  • Predefinições de transcodificação: existem duas escadas de predefinições de transcodificação selecionáveis.

  • Áudio: para apresentações em até 360 p, o áudio é transcodificado. Para outras apresentações, o áudio original é repassado.

Resolução de entrada e taxa de bits máxima Detalhes da escada

720p60 até 1080p60, a 8,5 Mbps

Predefinição de transcodificação: entrega de maior largura de banda (padrão):

  1. 720p60 a 3 Mbps

  2. 480p30 a 1,3 Mbps

  3. 360p30 a 0,7 Mbps

  4. 160p30 a 0,27 Mbps

  5. Somente áudio a 0,08 Mbps

Predefinição de transcodificação: entrega de largura de banda restrita:

  1. 720p60 a 2,2 Mbps

  2. 480p30 a 0,8 Mbps

  3. 360p30 a 0,4 Mbps

  4. 160p30 a 0,22 Mbps

  5. Somente áudio a 0,08 Mbps

720p30 até 1080p30, a 8,5 Mbps

Predefinição de transcodificação: entrega de maior largura de banda (padrão):

  1. 720p30 a 2,3 Mbps

  2. 480p30 a 1,3 Mbps

  3. 360p30 a 0,7 Mbps

  4. 160p30 a 0,27 Mbps

  5. Somente áudio a 0,08 Mbps

Predefinição de transcodificação: entrega de largura de banda restrita:

  1. 720p30 at 1,9 Mbps

  2. 480p30 a 0,8 Mbps

  3. 360p30 a 0,4 Mbps

  4. 160p30 a 0,22 Mbps

  5. Somente áudio a 0,08 Mbps

Menor que 720p30/60 e maior que 480p30/60, a 8,5 Mbps

Predefinição de transcodificação: entrega de maior largura de banda (padrão):

  1. Fonte transcodificada a 2,3 Mbps

  2. 480p30 a 1,3 Mbps

  3. 360p30 a 0,7 Mbps

  4. 160p30 a 0,27 Mbps

  5. Somente áudio a 0,08 Mbps

Predefinição de transcodificação: entrega de largura de banda restrita:

  1. Fonte transcodificada a 1,9 Mbps

  2. 480p30 a 0,8 Mbps

  3. 360p30 a 0,4 Mbps

  4. 160p30 a 0,22 Mbps

  5. Somente áudio a 0,08 Mbps

480p30/60 a 8,5 Mbps

Predefinição de transcodificação: entrega de maior largura de banda (padrão):

  1. 480p30 a 1,3 Mbps

  2. 360p30 a 0,7 Mbps

  3. 160p30 a 0,27 Mbps

  4. Somente áudio a 0,08 Mbps

Predefinição de transcodificação: entrega de largura de banda restrita:

  1. 480p30 a 0,8 Mbps

  2. 360p30 a 0,4 Mbps

  3. 160p30 a 0,22 Mbps

  4. Somente áudio a 0,08 Mbps

Canais ADVANCED-SD

Os canais ADVANCED-SD são transcodificados. As apresentações disponíveis são limitadas à qualidade da entrada, sem conversão ascendente.

  • Predefinições de transcodificação: existem duas escadas de predefinições de transcodificação selecionáveis.

  • Áudio: o áudio é transcodificado.

Resolução de entrada e taxa de bits máxima Detalhes da escada

480p30/60 até 1080p30/60, a 8,5 Mbps

Predefinição de transcodificação: entrega de maior largura de banda (padrão):

  1. 480p30 a 1,3 Mbps

  2. 360p30 a 0,7 Mbps

  3. 160p30 a 0,27 Mbps

  4. Somente áudio a 0,08 Mbps

Predefinição de transcodificação: entrega de largura de banda restrita:

  1. 480p30 a 0,8 Mbps

  2. 360p30 a 0,4 Mbps

  3. 160p30 a 0,22 Mbps

  4. Somente áudio a 0,08 Mbps

Canais BASIC

Os canais BASIC são transmixados. Uma única apresentação é produzida.

  • Predefinições de transcodificação: NA

  • Áudio: o áudio é transcodificado.

Resolução de entrada e taxa de bits máxima Detalhes da escada

Maior que 480p30/60 e menor ou igual a 1080p30/60, a 3,5 Mbps

Parâmetros de codificação da fonte (sem escada)

480p30/60 a 1,5 Mbps

Parâmetros de codificação da fonte (sem escada)

Configurações de vídeo

Recomendamos as seguintes configurações: Elas estão disponíveis para a maioria das APIs de hardware ou software de codificação de vídeo de H.264.

  • No codificador de vídeo, IDR/Keyframe defina para um intervalo de 2 segundos (ou 1 segundo, para uma end-to-end latência ainda menor).

  • Nível H.264: principal

  • Mudança de cena: desligado (preferencial)

  • Subamostra de croma: YUV420P

  • CABAC: preferencial

  • ColorSpace: BT.709 (recomendado para máxima compatibilidade entre HDTVs e monitores de computador). A transcodificação de vídeo do Amazon IVS oferece suporte à ColorSpace passagem; usuários avançados podem usar outros ColorSpace vídeos e vídeos de alcance completo.

Configurações de áudio

Nós oferecemos suporte às seguintes configurações:

  • Codec: AAC (LC)

  • Taxa de bits: 96 a 320 Kbps

  • Taxa de amostra: 44,1 Khz ou 48 Khz (é melhor combinar com seu fluxo de áudio de produção)

  • Canais: no máximo 2 em estéreo (1: mono ou 2: suporte a canais de áudio estéreo)

Use a CBR e não a VBR

Sempre use CBR (constante BitRate), não VBR (variável BitRate), como método de controle de taxa para codificadores. A CBR é mais adequada para a natureza da largura de banda fixa de redes e produz uma reprodução de vídeo mais previsível e estável para os dispositivos de clientes. Com uma taxa de bits consistente, os visualizadores conseguem facilmente selecionar um nível de qualidade que sua conexão possa lidar com o tempo.

Dependendo da complexidade da cena, a VBR pode resultar em picos na taxa de bits, o que pode gerar quedas de quadros antes que o vídeo chegue ao Amazon IVS e/ou a armazenagem em buffer em players de clientes.

É altamente recomendável usar apenas CBR. Se você usar a VBR, seus streams estarão mais sujeitos à armazenagem em buffer e reprodução que não são suaves.

Use sinais progressivos

Use fluxos de sinais progressivos; evite qualquer vídeo entrelaçado no fluxo de produção e/ou codificação. Os sinais de stream progressivo produzem uma qualidade de reprodução muito melhor exibindo um quadro inteiro de cada vez, evitando qualquer artefato de movimento produzido ao exibir um sinal entrelaçado.

Requisitos de rede

Você deve ter uma conexão de Internet estável que possa manter um stream de upload adequado e constante. Uma conexão instável com a Internet pode resultar em cortes e atrasos de streaming para os seus visualizadores.

Use conexões com fio. WiFi e as conexões LTE podem ser irregulares ou sofrer interferência ou latência devido à má priorização de QoS/fila de pacotes. Sempre que possível, mantenha uma conexão com fio para streams.

Planeje alocar 50% a mais de largura de banda do que o mínimo necessário. A sobrecarga é adicionada para compensar as flutuações de taxas de bits na codificação de um bitstream de vídeo.

Use uma VLAN de Internet dedicada para máquinas de codificação. Manter o codificador em uma rede separada evita efeitos potencialmente problemáticos, incluindo: poluição por tráfego, gargalos de largura de banda e fatores adversos de segurança.

Legenda codificada

O IVS oferece suporte para legenda codificada. Como um streamer, se quiser oferecer legendas para seu público, você deve transmitir dados de legenda em um formato aceito, incorporado em seu stream ou ao lado de seu stream por meio do seu codificador de vídeo.

O Amazon IVS aceita legendas no formato “linha 21” CEA-708/EIA-608 (também conhecido como 608 por 708). É possível transmitir legendas usando um dos seguintes métodos:

  • O CEA-708/EIA-608 incorporou o stream de vídeo elementar, conforme descrito no ATSC A/72 (SEI user_data). Esse formato é comum entre os codificadores de transmissão televisiva.

  • CEA-708/EIA-608 transmitido via script RTMPS/tag AMF0. onCaptionInfo Esse formato é comum entre codificadores de transmissão da Internet e servidores de mídia, como a Elemental Technologies e Wowza. Os SDKs do Player do Amazon IVS oferecem suporte a um idioma; eles não são oferecem suporte à reprodução de legendas com várias faixas.

Observação: os SDKs do Amazon IVS Player oferecem suporte a dados de legendas somente no campo CC1 NTSC 1. Eles não oferecem suporte à reprodução de legendas com várias faixas.

Ao transmitir por meio do RTMPS, o payload deve conter uma matriz ECMA com dois pares de elementos:

  • Uma string chamada type que contém os caracteres 708.

  • Uma string chamada data que contém uma payload base64-encoded CEA-708/EIA-608.

Por exemplo:

00000000 12 00 00 69 00 00 00 00 00 00 00 02 00 0d 6f 6e |...i..........on| 00000010 43 61 70 74 69 6f 6e 49 6e 66 6f 08 00 00 00 02 |CaptionInfo.....| 00000020 00 04 74 79 70 65 02 00 03 37 30 38 00 04 64 61 |..type...708..da| 00000030 74 61 02 00 3c 74 51 41 78 52 30 45 35 4e 41 4e |ta..<tQAxR0E5NAN| 00000040 4c 41 50 79 55 72 76 79 55 49 50 79 52 51 50 7a |LAPyUrvyUIPyRQPz| 00000050 49 35 66 7a 73 37 50 7a 76 4c 50 77 67 56 50 7a |I5fzs7PzvLPwgVPz| 00000060 33 36 66 7a 30 34 2f 78 6f 67 50 79 55 4c 2f 38 |36fz04/xogPyUL/8| 00000070 3d 00 00 09 00 00 00 74 |=......t|

Se você usar o codificador de vídeo da Elemental, configure-o da seguinte maneira:

  • Defina a legenda incorporada para “capturar 608 Campo 1”.

  • Incorpore legendas com onCaptionInfoa tag RTMPS no grupo de saída.

Para obter mais informações, consulte a publicação no blog: Adição de legendas codificadas a uma transmissão ao vivo do Amazon IVS.

Transmissão com FFmpeg

A FFmpeg é um projeto gratuito e de código aberto que compreende um conjunto amplo de bibliotecas de software para lidar com vídeo, áudio e outros arquivos multimídia e streams. Ele pode ser usado com muitos sistemas operacionais e dispositivos.

Consulte o Site da FFmpeg para obter informações sobre instalação e mais detalhes sobre a FFmpeg. Use a compilação estática mais recente (não compile).

Após a instalação, escolha uma fonte de entrada de áudio/vídeo para a FFmpeg. Você pode procurar o que está disponível, da seguinte forma:

ffmpeg -list_devices true -f dshow -i dummy.

Para obter mais informações, clique aqui. Dependendo do que estiver disponível e qual método de captura for direcionado, você deve conseguir capturar o vídeo/áudio (incorporado) diretamente do seu dispositivo selecionado e codificar os sinais com a FFmpeg. Por exemplo:

  • Webcam: para capturar a saída da webcam Logitech C920:

    ffmpeg -f dshow -video_size 1920x1080 -framerate 30 -i video="HD Pro Webcam C920":audio="Microphone (HD Pro Webcam C920)" -c:v libx264 -b:v 6000K -maxrate 6000K -pix_fmt yuv420p -r 30 -s 1920x1080 -profile:v main -preset veryfast -g 120 -x264opts "nal-hrd=cbr:no-scenecut” -acodec aac -ab 160k -ar 44100 -f flv rtmps://<IVS-ingest-server>/<IVS-stream-key>
  • Arquivo de vídeo: a FFmpeg funciona com muitos formatos de arquivo de vídeo e placas de captura. Veja a seguir um exemplo de streaming baseado em uma entrada MP4:

    ffmpeg -re -i input.mp4 -c:v libx264 -b:v 6000K -maxrate 6000K -pix_fmt yuv420p -s 1920x1080 -profile:v main -preset veryfast -force_key_frames expr:gte(t,n_forced*2) -x264opts "nal-hrd=cbr:no-scenecut” -acodec aac -ab 160k -ar 44100 -f flv rtmps://<IVS-ingest-server>/app/<IVS-stream-key>

Para obter mais informações sobre o que inserir para <IVS-ingest-server> e <IVS-stream-key>, consulte as informações sobre a configuração do software de streaming ao vivo em Conceitos básicos do streaming de baixa latência do IVS. Por exemplo:

  • Servidor de ingestão: rtmps://jds34ksdg3las.global-contribute.live-video.net/app/

  • Chave de stream: sk_us-west-2_abcd1234efgh5678ijkl

Transmissão com o SDK de Transmissão do Amazon IVS

O SDK de Transmissão do Amazon IVS é para desenvolvedores que estão desenvolvendo aplicações Android, iOS ou Web com o Amazon IVS. Consulte a documentação do Broadcast SDK no Guia do usuário do Amazon IVS, começando aqui. Existem subpáginas com guias para transmissão no Android, no iOS e na Web. Os SDKs de transmissão permitem personalizar a taxa de bits, a taxa de quadros e a resolução.

Teste o stream

Sempre verifique se o fluxo funciona.

Navegue até o stream de vídeo no Console do Amazon IVS para ver o que está no streaming no momento e gerencie o streaming ao vivo.