Guia de melhores práticas de transmissão ao vivo dos Serviços de Mídia

Os clientes costumam perguntar 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 com além da codificação de eventos ao vivo.

Observação

Antes de continuar lendo este artigo, leia o artigo LL-HLS (HLS de baixa latência) para entender a baixa latência com a codificação de eventos ao vivo. Em seguida, volte a 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 desses fatores que você deve considerar:

  1. 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.

  2. Atrasos no pipeline de transmissão ao vivo dentro dos Serviços de Mídia do Azure

  3. Desempenho da CDN

  4. Algoritmos de buffer do player de vídeo e condições de rede no lado do cliente

  5. Tempo de provisionamento

Codificador de contribuição

Você está no controle das configurações do codificador de origem antes que a transmissão RTMP chegue aos Serviços de Mídia. Aqui estão algumas recomendações para as configurações que lhe dão a menor latência possível:

  1. 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.

  2. Use um tamanho de fragmento consistente. Recomendamos um tamanho de GOP de 2 segundos. O padrão em alguns codificadores, como OBS, é de 8 segundos. Altere essa configuração.

  3. Use o codificador de GPU se o software de codificação permitir. Isso permite que você transfira o trabalho da CPU para a GPU.

  4. 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".

  5. Envie conteúdos que não tenham resoluções maiores do que aquelas que você planejou transmitir. Por exemplo, se você estiver usando eventos ao vivo de codificação padrão de 720p, envie um fluxo que já está em 720p.

  6. Mantenha sua taxa de quadros em 30fps ou menos, a não ser que você use eventos ao vivo de passagem. Embora demos 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:

  1. Use as opções de fluxo de baixa latência para eventos ao vivo. Para as opções de fluxo 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 uma saída de streaming suave, use a configuração latência de fluxo de baixa latência.

  2. Recomendamos que você escolha a saída CMAF para reprodução HLS e DASH. Isso permite que você compartilhe os mesmos fragmentos para ambos os formatos. Ela aumenta a taxa de acertos do cache quando a CDN é usada. Por exemplo:

    Type Format 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)
  3. Se você tiver que escolher a saída TS, use uma taxa de empacotamento de HLS de 1. Isso nos permite empacotar apenas um fragmento em um segmento de HLS. Você não obterá os benefícios completos do LL-HLS em players nativos da Apple.

Otimizações do player

Ao escolher e configurar um player de vídeo, use 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 de transmissão LowLatencyV2, encontre um player que dê suporte a LL-HLS (HLS de Baixa Latência). Dependendo da implementação do player, as decisões de buffer afetam a latência observada por um espectador. Condições de rede ruins ou algoritmos padrão que favorecem a qualidade e a estabilidade da reprodução podem fazer com que os players decidam armazenar antecipadamente mais conteúdo em buffer para evitar interrupções durante a reprodução. Esses buffers antes e durante as sessões de reprodução aumentariam a 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 player para ter a menor latência possível no lado do player. 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 entregam o conteúdo de streaming ao vivo e de VOD 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 que é fornecida pela Verizon (Standard ou Premium). Otimizamos a experiência de integração para que o cliente possa configurar essa CDN com uma única seleção no portal do Azure. Ative o Escudo de Origem e as 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 ao trazerem suas próprias CDN. Verifique se as medidas são tomadas na CDN para blindar a origem do tráfego excessivo.

Você também pode melhorar o desempenho configurando regras para o perfil cdn. Confira Como habilitar otimizações de CDN.

Escalar o ponto de extremidade de streaming

Observação

Um ponto de extremidade/origens de streaming padrão é um recurso compartilhado que permite aos clientes com volumes de tráfego baixos transmitir conteúdo a um custo menor. Você não usaria um ponto de extremidade de streaming padrão para dimensionar unidades de streaming se esperasse grandes volumes de tráfego ou planejasse usar uma CDN.

Um ponto de extremidade/origem de streaming premium oferece mais flexibilidade e isolamento para os clientes dimensionar adicionando ou removendo unidades de streaming dedicadas. Uma unidade de streaming é um recurso de computação alocado a 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:

  1. Determine a saída total necessária.

  2. 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.

Saída total necessária = largura de banda média x número de espectadores simultâneos x percentagemtratada pelo ponto de extremidade de streaming.

Vamos dar uma olhada em cada um dos multiplicadores:

Largura de banda média. Qual é a taxa de bits média que você planeja transmitir? Em outras palavras, se você pretende ter várias taxas de bits disponíveis, qual é a média de todas essas taxas de bits que você está planejando transmitir? Você pode fazer essa estimativa usando um dos seguintes métodos:

Para um evento ao vivo que inclui codificação:

  • Se você não sabe qual será a largura de banda média, use nossas taxas de bits principais como uma estimativa. Nossa taxa de bits superior é de 5,5 Mbps para os eventos ao vivo codificados em 1080p; portanto, sua taxa de bits média será algo em torno de 3,5 Mbps.

  • Veja a predefinição da codificação usada para codificar o evento ao vivo, por exemplo, a predefinição AdaptiveStreaming(H.264). Consulte 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 máximo de espectadores simultâneos. Quantos espectadores simultâneos são esperados? Isso pode ser difícil de estimar, mas faça o melhor que puder 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áfegotratada pelo ponto 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. Portanto, com isso em mente, qual é o descarregamento de CDN esperado? Se é esperado que a CDN lide com 90% do tráfego ao vivo, apenas 10% do tráfego seria esperado 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 n º de espectadores x percentual 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 uma latência baixa porque não quer 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 provavelmente nem todos assistirão seu evento ao vivo. Você acha que, na melhor das hipóteses, apenas 1% deles comparecerá, o que faz com que seus espectadores simultâneos esperados seja de 1.000.

Número de usuários simultâneos = 1.000

Você decidiu que vai 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 será entregue em 1080p (taxa de bits principal de 5,5 Mbps), de modo que sua largura de banda média é estimada para 3,5 Mbps para seus cálculos.

Largura de banda média = 3,5

Como seu público é disperso no mundo todo, você espera que a CDN trate a maioria (90%) do tráfego ao vivo. Portanto, os pontos de extremidade de streaming premium só tratarão 10% do tráfego.

Percentual tratado pelo ponto de extremidade de streaming =10% = 0,1

Usando a fórmula fornecida acima:

Saída total necessária = largura de banda média x número de espectadores simultâneos x percentagem tratada 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 = total de saída necessária/200Mpbs

Unidades de streaming premium necessárias = 1,75

Vamos arredondar esse número para 2, dando-nos 2 unidades necessárias.

Usar 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 do público estimado quando você altera a largura de banda média, a taxa de acertos da CDN e o número de unidades de streaming.

  1. Na página da conta dos serviços de mídia, selecione Pontos de extremidade de streaming no menu.

  2. Adicione um novo ponto de extremidade de streaming selecionando Adicionar ponto de extremidade de streaming.

  3. Dê um nome ao ponto de extremidade de streaming.

  4. Selecione Ponto de extremidade de streaming premium para o tipo do ponto de extremidade de streaming.

  5. Como você está apenas obtendo uma estimativa neste momento, não inicie o ponto de extremidade de streaming após a criação. Selecione Não.

  6. Selecione Verizon Standard ou Verizon Premium para o tipo de preço da CDN. O nome do perfil será alterado em conformidade com essa escolha. Para este exercício, deixe o nome como ele se apresenta.

  7. Para o perfil de CDN, selecione Criar novo.

  8. Selecione Criar. Depois que o ponto de extremidade tiver sido implantado, a tela dos pontos de extremidades de streaming será exibida.

  9. Selecione o ponto de extremidade de streaming que você acabou de criar. A tela do ponto de extremidade de streaming será exibida com as estimativas de alcance de público.

  10. A configuração padrão para o ponto de extremidade de streaming com uma unidade de streaming mostra que ela é estimada para transmitir para 571 espectadores simultâneos a 3,5 Mbps usando 90% da CDN e 10% do ponto de extremidade de streaming.

  11. Altere a porcentagem da Fonte de saída de 90% do cache de CDN para 0%. A calculadora estimará que você poderá transmitir para 57 espectadores simultâneos a 3,5 Mbps em 200 Mbps sem uma CDN.

  12. Agora, altere a Fonte de saída de volta para 90%.

  13. Em seguida, altere as unidades de streaming para 2. A calculadora estimará que você poderá transmitir para 1143 espectadores simultâneos a 3,5 Mbps com 4.000Mpbs com a CDN tratando 90% do tráfego.

  14. Clique em Salvar.

  15. Você pode iniciar o ponto de extremidade de streaming e tentar enviar o 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 de uma hora à frente do uso de pico 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 dúvidas ou seguir nossas atualizações por um dos seguintes métodos: