Este tópico descreve como usar o Real-Time Streaming (RTS) para reduzir a latência de transmissão ao vivo para menos de 400 ms e oferecer aos espectadores uma experiência de visualização suave e em tempo real.
Visão geral
A solução de transmissão ao vivo baseia-se na Global Realtime Transport Network (GRTN) da Alibaba Cloud. Ela utiliza o protocolo WebRTC para atingir uma latência de ponta a ponta de 200 a 400 ms. Essa solução também se integra perfeitamente à transmissão ao vivo padrão, garantindo compatibilidade futura.
Alcance uma latência de ponta a ponta de 200–400 ms com o RTS:
O streamer captura o conteúdo ao vivo e usa o Push SDK para enviar o fluxo ao ponto de presença (POP) mais próximo da Alibaba Cloud via protocolo WebRTC.
A transmissão ocorre em tempo real pelos mais de 3.200 nós da GRTN, utilizando tecnologias de roteamento inteligente e Qualidade de Serviço (QoS).
Os espectadores recebem o fluxo do ponto de presença (POP) mais próximo da Alibaba Cloud pelo protocolo WebRTC para reprodução, alcançando uma latência de ponta a ponta de 200 a 400 ms.
(Opcional) Ative a retransmissão de fluxo para suportar processamento de mídia, RTS e transmissão ao vivo padrão:
Ao ativar a retransmissão de fluxo, o ApsaraVideo Live converte automaticamente o fluxo recebido para gerar um fluxo RTMP.
Configure serviços de mídia para esse fluxo, como transcodificação, gravação e captura de snapshot.
Para manter a baixa latência na recepção do fluxo, utilize o RTS. Os espectadores ainda podem receber o fluxo via WebRTC para obter uma latência de ponta a ponta de 400 a 800 ms.
Caso prefira a transmissão ao vivo padrão, receba o fluxo para reprodução usando protocolos como RTMP, FLV e HLS.
Implementação
Pré-requisitos
Serviço ApsaraVideo Live ativado. Para mais informações, consulte Ativar o ApsaraVideo Live.
Domínios de ingestão e de streaming configurados. Para mais detalhes, veja as seções "Adicionar um domínio de ingestão e um domínio de streaming", "Configurar um registro CNAME" e "Associar um domínio de ingestão a um domínio de streaming" em Introdução ao ApsaraVideo Live.
Configure certificados HTTPS para os domínios
Este tópico utiliza uma demonstração baseada em navegador para ingestão e recepção de fluxo. O WebRTC nos navegadores exige HTTPS por questões de segurança. Portanto, configure certificados HTTPS para seus domínios de ingestão e de streaming. Para instruções, consulte Configurar aceleração segura HTTPS.
Se você utilizar um SDK nativo para ingestão e reprodução de fluxo, não será necessário configurar certificados HTTPS.
Ative o Real-Time Streaming (RTS)
Faça login no console do ApsaraVideo Live.
No painel de navegação à esquerda, clique em Live +> RTS.
Selecione um domínio de streaming.
Ative a chave RTS e selecione Half-second latency (end-to-end latency 200–400 ms).
Após selecionar Half-second latency, apenas a ingestão e reprodução de fluxo via protocolo ARTC terão suporte. A transmissão ao vivo padrão, a ingestão via RTMP e recursos em nuvem como transcodificação e gravação ficarão desabilitados para o domínio de streaming atual.
Gere URLs de ingestão e reprodução
Método 1: Gerar URLs no console
Depois de ativar o RTS, acesse a ferramenta de teste de streaming e clique em Generate URLs. Insira um AppName e StreamName para gerar URLs de ingestão e reprodução RTS baseadas em ARTC.
Na página de configuração, selecione um domínio de streaming e seu domínio de ingestão associado. Na seção Latency goal, escolha sub-second latency (latência de ponta a ponta: 400–800 ms) ou Half-second latency (latência de ponta a ponta: 200–400 ms). Se precisar de reprodução via HTTPS, certifique-se de ter configurado um certificado SSL e o cabeçalho de resposta Access-Control-Allow-Origin. Tanto a URL de ingestão quanto a de reprodução geradas começarão com artc://.
Método 2: Montar URLs manualmente
Para montar as URLs manualmente, reúna as seguintes informações: domínio de ingestão, domínio de streaming, AppName, StreamName, ID do modelo de transcodificação (se aplicável) e string de autenticação (se aplicável).
|
Tipo de URL |
Formato da URL |
Regra de montagem |
|
URL de ingestão |
Suporta RTMP, RTS e SRT. Recomendamos o uso de RTMP para ingestão. Exemplo: RTMP: Nota
RTS suporta a recepção de fluxos usando URLs no formato RTS. |
Domínio de ingestão + AppName + StreamName + String de autenticação |
|
URL de streaming |
Suporta RTMP, FLV, M3U8 e RTS. Recomendamos o uso de RTS para reprodução. Exemplo: RTS: |
Domínio de streaming + AppName + StreamName + String de autenticação |
|
URL de fluxo transcodificado Nota
Se você usar um modelo de transcodificação, deverá montar a URL de streaming seguindo este formato. |
Suporta RTMP, FLV, M3U8 e RTS. Recomendamos o uso de RTS para reprodução. Exemplo: RTS: |
Domínio de streaming + AppName + StreamName_ID do modelo de transcodificação + String de autenticação |
Para domínios de ingestão e streaming associados, é possível ingerir e reproduzir fluxos desde que o AppName e o StreamName sejam idênticos em ambos.
Uma URL de fluxo transcodificado exige um modelo de transcodificação. Encontre o ID do modelo no console. Transcodificação de transmissão ao vivo.
Um algoritmo de autenticação MD5 gera a string de autenticação (auth_key). A autenticação de URL deve estar habilitada. Componentes de uma URL autenticada.
Substitua {transcoding_template_ID} ou {authentication_string} pelos dados reais e remova as chaves {} da URL final.
Ingira o fluxo RTS
Integre um dos seguintes Push SDKs:
|
RTS Push SDK |
Referências |
|
Push SDK for iOS |
Nota
O Push SDK for iOS suporta ingestão de fluxo baseada em WebRTC por padrão. |
|
Push SDK for Android |
Nota
O Push SDK for Android suporta ingestão de fluxo baseada em WebRTC por padrão. |
|
Use o OBS para ingestão de fluxo via protocolo WHIP |
Siga as etapas abaixo para usar a demonstração web na ingestão de fluxo RTS:
Na demonstração, selecione o modo Stream ingest.
-
Na lista suspensa none, selecione camera ou screen conforme sua necessidade.
Se selecionar camera, clique nos botões Microphone e Camera para conceder as permissões necessárias ao navegador. Após conceder as permissões, selecione seus dispositivos nas listas suspensas de microfone e câmera.
Insira a URL de ingestão RTS gerada na etapa Gerar URLs de ingestão e reprodução e clique em Create Local Stream.
Clique em Start para iniciar a ingestão do fluxo.
Reproduza o fluxo RTS
Integre um dos seguintes ApsaraVideo Player SDKs:
|
RTS Player SDK |
Referências |
|
ApsaraVideo Player SDK for Web |
|
|
ApsaraVideo Player SDK for iOS |
|
|
ApsaraVideo Player SDK for Android |
|
|
ApsaraVideo Player SDK for Flutter |
|
|
ApsaraVideo Player SDK for Windows |
Nota
Para obter o ApsaraVideo Player SDK for Windows, entre em contato com nossa equipe de vendas. |
Siga as etapas abaixo para usar a demonstração web na reprodução RTS:
Acesse a demonstração web RTS para reprodução.
Na demonstração, selecione o modo Stream pull.
Insira a URL de reprodução RTS gerada na etapa Gerar URLs de ingestão e reprodução.
Clique em Start.
(Opcional) Configure a retransmissão de fluxo
Na página de configurações do RTS, selecione Half-second latency (end-to-end latency 200–400 ms).
Clique em Configure Stream Relay, ative a chave e selecione outro domínio de ingestão para receber o fluxo RTMP retransmitido.
Por exemplo, o domínio de ingestão de destino é push.example.com, e seu domínio de streaming associado é pull.example.com.
Não é possível ativar o modo RTS Half-second latency para o domínio de ingestão de destino ou seu domínio de streaming associado.
A retransmissão interna de fluxo não gera custos.
(Opcional) Configure serviços de mídia para fluxos retransmitidos
Após configurar a retransmissão de fluxo, defina modelos de processamento de mídia para o domínio de streaming (pull.example.com) associado ao domínio de ingestão de destino.
No painel de navegação à esquerda do console do ApsaraVideo Live, clique em Feature Management e selecione os recursos que deseja configurar.
A seção Feature Management inclui itens de configuração para recursos como Live Recording, Live Transcoding, Live Watermark, Live Snapshot Capture, Live Time Shifting, Content Moderation, Live Packaging, Real-time Subtitles (visualização pública), Edge Transcoding, DRM Management, Callback Management e Stream Pull and Relay.
(Opcional) Reproduza o fluxo retransmitido com protocolos padrão
Após a retransmissão do fluxo, utilize o domínio de streaming (pull.example.com) associado ao domínio de ingestão de destino para reproduzir o fluxo original ou transcodificado usando transmissão ao vivo padrão (RTMP, FLV ou HLS). Para mais informações, consulte Reproduzir uma transmissão ao vivo padrão.