RTMP ou HLS?

Há pontos de extremidade de servidor, como o RTMP Servidores da minha empresa, que podem atuar como um par e ser usados ​​para fornecer vídeo com enorme eficiência.

O HLS é ruim para transmissão ao vivo. Possui latência inerente incorporada no protocolo.

RTMP é atualmente a abordagem mais comum, mas aqui está a coisa – para jogar RTMP dentro de um navegador você precisa do Flash, e o Flash está sendo inicializado da maioria dos navegadores modernos agora.

O WebRTC é novo e ainda não é suportado em todos os lugares. Mas oferece baixa latência na mesma extensão do RTMP, com melhor qualidade de mídia (várias razões). Hoje, ele não é usado pela maioria dos serviços de transmissão ao vivo, mas vejo as coisas mudando aqui. Muitos fornecedores de streaming – grandes e pequenos – estão experimentando ou até mesmo implementando serviços de streaming ao vivo que dependem do WebRTC.

Como já mencionado acima, você deseja oferecer suporte a navegadores móveis (particularmente o iOS Safari), então você precisará usar protocolos baseados em HTTP como o HLS. No entanto, existem tradeoffs com protocolos HTTP para streaming. O principal deles é a latência. Se você fizer um fluxo HLS, o melhor que você pode ajustá-lo para latência é cerca de 8 segundos ou mais, mas normalmente fluxos baseados em HTTP são mais de 30 a 40 segundos. Isso tem a ver com o design do protocolo em si e não há muito o que fazer sobre isso. Quando a latência é muito importante, muitos desenvolvedores criam aplicativos nativos para dispositivos móveis devido a essa limitação.

Eu respondi a outra pergunta comparando os protocolos de transmissão de vídeo que entram em mais detalhes, e pode ser útil para você: Qual protocolo é melhor para uma transmissão de vídeo ao vivo de um servidor para um Android: RTSP, RTMP, HTTP ou outra coisa?

Falando em latência, eu estaria fazendo um desserviço se eu não mencionasse o WebRTC. O WebRTC é um protocolo de streaming de vídeo ponto a ponto (P2P) de baixa latência que é incorporado em navegadores modernos. Há pontos de extremidade de servidor, como o RTMP Servidores da minha empresa, que podem atuar como um par e ser usados ​​para fornecer vídeo com enorme eficiência. Isso significa que você pode obter latência abaixo de um segundo para coisas como esportes ao vivo, em que a latência é realmente importante.

Finalmente, minha sugestão é usar a melhor ferramenta para cada uma das plataformas e, assim, a resposta real para a sua pergunta é: RTMP e HTTP. É por isso que criamos o player em nosso HTML5 SDK (HTML5 – Red5 Pro) para oferecer suporte ao WebRTC primeiro, depois voltamos ao Flash / RTMP se ele não for suportado e, finalmente, se nem o WebRTC nem o Flash Player estiverem presentes, ele usará HLS.