# Google Cast

Google Cast é um protocolo proprietário desenvolvido pelo Google para reproduzir conteúdo de áudio/vídeo transmitido pela Internet em um dispositivo consumidor compatível. O protocolo é usado para iniciar e controlar a reprodução de conteúdo em reprodutores de mídia digital, televisores de alta definição e sistemas de áudio domésticos usando um dispositivo móvel, computador pessoal ou alto-falante inteligente. O protocolo foi lançado em 24 de julho de 2013 para oferecer suporte ao Chromecast de primeira geração do Google. O Google Cast SDK foi lançado em 3 de fevereiro de 2014, permitindo que terceiros modificassem seu software para oferecer suporte ao protocolo. De acordo com o Google, mais de 20.000 aplicativos prontos para o Google Cast estavam disponíveis em maio de 2015. O suporte para Google Cast foi integrado em dispositivos subsequentes, como o Nexus Player e outros dispositivos Android TV (como televisores), bem como soundbars, alto-falantes e modelos posteriores do Chromecast. Dispositivos consumidores que suportam nativamente o protocolo são comercializados como "Chromecast built-in" ou "Chromecast integrado". Em outubro de 2017, mais de 55 milhões de Chromecasts e dispostivos com Chromecast integrado foram vendidos.

## Operação

Os receptores Google Cast podem transmitir conteúdo por meio de dois métodos: o primeiro emprega aplicativos móveis e da web que oferecem suporte à tecnologia Google Cast; o segundo permite o espelhamento de conteúdo do navegador Google Chrome em execução em um computador pessoal, bem como de conteúdo exibido em alguns dispositivos Android. Em ambos os casos, a reprodução é iniciada por meio do botão "transmitir" no dispositivo remetente.
* O principal método de reprodução de mídia no dispositivo é por meio de aplicativos móveis e da web habilitados para Google Cast, que controlam a seleção, reprodução e volume do programa. Os dispositivos receptores do Google Cast transmitem a mídia da web em uma versão local do navegador Chrome, liberando o dispositivo remetente para outras tarefas, como atender uma chamada ou usar outro aplicativo, sem interromper a reprodução. Os aplicativos móveis habilitados para Google Cast estão disponíveis para Android 4.1+ e iOS 7.0+; os aplicativos da web habilitados para Google Cast estão disponíveis em computadores que executam o Google Chrome versão 72 ou posterior (no Microsoft Windows 7+, macOS 10.7+ e Chrome OS) por meio da instalação da "extensão Cast" no navegador. O conteúdo de streaming pode ser baseado na Internet, conforme fornecido por aplicativos específicos, ou residir no armazenamento local do dispositivo remetente. Os aplicativos que fornecem acesso ao último incluem AllCast, Avia, Plex e Google Fotos.
* O conteúdo também pode ser espelhado em uma guia do navegador Chrome (com a extensão Cast) em um computador pessoal ou da tela de alguns dispositivos Android 4.4+. No caso de "transmissão de guia", a qualidade da imagem depende da capacidade de processamento do dispositivo, e os requisitos mínimos do sistema se aplicam ao streaming de vídeo. O conteúdo que usa plug-ins, como Silverlight e QuickTime, não funciona totalmente, e o stream pode não ter som ou imagem. Da mesma forma, as imagens da tela espelhadas de dispositivos Android são normalmente degradadas, refletindo o fato de que o vídeo exibido nas telas menores de tablets e smartphones geralmente é reduzido.
Os dispositivos remetentes anteriormente precisavam estar conectados à mesma rede Wi-Fi que um dispositivo receptor do Google Cast para transmitir conteúdo, até a adição de um recurso de "modo visitante" em 10 de dezembro de 2014. Quando ativado, o recurso permite que os dispositivos remetentes descubram um reprodutor próximo, detectando áudio ultrassônico emitido pela televisão ou sistema de alto-falantes ao qual o reprodutor está conectado; alternativamente, o dispositivo emissor pode ser emparelhado com o dispositivo receptor usando um código PIN de quatro dígitos. O modo visitante está disponível apenas para Chromecasts; os dispositivos Nexus Player e Android TV não são compatíveis com o recurso.

## SDK e aplicativos compatíveis
### Lançamento e distribuição

Quando o Chromecast de primeira geração foi lançado, quatro aplicativos compatíveis com o Google Cast estavam disponíveis: YouTube e Netflix eram suportados assim como Android, iOS e aplicativos web do Chrome; Google Play Música e Google Play Filmes e TV também eram suportados, mas originalmente apenas como aplicativos Android. Aplicativos adicionais que suportam a transmissão requerem acesso ao kit de desenvolvimento de software (SDK) do Google Cast. O SDK foi lançado pela primeira vez como uma versão de previsão em 24 de julho de 2013. O Google aconselhou os desenvolvedores interessados a usar o SDK para criar e testar aplicativos, mas não distribuí-los. Enquanto essa advertência permaneceu em vigor, os aplicativos habilitados para Google Cast para o Hulu Plus e Pandora Radio foram lançados em outubro de 2013, e o HBO GO em novembro. O Google convidou desenvolvedores para um hackathon de dois dias em 7 de dezembro no Googleplex, sua sede em Mountain View, oferecendo a oportunidade de testar o "próximo lançamento" do SDK. A sessão atraiu 40 desenvolvedores de 30 empresas e foi seguida por 10 aplicativos adicionais, incluindo Plex, Avia e Realplayer Cloud.
O Google abriu o SDK para todos os desenvolvedores em 3 de fevereiro de 2014. Em sua documentação introdutória e apresentação de vídeo, o Google disse que o SDK funcionava com dispositivos Chromecast e outros "dispositivos cast receptores" não nomeados. O gerente de produto do Chromecast, Rish Chandra, disse que o Google usou o tempo necessário para melhorar a confiabilidade do SDK e acomodar os desenvolvedores que buscavam uma maneira rápida e fácil de transmitir uma foto para uma televisão sem muita codificação. O Google também fez do SDK uma parte da estrutura do Google Play Services, dando aos usuários acesso a novos aplicativos sem ter que atualizar o próprio Android. Com o tempo, muitos outros aplicativos foram atualizados para oferecer suporte ao Google Cast. No Google I/O 2014, a empresa anunciou que 6.000 desenvolvedores registrados estavam trabalhando em 10.000 aplicativos prontos para Google Cast; na conferência do ano seguinte, o número de aplicativos compatíveis dobrou. A lista oficial de aplicativos e plataformas compatíveis do Google está disponível no site do Chromecast. O Google publicou estudos de caso que documentam a integração do Google Cast pela Comedy Central, Just Dance Now, Haystack TV e Fitnet.

### Framework

O framework de desenvolvimento tem dois componentes: um aplicativo remetente e um aplicativo receptor, os quais ambos usam APIs fornecidas pelo SDK.
* O aplicativo do remetente é baseado no aplicativo móvel Android ou iOS existente de um fornecedor, ou aplicativo da web para desktop, e fornece aos usuários descoberta de conteúdo e controles de mídia, incluindo a capacidade de selecionar para qual dispositivo o conteúdo é transmitido. Por trás, os aplicativos remetentes podem detectar dispositivos receptores na mesma rede local, estabelecer um canal seguro e trocar mensagens.
* O aplicativo receptor é um aplicativo da web em execução em um ambiente semelhante ao navegador Chrome residente no dispositivo receptor de transmissão. Aplicativos receptores de complexidades variadas podem ser desenvolvidos dependendo da variedade de formatos de conteúdo que o aplicativo pode reproduzir. Por exemplo, um aplicativo receptor simples pode apenas reproduzir conteúdo HTML5, enquanto aplicativos receptores personalizados, que exigem mais esforço de programação, podem ter uma variedade de protocolos de streaming, incluindo MPEG-DASH, HTTP Live Streaming (HLS) e o protocolo Microsoft Smooth Streaming.

### Mídia suportada

O Chromecast suporta os formatos de imagem BMP, GIF, JPEG, PNG e WEBP, com uma limitação de tamanho de exibição de 720p (1280 × 720 pixels). Os codecs de áudio compatíveis são HE-AAC, LC-AAC, MP3, Vorbis, WAV (LPCM), FLAC (até 96kHz / 24 bits) e Opus; AC-3 (Dolby Digital ) e E-AC-3 (EC-3, Dolby Digital Plus) estão disponíveis para passagem de áudio. Os codecs de vídeo compatíveis com o Chromecast de primeira e segunda geração são H.264 High Profile Level 4.1 (decodificação de até 720p/60 quadros por segundo (fps) ou 1080p/30fps) e VP8. Os codecs de vídeo compatíveis com a terceira geração do Chromecast são H.264 High Profile Level 4.2 (decodificação de até 720p/60 (fps) ou 1080p/60fps) e VP8. Os codecs de vídeo compatíveis com o Chromecast Ultra são HEVC/H.265 Main e Main 10 Profiles até o nível 5.1 (2160p/60 fps) e VP9 Profile 0 e Profile 2 até o nível 5.1 (2160p/60 fps).

### Funcionalidades adicionais e APIs

Na International CES 2015, o Google anunciou uma expansão para o Google Cast chamada "Google Cast para áudio", que permite que aplicativos que suportam o Google Cast SDK reproduzam áudio por meio de alto-falantes, soundbars e receptores compatíveis com conexão Wi-Fi. Os fabricantes que oferecem suporte ao Google Cast como uma função integrada em seus alto-falantes incluem LG e Sony.
Em maio de 2015, o Google apresentou novos conjuntos de APIs ao Google Cast. As APIs do Cast Remote Display permitem que os desenvolvedores criem experiências de segunda tela para aplicativos como jogos sem a necessidade de espelhar monitores. As APIs do Game Manager oferecem aos desenvolvedores mais opções para a criação de jogos multijogador. Por fim, APIs adicionais foram fornecidas para controlar a reprodução automática e o enfileiramento de conteúdo.
Em setembro de 2015, o Google anunciou o "Fast Play" e as ferramentas de desenvolvedor que o acompanham, que visam reduzir os atrasos entre o carregamento de conteúdo. Em um cenário típico, se um usuário assistiu aos três primeiros episódios de uma série de televisão, o quarto episódio pode carregar em segundo plano. O lançamento do recurso foi adiado.