

# SDK do IVS Player
<a name="player"></a>

Para usar o Amazon Interactive Video Service (IVS), você deve usar o player do Amazon IVS. O player é um conjunto de SDKs entre plataformas para reprodução de streams do Amazon IVS. Ele foi projetado para aproveitar a arquitetura do Amazon IVS e otimizado para reprodução do Amazon IVS.

O único player cujo performance podemos garantir é o player do Amazon IVS. Para obter baixa latência, o player do Amazon IVS é necessário.

Os principais recursos do player do Amazon IVS são:
+ **Streaming de baixa latência**: a baixa latência é um componente crítico na criação de boas experiências de usuário interativas que enriquecem a experiência do público. A latência se arrasta incrementalmente ao longo do caminho de transmissão entre o transmissor e o visualizador, prejudicando a capacidade de resposta.

  Latência de ponta a ponta é o atraso a partir do momento em que um stream ao vivo é capturado na câmera, até ela aparecer na tela de um visualizador. O Amazon IVS foi projetado para oferecer baixa latência de ponta a ponta (menos de cinco segundos, dependendo do local de transmissão e das configurações do transmissor). *Para alcançar essa baixa latência, o player do Amazon IVS é necessário*.
+ **Consistência entre plataformas**: os visualizadores assistem a transmissões em uma variedade de plataformas. Desde dispositivos móveis até navegadores da Web, o player do Amazon IVS oferece a todos os visualizadores uma experiência semelhante. Essa consistência é possível porque cada plataforma usa a mesma biblioteca de funções do player. A biblioteca do player é um componente integral da arquitetura do Amazon IVS. O uso de uma pilha de vídeo garante que todos os comportamentos de reprodução de vídeo, incluindo o modo de baixa latência, metadados cronometrados, análises, rastreamento de erros, relatórios e registro em log, estejam disponíveis de forma consistente em todas as plataformas suportadas.
+ **Streaming adaptativa de taxa de bits (ABR)**: o player do Amazon IVS usa algoritmos ABR otimizados para ambientes de baixa latência. O player mede a qualidade do serviço e a disponibilidade da largura de banda em tempo real e adapta a qualidade do vídeo e os níveis de buffer, para fornecer reprodução ininterrupta. Quando a qualidade da conexão é atingida, o ABR muda para uma taxa de bits mais baixa; quando a qualidade da conexão melhora, ele muda para uma taxa de bits mais alta.
+ **Metadados temporizados**: o Player do Amazon IVS é compatível com *metadados cronometrados*, que pode ser usado para construir elementos interativos, como pesquisas e questionários. Metadados é um conjunto de dados que descreve e fornece informações sobre outros dados. Com metadados “cronometrados”, um código de tempo acompanha a parte dos dados sobre o stream. Durante a reprodução, o código de tempo serve como um ponto de sinalização para acionar a ação com base nos dados, como:
  + Enviando estatísticas de players para um stream de esportes
  + Enviar detalhes do produto para um stream de compras ao vivo
  + Enviando perguntas para um stream de perguntas ao vivo
+ **Tratamento de erros robusto**: o tratamento de erros transitórios evita interrupções na experiência de visualização. O tratamento de erros robusto do Reprodutor do Amazon IVS detecta muitos possíveis erros de streaming, alternando automaticamente para uma representação alternativa. Os visualizadores continuam assistindo a transmissão sem interrupções, sem ter que tomar nenhuma ação corretiva.
+ **Facilidade de integração**: a API do player do Amazon IVS preenche a lacuna entre as aplicações dos clientes do Amazon IVS e a biblioteca do player. A API tem ligações para todas as plataformas suportadas, facilitando a integração do player às aplicações, usando ambientes e técnicas de codificação familiares. Com controle total sobre elementos de interface do usuário, os clientes podem personalizar os aspectos de branding e apresentação de suas aplicações. 

O repdrodutor do Amazon IVS não é compatível com a transmissão via AirPlay, mas os desenvolvedores podem implementar o AirPlay fazendo a transição das sessões para o AVPlayer. No entanto, a latência no AVPlayer é maior do que no SDK do Reprodutor do Amazon IVS. Portanto, o chaveamento não será contínuo. Um exemplo de como realizar essa transição é fornecido [aqui](https://github.com/aws-samples/sample-for-airplay-on-ivs).

A transmissão com o Chromecast pode ser implementada fora do player via aplicações de receptor padrão do Chromecast. No entanto, a latência nessas aplicações é maior do que no SDK do player do Amazon IVS. Portanto, o chaveamento não será contínuo. Consulte também nossa documentação sobre o SDK de Transmissão do Amazon IVS: para [streaming de baixa latência](broadcast.md) e para [streaming em tempo real](https://docs.aws.amazon.com//ivs/latest/RealTimeUserGuide/broadcast.html).

## Requisitos de navegador e da plataforma
<a name="player-browser-platform-requirements"></a>

Para obter detalhes sobre as versões mais recentes lançadas de vários navegadores, consulte:
+ [Status da plataforma Chrome](https://chromestatus.com/roadmap)
+ [Lançamentos do Firefox](https://www.mozilla.org/en-US/firefox/releases/)
+ [Agenda de lançamentos do Microsoft Edge](https://learn.microsoft.com/en-us/deployedge/microsoft-edge-release-schedule)
+ [Notas de lançamento do Safari](https://developer.apple.com/documentation/safari-release-notes)

Embora o Amazon IVS possa funcionar com alguns navegadores mais antigos, não corrigimos bugs relacionados a navegadores mais antigos.

O SDK do Reprodutor da Web do IVS (incluindo as integrações para Video.js e reprodutor JW) não tem suporte em ambientes semelhantes a navegadores. Isso inclui WebViews nativas e “dispositivos de 10 pés” (TVs, consoles, decodificadores) que são compatíveis com aplicações da Web. Entre em contato com o suporte do IVS se ficar em dúvida quanto à compatibilidade de um navegador específico não incluído nas tabelas listadas abaixo.

### Navegadores desktop
<a name="player-browser-platform-requirements-desktop"></a>


| Navegador desktop | Plataformas com suporte | Versões compatíveis | 
| --- | --- | --- | 
| Chrome | Windows, macOS  | Duas versões principais (versão anterior atual e mais recente)  | 
| Firefox | Windows, macOS | Duas versões principais (versão anterior atual e mais recente) | 
| Borda | Windows 8.1 e posteriores  | 44.0 e posterior (No modo de qualidade automática no [Microsoft Edge Legacy](https://support.microsoft.com/en-us/microsoft-edge/what-is-microsoft-edge-legacy-3e779e55-4c55-08e6-ecc8-2333768c0fb0), só há suporte para a reprodução de latência normal, não para a reprodução de baixa latência. O modo de qualidade automática refere-se a se o ABR está habilitado. Por exemplo, no Web player, consulte `setAutoQualityMode`.  | 
| Safari | macOS | Duas versões principais (versão anterior atual e mais recente)(No modo de qualidade automática no Safari para macOS 14 e posteriores, o Reprodutor do IVS 1.3.0 e posteriores oferecem suporte à reprodução de baixa latência. Para versões anteriores do Safari e do Reprodutor do IVS, apenas há suporte para a reprodução de latência normal. Consulte acima sobre o "modo de qualidade automática".) | 

### Navegadores móveis
<a name="player-browser-platform-requirements-mobile"></a>


| Navegadores móveis | Versões compatíveis | 
| --- | --- | 
| Chrome para iOS, Safari para iOS | Duas versões principais (versão anterior atual e mais recente) (Não há suporte para a reprodução de baixa latência. Há suporte para a reprodução de latência normal. Essa restrição se aplica a todos os navegadores para iOS.) (Só há suporte para metadados cronometrados no Player 1.3.0 e posterior.) | 
| Chrome para iPadOS, Safari para iPOS | Duas versões principais (versão anterior atual e mais recente) (Quando a opção “Request Mobile Website” [Solicitar site móvel] estiver selecionada: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/ivs/latest/LowLatencyUserGuide/player.html)  | 
| Chrome para Android | Duas versões principais (versão anterior atual e mais recente) | 

### Plataformas nativas
<a name="player-browser-platform-requirements-native"></a>


| Plataforma | Versões compatíveis | Dispositivos compatíveis | 
| --- | --- | --- | 
| Android | 6.0 e posterior | Telefones e tablets | 
| iOS | 14\$1  | Todos | 

O IVS suporta no mínimo 4 versões principais do iOS e 6 versões principais do Android. Nosso suporte à versão atual pode ir além desses mínimos. Os clientes serão notificados por meio das notas de lançamento do SDK pelo menos 3 meses antes do fim do suporte para uma versão principal. 

## Reduzir a latência em players de terceiros
<a name="player-reducing-latency"></a>

**Para os tipos de canal Basic e Standard**: [ara obter a menor latência possível, é necessário usar o reprodutor do Amazon IVS. Em players de terceiros (incluindo o iOS Safari), é possível reduzir a latência para cerca de 10 segundos usando a seguinte configuração:
+ Defina o intervalo de quadros-chave do seu codificador (por exemplo, OBS) para 2 segundos ou menos.
+ Adicione `?keyframeInterval=2` ao URL do RTMP(S). Por exemplo, .: `rtmps://a1b2c3d4e5f6.global-contribute.live-video.net:443/app/sk_us-west-2_abcd1234efgh5678ijkl?keyframeInterval=2`

**Observação**: o intervalo de quadros-chave especificado como parte do URL RTMP deverá ser maior ou igual ao valor configurado no codificador; caso contrário, poderá haver problemas de reprodução. É possível definir o valor para qualquer número inteiro entre 2 e 6, inclusive, mas 2 permite a menor latência.

**Para tipos avançados de canal**: a orientação acima não se aplica. Os tipos avançados de canal geram intervalos de quadros-chave automaticamente para eficiência de codificação, com no máximo 2 segundos entre os quadros-chave, independentemente da configuração do intervalo do quadro-chave de codificação de origem.

### iOS Safari
<a name="player-reducing-latency-ios-safari"></a>

No iOS Safari, você pode reduzir a latência para aproximadamente 6 a 8 segundos usando o Reprodutor do IVS e configurando-o para usar um operador de serviço. Consulte [Configurar o operador de serviço](https://docs.aws.amazon.com//ivs/latest/LowLatencyUserGuide/web-getting-started.html#web-service-worker) no *SDK do Reprodutor: guia da Web* para obter detalhes de implementação e um exemplo de referência.

**Observação**: a obtenção da menor latência requer uma transmissão do IVS com o intervalo do quadro-chave definido para 2 segundos.

## Reprodução somente de áudio
<a name="player-audio-only-playback"></a>

Todos os tipos de canais do IVS oferecem suporte a representações somente de áudio. Isso pode ser particularmente valioso para aplicações de dispositivos móveis. Por exemplo, em sua aplicação de dispositivo móvel, é possível mudar o reprodutor para a representação somente de áudio quando o usuário coloca a aplicação em segundo plano para conservar a largura de banda.

Para canais ADVANCED-SD e ADVANCED-HD, a representação somente de áudio é incluída automaticamente na lista de reprodução multivariante. Para canais BASIC e STANDARD, você deve anexar o parâmetro de consulta `?allow_audio_only=true` ao URL de reprodução para permitir a inclusão da representação somente de áudio. 

Observação: o SDK do reprodutor para a Web do IVS oferece suporte à reprodução somente de áudio nas versões 1.24.0 e posteriores.

## Suporte
<a name="player-support"></a>

Se você encontrar um erro de reprodução ou outro problema de reprodução com seu stream, determine o identificador exclusivo da sessão de reprodução por meio da API do player. 


| Para este player do Amazon IVS: | Use este: | 
| --- | --- | 
| Android | `sessionId`Função   | 
| iOS | `sessionId` Propriedade de `IVSPlayer`  | 
| Web | `getSessionId`Função  | 

Compartilhe esse identificador de sessão de reprodução com o AWS Support. Com ele, eles podem obter informações para ajudar a solucionar seu problema.

**Observação:** o player é continuamente melhorado. Consulte [Notas de release do Amazon IVS](release-notes.md) para ver as versões disponíveis e problemas corrigidos. Se apropriado, antes de entrar em contato com o suporte, atualize sua versão do Player e veja se isso resolve seu problema.

### Versionamento
<a name="player-support-versioning"></a>

Os SDKs do Player do Amazon IVS usam[ versionamento semântico](https://semver.org/).

Para esta discussão, suponha que:
+ A versão mais recente é 4.1.3.
+ A versão mais recente da versão principal anterior é 3.2.4.
+ A versão mais recente da versão 1.x é 1.5.6.

Novos recursos compatíveis com versões anteriores são adicionados como versões secundárias da versão mais recente. Nesse caso, o próximo conjunto de novos recursos vai ser adicionado como versão 4.2.0.

Compatíveis com versões anteriores, pequenas correções de bugs são adicionadas como lançamentos de patch da versão mais recente. Aqui, o próximo conjunto de pequenas correções de bugs vai ser adicionado como versão 4.1.4.

Compatíveis com versões anteriores, as principais correções de bugs são tratadas de forma diferente; estas são adicionadas a várias versões:
+ Versão do patch da versão mais recente. Aqui, esta é a versão 4.1.4.
+ Lançamento do patch da versão secundária anterior. Aqui, esta é a versão 3.2.5.
+ Versão do patch da versão 1.x mais recente. Aqui, esta é a versão 1.5.7.

As principais correções de bugs são definidas pela equipe de produtos do Amazon IVS. Exemplos típicos são atualizações de segurança críticas e outras correções selecionadas necessárias para os clientes.

**Observação:** nos exemplos acima, versões lançadas incrementam sem ignorar nenhum número (por exemplo, de 4.1.3 para 4.1.4). Na realidade, um ou mais números de patch podem permanecer internos e não ser liberados, de modo que a versão lançada pode ser incrementada de 4.1.3 para, digamos, 4.1.6.