Guia de práticas recomendadas de transmissão ao vivo dos Serviços de Mídia
Os clientes geralmente perguntam como podem reduzir a latência de sua transmissão ao vivo. Este artigo descreve as práticas recomendadas para alcançar transmissões ao vivo de baixa latência, além da codificação de eventos ao vivo.
Nota
Antes de continuar lendo este artigo, leia o artigo HLS de Baixa Latência (LL-HLS) para entender a baixa latência com codificação de eventos ao vivo. Em seguida, volte para este guia para entender o que mais pode afetar a latência de streaming.
Há muitos fatores que determinam a latência de ponta a ponta de um fluxo além de como a mídia é codificada. Aqui estão alguns que você deve considerar:
Atrasos no lado do codificador de contribuição. Quando os clientes usam um software de codificação, como OBS Studio, Wirecast ou outros, para enviar uma transmissão ao vivo rtmp para os Serviços de Mídia. As configurações neste software afetam a latência de ponta a ponta de uma transmissão ao vivo.
Atrasos no pipeline de transmissão ao vivo nos Serviços de Mídia do Azure
Desempenho da CDN
Algoritmos de buffer do player de vídeo e condições de rede no lado do cliente
Tempo de provisionamento
Codificador de contribuição
Você está no controle das configurações das configurações do codificador de origem antes que o fluxo RTMP chegue aos Serviços de Mídia. Aqui estão algumas recomendações para as configurações que lhe dariam a menor latência possível:
Escolha a região física mais próxima do codificador de contribuição para sua conta dos Serviços de Mídia. Isso garantirá que você tenha uma ótima conexão de rede com a conta dos Serviços de Mídia.
Use um tamanho de fragmento consistente. Recomendamos um tamanho gop de 2 segundos. O padrão em alguns codificadores, como o OBS, é de 8 segundos. Verifique se você alterou essa configuração.
Use o codificador de GPU se o software de codificação permitir que você faça isso. Isso permitiria que você descarregasse o trabalho de CPU para a GPU.
Use um perfil de codificação otimizado para baixa latência. Por exemplo, com o OBS Studio, se você usar o codificador Nvidia H.264, poderá ver a predefinição de "latência zero".
Envie conteúdo que não seja mais alto em resolução do que o que você planeja transmitir. Por exemplo, se você estiver usando eventos ao vivo de codificação padrão de 720p, envie um fluxo que já esteja em 720p.
Mantenha a taxa de quadros em 30fps ou inferior, a menos que use eventos ao vivo de passagem. Embora dêmos suporte à entrada de 60 fps para eventos ao vivo, nossa saída de evento ao vivo de codificação ainda não está acima de 30 fps. Para HLS de Baixa Latência, a taxa de quadros fixa é recomendada e a duração máxima do quadro não deve exceder 0,5 segundos para a melhor experiência.
Configuração do evento ao vivo dos Serviços de Mídia do Azure
Aqui estão algumas configurações que ajudarão você a reduzir a latência em nosso pipeline:
Use as opções de fluxo de baixa latência para eventos ao vivo. Para as opções de fluxo de codificação Standard (até 720p) e Codificação Premium (até 1080p), a menos que você precise de uma janela DVR com mais de 6 horas ou saída de streaming suave, use a configuração de latência de fluxo de baixa latência.
Recomendamos que você escolha a saída cmaf para a reprodução HLS e DASH. Isso permite que você compartilhe os mesmos fragmentos para ambos os formatos. Ele aumenta a taxa de ocorrências do cache quando a CDN é usada. Por exemplo:
Tipo Formato Exemplo de URL HLS CMAF format=m3u8-cmaf https://amsv3account-usw22.streaming.media.azure.net/21b17732-0112-4d76-b526-763dcd843449/ignite.ism/manifest(format=m3u8-cmaf)
MPEG-DASH CMAF format=mpd-time-cmaf https://amsv3account-usw22.streaming.media.azure.net/21b17732-0112-4d76-b526-763dcd843449/ignite.ism/manifest(format=mpd-time-cmaf)
Se você precisar escolher a saída TS, use uma taxa de empacotamento HLS de 1. Isso nos permite empacotar apenas um fragmento em um segmento HLS. Você não terá todos os benefícios de LL-HLS em jogadores nativos da Apple.
Otimizações do player
Ao escolher e configurar um player de vídeo, use as configurações otimizadas para menor latência.
Os Serviços de Mídia dão suporte a diferentes saídas de protocolo de streaming – DASH, HLS com saída TS e HLS com fragmentos CMAF. Ao usar a opção LowLatencyV2
fluxo, certifique-se de encontrar um player que dê suporte ao HLS de Baixa Latência (LL-HLS). Dependendo da implementação do player, as decisões de buffer afetam a latência que um visualizador observa. Condições de rede ruins ou algoritmos padrão que favorecem a qualidade e a estabilidade da reprodução podem fazer com que os jogadores decidam armazenar mais conteúdo em buffer antecipadamente para evitar interrupções durante a reprodução. Esses buffers, antes e durante as sessões de reprodução, adicionariam à latência de ponta a ponta.
Quando o Player de Mídia do Azure é usado, o perfil Heurística de Baixa Latência otimiza o jogador para ter a menor latência possível no lado do jogador. Esse player só dá suporte ao DASH, a menos que esteja sendo usado no Safari em dispositivos Apple.
Opções e otimizações da CDN
Os pontos de extremidade de streaming são os servidores de origem que fornecem o conteúdo de streaming de VOD e ao vivo para a CDN ou para o cliente diretamente. É melhor usar uma CDN (Rede de Distribuição de Conteúdo) com uma origem blindada para garantir que o tráfego para seu conteúdo de mídia seja entregue com eficiência.
É recomendável usar a CDN do Azure fornecida pela Verizon (Standard ou Premium). Otimizamos a experiência de integração para que um cliente possa configurar essa CDN com uma única seleção no portal do Azure. Certifique-se de ativar do Origin Shield e otimizações de streaming para o ponto de extremidade da CDN sempre que você iniciar o ponto de extremidade de streaming.
Nossos clientes também têm boas experiências trazendo sua própria CDN. Verifique se medidas são tomadas na CDN para proteger a origem do tráfego excessivo.
Você também pode melhorar o desempenho configurando regras para o perfil cdn. Consulte Como habilitar otimizações de CDN.
Escala de ponto de extremidade de streaming
Nota
Um
Um ponto de extremidade/origem de streaming premium oferece mais flexibilidade e isolamento para os clientes dimensionarem adicionando ou removendo unidades de streaming de dedicadas. Uma unidade de streaming é um recurso de computação alocado para um ponto de extremidade de streaming. Cada unidade de streaming pode transmitir aproximadamente 200 Mbps de tráfego.
Embora você possa transmitir simultaneamente muitos eventos ao vivo ao mesmo tempo usando o mesmo ponto de extremidade de streaming, o máximo de unidades de streaming padrão necessárias para um ponto de extremidade de streaming é 10. Você pode abrir um tíquete de suporte para solicitar mais do que o padrão 10.
Determinar as unidades de streaming premium necessárias
Há duas etapas para determinar o número de pontos de extremidade de streaming e unidades de streaming necessárias:
Determine a saída total necessária.
Divida a saída total por 200, que é o máximo de Mbps que cada unidade de streaming pode transmitir.
Determinar a saída total necessária
Determine a saída total necessária usando a fórmula a seguir.
Total de saídas necessária = largura de banda média x número de visualizadores simultâneos x por centomanipulados pelo ponto de extremidade de streaming.
Vamos dar uma olhada em cada um dos multiplicadores por sua vez:
Largura de banda média. Qual é a média taxa de bits que você planeja transmitir? Em outras palavras, se você vai ter várias taxas de bits disponíveis, qual taxa de bits é a média de todas as taxas de bits que você está planejando? Você pode estimar isso usando um dos seguintes métodos:
Para um evento ao vivo que inclui codificação:
Se você não souber qual será sua média largura de banda, poderá usar nossas principais taxas de bits como uma estimativa. Nosso taxa de bits de superior é de 5,5 Mbps para eventos ao vivo codificados em 1080p, portanto, sua taxa média de bits será em torno de 3,5 Mbps.
Examine a predefinição de codificação usada para codificar o evento ao vivo, por exemplo, a predefinição AdaptiveStreaming(H.264). Veja este exemplo de saída .
Para um evento ao vivo que está simplesmente usando passagem e não codificação:
- Verifique a escada de taxa de bits de codificação usada pelo codificador local.
Número de visualizadores simultâneos. Quantos espectadores simultâneos são esperados? Isso pode ser difícil de estimar, mas faça o seu melhor com base nos dados do cliente. Você está transmitindo uma conferência para um público global? Você está planejando transmitir ao vivo para vender um conjunto de produtos para seus clientes?
Porcentagem de tráfegomanipulado porponto de extremidade de streaming. Isso também pode ser expresso como "o percentual de tráfego NÃO tratado pela CDN", pois esse é o número que realmente entra na fórmula. Então, com isso em mente, qual é o descarregamento da CDN que você espera? Se espera-se que a CDN lide com 90% do tráfego ao vivo, apenas 10% do tráfego seriam esperados no ponto de extremidade de streaming. O número usado na fórmula é .10, que é o percentual de tráfego esperado no ponto de extremidade de streaming.
Determinar o número de unidades de streaming premium necessárias
unidades de streaming Premium necessárias = Largura de banda média x # de visualizadores x Porcentagem de tráfego não tratado pela CDN/200 Mbps
Exemplo
Você lançou recentemente um novo produto e deseja apresentá-lo aos clientes estabelecidos. Você quer baixa latência porque não deseja frustrar seu público já ocupado, portanto, você usará pontos de extremidade de streaming premium e uma CDN.
Você tem aproximadamente 100.000 clientes, mas eles provavelmente não assistirão ao seu evento ao vivo. Você acha que, no melhor caso, apenas 1% deles participarão, o que leva seus espectadores simultâneos esperados para 1.000.
Número de usuários simultâneos =1.000
Você decidiu que usará os Serviços de Mídia para codificar sua transmissão ao vivo e não usará passagem. Você não sabe qual será a largura de banda média, mas sabe que entregará em 1080p (taxa de bits superior de 5,5 Mbps), portanto, sua média de largura de banda é estimada em 3,5 Mbps para seus cálculos.
Largura de banda média =3,5
Como seu público está disperso em todo o mundo, você espera que a CDN lide com a maioria (90%) do tráfego ao vivo. Portanto, os pontos de extremidade de streaming premium lidarão apenas com 10% do tráfego.
Porcentagem tratada pelo ponto de extremidade de streaming =10% = 0,1
Usando a fórmula fornecida acima:
Total de saídas necessárias = largura de banda média x número de visualizadores simultâneos x por cento manipulados pelo ponto de extremidade de streaming.
saída total necessária = 3,5 x 1.000 x 0,1
saída total necessária = 350 Mbps
Dividindo a saída total por 200, você determina que precisa de 1,75 unidades de streaming premium.
unidades de streaming premium necessárias = saída total necessária/200Mpbs
unidades de streaming premium necessárias = 1,75
Vamos arredondar esse número para 2, dando-nos duas unidades necessárias.
Use o portal para estimar suas necessidades
O portal do Azure pode ajudá-lo a simplificar os cálculos. Na página de streaming, você pode usar a calculadora fornecida para ver o alcance estimado do público ao alterar a largura de banda média, a taxa de ocorrências da CDN e o número de unidades de streaming.
Na página da conta de serviços de mídia, selecione pontos de extremidade do Steaming no menu.
Adicione um novo ponto de extremidade de streaming selecionando Adicionar ponto de extremidade de streaming.
Dê um nome ao ponto de extremidade de streaming.
Selecione de ponto de extremidade de streaming Premium para o tipo de ponto de extremidade de streaming.
Como você está apenas recebendo uma estimativa neste momento, não inicie o ponto de extremidade de streaming após a criação. Selecione Sem.
Selecione Verizon Standard ou Verizon Premium para seu tipo de preço cdn. O nome do perfil será alterado adequadamente. Deixe o nome como está para este exercício.
Para o perfil cdn, selecione Criar Novo.
Selecione Criar. Depois que o ponto de extremidade tiver sido implantado, a tela de pontos de extremidade de streaming será exibida.
Selecione o ponto de extremidade de streaming que você acabou de criar. A tela do ponto de extremidade de streaming será exibida com estimativas de alcance da audiência.
A configuração padrão para o ponto de extremidade de streaming com 1 unidade de streaming mostra que é estimado transmitir para 571 visualizadores simultâneos a 3,5 Mbps usando 90% da CDN e 10% do ponto de extremidade de streaming.
Altere o percentual do de origem de saída
de 90% do cache cdn para 0%. A calculadora estimará que você poderá transmitir para 57 visualizadores simultâneos a 3,5 Mbps a 200 Mbps sem uma CDN. Agora, altere o de origem de saída do
para 90%. Em seguida, altere as unidades de streaming para 2. A calculadora estimará que você poderá transmitir para 1143 visualizadores simultâneos a 3,5 Mbps com 4000Mpbs com a CDN tratando 90% do tráfego.
Selecione Salvar.
Você pode iniciar o ponto de extremidade de streaming e tentar enviar tráfego para ele. As métricas na parte inferior da tela acompanharão o tráfego real.
Timing
Talvez você queira provisionar unidades de streaming 1 hora antes do pico de uso esperado para garantir que as unidades de streaming estejam prontas.
Obter ajuda e suporte
Você pode entrar em contato com os Serviços de Mídia com perguntas ou seguir nossas atualizações por um dos seguintes métodos:
- Q & A
-
stack overflow. Marcar perguntas com
azure-media-services
. - @MSFTAzureMedia ou use @AzureSupport para solicitar suporte.
- Abra um tíquete de suporte por meio do portal do Azure.