Guia de melhores práticas de transmissão em fluxo em direto dos Serviços de Multimédia

Os clientes perguntam frequentemente como podem reduzir a latência da sua transmissão em direto. Este artigo descreve as melhores práticas para alcançar transmissões em direto de baixa latência, além da codificação de eventos em direto.

Nota

Antes de continuar a ler este artigo, leia o artigo HLS de Baixa Latência (LL-HLS) para compreender a baixa latência com a codificação de eventos em direto. Em seguida, volte a este guia para compreender o que mais pode afetar a latência de transmissão em fluxo.

Existem muitos fatores que determinam a latência ponto a ponto de um fluxo para além da forma como o suporte de dados é codificado. Eis algumas que deve considerar:

  1. Atrasos no lado do codificador de contribuição. Quando os clientes utilizam um software de codificação, como o OBS Studio, Wirecast ou outros, para enviar uma transmissão em direto rtMP para os Serviços de Multimédia. As definições neste software afetam a latência ponto a ponto de uma transmissão em direto.

  2. Atrasos no pipeline de transmissão em direto nos Serviços de Multimédia do Azure

  3. Desempenho da CDN

  4. Algoritmos de memória intermédia do leitor de vídeo e condições de rede no lado do cliente

  5. Temporização do aprovisionamento

Codificador de contribuições

Controla as definições das definições do codificador de origem antes de o fluxo RTMP chegar aos Serviços de Multimédia. Seguem-se algumas recomendações para as definições que lhe daria a menor latência possível:

  1. Escolha a região física mais próxima do codificador de contribuição para a sua conta dos Serviços de Multimédia. Isto irá garantir que tem uma excelente ligação de rede à conta dos Serviços de Multimédia.

  2. Utilize um tamanho de fragmento consistente. Recomendamos um tamanho GOP de 2 segundos. A predefinição em alguns codificadores, como OBS, é de 8 segundos. Certifique-se de que altera esta definição.

  3. Utilize o codificador de GPU se o software de codificação lhe permitir fazê-lo. Isto permitir-lhe-ia descarregar o trabalho da CPU para a GPU.

  4. Utilize um perfil de codificação otimizado para baixa latência. Por exemplo, com o OBS Studio, se utilizar o codificador Nvidia H.264, poderá ver a predefinição "latência zero".

  5. Envie conteúdos que não são mais elevados em resolução do que o que planeia transmitir em fluxo. Por exemplo, se estiver a utilizar eventos em direto de codificação padrão de 720p, envie um fluxo que já esteja a 720p.

  6. Mantenha a sua taxa de fotogramas a 30fps ou inferior, a menos que utilize eventos em direto pass-through. Embora suportemos entradas de 60 fps para eventos em direto, a nossa saída de eventos em direto de codificação ainda não está acima dos 30 fps. Para o HLS de Baixa Latência, recomenda-se a taxa de fotogramas fixa e a duração máxima da moldura não deve exceder 0,5 segundos para a melhor experiência.

Configuração do evento em direto dos Serviços de Multimédia do Azure

Seguem-se algumas configurações que o ajudarão a reduzir a latência no nosso pipeline:

  1. Utilize as opções de fluxo de baixa latência para eventos em direto. Para as opções de transmissão em fluxo codificação Standard (até 720p) e Codificação Premium (até 1080p), a menos que precise de uma janela de DVR com mais de 6 horas ou uma saída de transmissão em fluxo suave, utilize a definição Latência do fluxo de latência baixa.

  2. Recomendamos que escolha a saída CMAF para a reprodução do HLS e do DASH. Isto permite-lhe partilhar os mesmos fragmentos para ambos os formatos. Aumenta a proporção de acerto da cache quando a CDN é utilizada. Por exemplo:

    Tipo Formatar 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 tiver de escolher a saída TS, utilize uma proporção de embalagem HLS de 1. Isto permite-nos empacotar apenas um fragmento num segmento HLS. Não obterá todos os benefícios do LL-HLS em jogadores nativos da Apple.

Otimizações de jogadores

Ao escolher e configurar um leitor de vídeo, certifique-se de que utiliza as definições otimizadas para uma latência mais baixa.

Os Serviços de Multimédia suportam diferentes saídas de protocolos de transmissão em fluxo – DASH, HLS com saída TS e HLS com fragmentos CMAF. Ao utilizar a opção LowLatencyV2 de transmissão em fluxo, certifique-se de que encontra um jogador que suporte o HLS de Baixa Latência (LL-HLS). Dependendo da implementação do jogador, as decisões de colocação em memória intermédia afetam a latência que um visualizador observa. Condições de rede fracas ou algoritmos predefinidos que favorecem a qualidade e a estabilidade da reprodução podem fazer com que os jogadores decidam colocar mais conteúdo na memória intermédia antecipadamente para evitar interrupções durante a reprodução. Estas memórias intermédias, antes e durante as sessões de reprodução, iriam aumentar a latência ponto a ponto.

Quando o Leitor de Multimédia do Azure é utilizado, o perfil Heurística de Baixa Latência otimiza o leitor para ter a menor latência possível do lado do jogador. Este leitor só suporta DASH, a menos que esteja a ser utilizado no Safari em dispositivos Apple.

Escolha e otimizações da CDN

Os pontos finais de transmissão em fluxo são os servidores de origem que fornecem o conteúdo de transmissão em fluxo em direto e VOD à CDN ou diretamente ao cliente. É melhor utilizar uma Rede de Entrega de Conteúdos (CDN) com uma origem blindada para garantir que o tráfego para os seus conteúdos multimédia é fornecido de forma eficiente.

Recomendamos a utilização da CDN do Azure fornecida pela Verizon (Standard ou Premium). Otimizamos a experiência de integração para que um cliente possa configurar esta CDN com uma única seleção no portal do Azure. Certifique-se de que ativa o Escudo de Origem e as otimizações de transmissão em fluxo para o ponto final da CDN sempre que iniciar o ponto final de transmissão em fluxo.

Os nossos clientes também têm boas experiências para trazer a sua própria CDN. Certifique-se de que são tomadas medidas na CDN para proteger a origem do tráfego excessivo.

Também pode melhorar o desempenho ao configurar regras para o perfil da CDN. Veja Como ativar otimizações da CDN.

Dimensionamento de pontos finais de transmissão em fluxo

Nota

Um ponto final/origens de transmissão em fluxo padrão é um recurso partilhado que permite aos clientes com volumes de tráfego baixos transmitir conteúdo em fluxo a um custo mais baixo. Não utilizaria um ponto final de transmissão em fluxo padrão para dimensionar unidades de transmissão em fluxo se esperasse grandes volumes de tráfego ou planeasse utilizar uma CDN.

Um ponto final/origem de transmissão em fluxo premium oferece mais flexibilidade e isolamento para os clientes dimensionarem ao adicionar ou remover unidades de transmissão em fluxo dedicadas . Uma unidade de transmissão em fluxo é um recurso de computação alocado a um ponto final de transmissão em fluxo. Cada unidade de transmissão em fluxo pode transmitir aproximadamente 200 Mbps de tráfego.

Embora possa transmitir em fluxo simultaneamente muitos eventos em direto ao mesmo tempo utilizando o mesmo ponto final de transmissão em fluxo, as unidades de transmissão em fluxo predefinidas máximas necessárias para um ponto final de transmissão em fluxo são 10. Pode abrir um pedido de suporte para pedir mais do que o 10 predefinido.

Determinar as unidades de transmissão em fluxo premium necessárias

Existem dois passos para determinar o número de pontos finais de transmissão em fluxo e unidades de transmissão em fluxo necessários:

  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 transmissão em fluxo pode transmitir.

Determinar a saída total necessária

Determine a saída total necessária com a seguinte fórmula.

Saída total necessária = largura de banda média x número x de visualizadores simultâneos x percentagemprocessada pelo ponto final de transmissão em fluxo.

Vamos ver cada um dos multiplicadores por sua vez:

Largura de banda média. Qual é a velocidade de transmissão média que planeia transmitir? Por outras palavras, se quiser ter várias velocidades de bits disponíveis, qual é a taxa de bits que é a média de todas as velocidades de transmissão que está a planear? Pode estimar isto com um dos seguintes métodos:

Para um evento em direto que inclua codificação:

  • Se não souber qual será a largura de banda média , pode utilizar as nossas velocidades de transmissão como estimativa. A nossa taxa de bits superior é de 5,5 Mbps para eventos em direto codificados por 1080p, portanto, a velocidade de transmissão média será de cerca de 3,5 Mbps.

  • Veja a predefinição de codificação utilizada para codificar o evento em direto, por exemplo, a predefinição AdaptiveStreaming (H.264). Veja este exemplo de saída.

Para um evento em direto que está simplesmente a utilizar pass-through e não a codificação:

  • Verifique a escada de velocidade de transmissão de codificação utilizada pelo codificador local.

Número de visualizadores simultâneos. Quantos visualizadores simultâneos são esperados? Isto pode ser difícil de estimar, mas faça o seu melhor com base nos dados do cliente. Está a transmitir uma conferência para um público global? Está a planear transmitir em fluxo em direto para vender um conjunto de produtos aos seus clientes?

Percentagem do tráfegoprocessado peloponto final de transmissão em fluxo. Isto também pode ser expresso como "a percentagem de tráfego NÃO processado pela CDN", uma vez que esse é o número que realmente entra na fórmula. Então, com isso em mente, qual é a descarga da CDN que espera? Se se espera que a CDN processe 90% do tráfego em direto, apenas 10% do tráfego seria esperado no ponto final de transmissão em fluxo. O número utilizado na fórmula é .10, que é a percentagem de tráfego esperado no ponto final de transmissão em fluxo.

Determinar o número de unidades de transmissão em fluxo premium necessárias

Unidades de transmissão em fluxo Premium necessárias = Largura de banda média x n.º de visualizadores x Percentagem de tráfego não processado pela CDN/200 Mbps

Exemplo

Lançou recentemente um novo produto e quer apresentá-lo aos seus clientes estabelecidos. Quer baixa latência porque não quer frustrar a sua audiência já ocupada, pelo que irá utilizar pontos finais de transmissão em fluxo premium e uma CDN.

Tem aproximadamente 100 000 clientes, mas provavelmente nem todos vão watch o seu evento em direto. Na melhor das hipóteses, apenas 1% deles irão participar, o que eleva os seus espectadores simultâneos esperados para 1.000.

Número de utilizadores simultâneos =1000

Decidiu que vai utilizar os Serviços de Multimédia para codificar a sua transmissão em direto e não utilizará pass-through. Não sabe qual será a largura de banda média, mas sabe que irá entregar em 1080p (taxa de bits superior de 5,5 Mbps), pelo que estima-se que a largura de banda média seja de 3,5 Mbps para os cálculos.

Largura de banda média =3,5

Uma vez que o seu público está disperso em todo o mundo, espera que a CDN lide com a maioria (90%) do tráfego em direto. Por conseguinte, os pontos finais de transmissão em fluxo premium apenas processarão 10% do tráfego.

Percentagem processada pelo ponto final de transmissão em fluxo =10% = 0,1

Utilizar a fórmula fornecida acima:

Saída total necessária = largura de banda média x número x de visualizadores simultâneos x por cento processados pelo ponto final de transmissão em fluxo.

saída total necessária = 3,5 x 1000 x 0,1

saída total necessária = 350 Mbps

Ao dividir a saída total por 200, determina que precisa de 1,75 unidades de transmissão em fluxo premium.

unidades de transmissão em fluxo premium necessárias = saída total necessária/200Mpbs

unidades de transmissão em fluxo premium necessárias = 1,75

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

Utilizar o portal para estimar as suas necessidades

A portal do Azure pode ajudá-lo a simplificar os cálculos. Na página de transmissão em fluxo, pode utilizar a calculadora fornecida para ver o alcance estimado da audiência quando alterar a largura de banda média, a proporção de resultados da CDN e o número de unidades de transmissão em fluxo.

  1. Na página da conta dos serviços de multimédia, selecione Pontos finais a vapor no menu.

  2. Adicione um novo ponto final de transmissão em fluxo ao selecionar Adicionar ponto final de transmissão em fluxo.

  3. Atribua um nome ao ponto final de transmissão em fluxo.

  4. Selecione Ponto final de transmissão em fluxo Premium para o tipo de ponto final de transmissão em fluxo.

  5. Uma vez que está apenas a obter uma estimativa neste momento, não inicie o ponto final de transmissão em fluxo após a criação. Selecione Não.

  6. Selecione Standard Verizon ou Premium Verizon para o escalão de preço da CDN. O nome do perfil será alterado em conformidade. Deixe o nome tal como está para este exercício.

  7. Para o perfil da CDN, selecione Criar Novo.

  8. Selecione Criar. Assim que o ponto final tiver sido implementado, o ecrã de pontos finais de transmissão em fluxo será apresentado.

  9. Selecione o ponto final de transmissão em fluxo que acabou de criar. O ecrã do ponto final de transmissão em fluxo será apresentado com estimativas de alcance da audiência.

  10. A predefinição para o ponto final de transmissão em fluxo com 1 unidade de transmissão em fluxo mostra que se estima transmitir para 571 visualizadores simultâneos a 3,5 Mbps com 90% da CDN e 10% do ponto final de transmissão em fluxo.

  11. Altere a percentagem da Origem de saída de 90% da cache da CDN para 0%. A calculadora estimará que poderá transmitir em fluxo para 57 visualizadores simultâneos a 3,5 Mbps a 200 Mbps sem uma CDN.

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

  13. Em seguida, altere as unidades de transmissão em fluxo para 2. A calculadora estimará que poderá transmitir em fluxo para 1143 visualizadores simultâneos a 3,5 Mbps com 4000Mpbs com a CDN a processar 90% do tráfego.

  14. Selecione Guardar.

  15. Pode iniciar o ponto final de transmissão em fluxo e tentar enviar tráfego para o mesmo. As métricas na parte inferior do ecrã irão controlar o tráfego real.

Temporização

Poderá querer aprovisionar unidades de transmissão em fluxo 1 hora antes do pico de utilização esperado para garantir que as unidades de transmissão em fluxo estão prontas.

Obter ajuda e suporte

Pode contactar os Serviços de Multimédia com perguntas ou seguir as nossas atualizações através de um dos seguintes métodos: