Stream de conteúdo com integração de CDNStream content with CDN integration

logotipo de serviços de mídia v3media services logo v3


A Rede de Entrega de Conteúdos (CDN) oferece aos programadores uma solução global para o fornecimento rápido de conteúdo de largura de banda alta aos utilizadores, ao colocar em cache o respetivo conteúdo em nós físicos estrategicamente colocados em todo o mundo.Azure Content Delivery Network (CDN) offers developers a global solution for rapidly delivering high-bandwidth content to users by caching their content at strategically placed physical nodes across the world.

O conteúdo de caches CDN transmitido a partir de um Ponto Final de Streaming de Serviços de Mídia (origem) por código, por protocolo de streaming, por bitrate, por formato de recipiente, e por encriptação/DRM.CDN caches content streamed from a Media Services Streaming Endpoint (origin) per codec, per streaming protocol, per bitrate, per container format, and per encryption/DRM. Para cada combinação de código-streaming protocolo-container-bitrate-encriptação, haverá uma cache CDN separada.For each combination of codec-streaming protocol-container format-bitrate-encryption, there will be a separate CDN cache.

O conteúdo popular será servido diretamente a partir da cache CDN, desde que o fragmento de vídeo esteja em cache.The popular content will be served directly from the CDN cache as long as the video fragment is cached. É provável que os conteúdos ao vivo sejam em cache porque normalmente temos muitas pessoas a ver exatamente a mesma coisa.Live content is likely to be cached because you typically have many people watching the exact same thing. O conteúdo a pedido pode ser um pouco mais complicado porque pode ter algum conteúdo que seja popular e outros que não sejam.On-demand content can be a bit trickier because you could have some content that's popular and some that isn't. Se tens milhões de ativos de vídeo onde nenhum deles é popular (apenas um ou dois espectadores por semana) mas tens milhares de pessoas a ver todos os vídeos diferentes, o CDN torna-se muito menos eficaz.If you have millions of video assets where none of them are popular (only one or two viewers a week) but you have thousands of people watching all different videos, the CDN becomes much less effective.

Também é preciso considerar como o streaming adaptativo funciona.You also need to consider how adaptive streaming works. Cada fragmento de vídeo individual é cached como sua própria entidade.Each individual video fragment is cached as its own entity. Por exemplo, imagine a primeira vez que um determinado vídeo é visto.For example, imagine the first time a certain video is watched. Se o espectador saltar por aí a ver apenas alguns segundos aqui e ali, apenas os fragmentos de vídeo associados ao que a pessoa viu ficam em cache na CDN.If the viewer skips around watching only a few seconds here and there, only the video fragments associated with what the person watched get cached in CDN. Com o streaming adaptativo, normalmente tem 5 a 7 bitrates diferentes de vídeo.With adaptive streaming, you typically have 5 to 7 different bitrates of video. Se uma pessoa está a ver um bitrate e outra está a ver um bitrate diferente, então estão cada um em cache separadamente no CDN.If one person is watching one bitrate and another person is watching a different bitrate, then they're each cached separately in the CDN. Mesmo que duas pessoas estejam a ver a mesma bitrate, podem estar a transmitir diferentes protocolos.Even if two people are watching the same bitrate, they could be streaming over different protocols. Cada protocolo (HLS, MPEG-DASH, Smooth Streaming) é em cache separadamente.Each protocol (HLS, MPEG-DASH, Smooth Streaming) is cached separately. Assim, cada bitrate e protocolo são em cache separadamente e apenas os fragmentos de vídeo que foram solicitados estão em cache.So each bitrate and protocol are cached separately and only those video fragments that have been requested are cached.

Com exceção do ambiente de teste, recomendamos que a CDN seja ativada tanto para os pontos finais de streaming Standard como para Premium.Except for the test environment, we recommend that CDN be enabled for both Standard and Premium streaming endpoints. Cada tipo de ponto final de streaming tem um limite de produção suportado diferente.Each type of streaming endpoint has a different supported throughput limit. É difícil fazer um cálculo preciso para o número máximo de fluxos simultâneos suportados por um ponto final de streaming, uma vez que existem vários fatores a ter em conta.It is difficult to make a precise calculation for the maximum number of concurrent streams supported by a streaming endpoint as there are various factors to take into account. Incluem-se:These include:

  • Bitrates máximos utilizados para o streamingMaximum bitrates used for streaming
  • Pré-tampão do jogador e comportamento de comutação.Player pre-buffer and switching behavior. Os jogadores tentam rebentar segmentos a partir de uma origem e usam a velocidade de carga para calcular a comutação de bitrate adaptativo.Players try to burst segments from an origin and use load speed to calculate adaptive bitrate switching. Se um ponto final de streaming se aproximar da saturação, os tempos de resposta podem variar e os jogadores começam a mudar para uma qualidade mais baixa.If a streaming endpoint gets close to saturation, response times can vary and players start switching to lower quality. Como isto está a reduzir a carga nos jogadores do Streaming Endpoint, reduza para uma qualidade mais alta criando gatilhos de comutação indesejados.As this is reducing load on the Streaming Endpoint players, scale back to higher quality creating unwanted switching triggers. No geral, é seguro estimar os fluxos máximos simultâneos, tomando a produção final máxima de streaming e dividindo-a pela bitrate máxima (assumindo que todos os jogadores usam a bitrate mais alta.) Por exemplo, pode ter um ponto final de streaming Standard que está limitado a 600 Mbps e o bitrate mais alto de 3Mbp.Overall it is safe to estimate the maximum concurrent streams by taking the maximum streaming endpoint throughput and divide this by the maximum bitrate (assuming all players use the highest bitrate.) For example, you can have a Standard streaming endpoint which is limited to 600 Mbps and the highest bitrate of 3Mbp. Neste caso, aproximadamente 200 fluxos simultâneos são suportados na bitrate superior.In this case, approximately 200 concurrent streams are supported at the top bitrate. Lembre-se de ter em conta os requisitos de largura de banda áudio também.Remember to factor in the audio bandwidth requirements as well. Embora um fluxo de áudio possa ser transmitido apenas a 128 km/h, o streaming total aumenta rapidamente quando o multiplica pelo número de fluxos simultâneos.Although an audio stream may only be streaming at 128 kps, the total streaming adds up quickly when you multiply it by the number of concurrent streams.

Este tópico discute a integração do CDN.This topic discusses enabling CDN integration. Também explica a prefetching (caching ativo) e o conceito de CDN-Prefetch de Assistência de Origem.It also explains prefetching (active caching) and the Origin-Assist CDN-Prefetch concept.

ConsideraçõesConsiderations

  • O ponto final de streaming e o URL de streaming permanecem os hostname mesmos quer ativem ou não a CDN.The streaming endpoint hostname and the streaming URL remain the same whether or not you enable CDN.
  • Se precisar da capacidade de testar o seu conteúdo com ou sem CDN, crie outro ponto final de streaming que não esteja ativado pela CDN.If you need the ability to test your content with or without CDN, create another streaming endpoint that isn't CDN enabled.

Permitir a integração do Azure CDNEnable Azure CDN integration

Importante

Não é possível permitir a CDN para o julgamento ou para as contas do Azure.You can't enable CDN for trial or student Azure accounts.

A integração da CDN está ativada em todos os centros de dados do Azure, exceto nas regiões do Governo Federal e da China.CDN integration is enabled in all the Azure data centers except Federal Government and China regions.

Depois de um ponto final de streaming ser a provisionado com CDN ativado, há um tempo de espera definido nos Serviços de Mídia antes de a atualização do DNS ser feita para mapear o ponto final de streaming para o ponto final da CDN.After a streaming endpoint is provisioned with CDN enabled, there's a defined wait time on Media Services before DNS update is done to map the streaming endpoint to CDN endpoint.

Se mais tarde pretender desativar/ativar o CDN, o seu ponto final de streaming deve estar no estado de paragem.If you later want to disable/enable the CDN, your streaming endpoint must be in the stopped state. Uma vez iniciado o ponto final de streaming, pode levar até quatro horas para que a integração do CDN do Azure seja ativada e para que as alterações estejam ativas em todos os POPs do CDN.Once the streaming endpoint is started it could take up to four hours for the Azure CDN integration to be enabled and for the changes to be active across all the CDN POPs. No entanto, pode iniciar o seu ponto final de streaming e transmitir sem interrupções a partir do ponto final de streaming.However, you can start your streaming endpoint and stream without interruptions from the streaming endpoint. Uma vez concluída a integração, o fluxo é entregue a partir do CDN.Once the integration is complete, the stream is delivered from the CDN. Durante o período de provisionamento, o seu ponto final de streaming estará no estado inicial e poderá observar um desempenho degradado.During the provisioning period, your streaming endpoint will be in the starting state and you might observe degraded performance.

Quando o ponto final de streaming Standard é criado, é configurado por padrão com Standard Verizon.When the Standard streaming endpoint is created, it's configured by default with Standard Verizon. Pode configurar fornecedores Premium Verizon ou Standard Akamai utilizando APIs REST.You can configure Premium Verizon or Standard Akamai providers using REST APIs.

A integração do Azure Media Services com a Azure CDN é implementada na Azure CDN da Verizon para os pontos finais de streaming padrão.Azure Media Services integration with Azure CDN is implemented on Azure CDN from Verizon for standard streaming endpoints. Os pontos finais de streaming premium podem ser configurados utilizando todos os níveis e fornecedores de preços da Azure CDN.Premium streaming endpoints can be configured using all Azure CDN pricing tiers and providers.

Nota

Para mais detalhes sobre a Azure CDN, consulte a visão geraldo CDN .For details about Azure CDN, see the CDN overview.

Determinar se foi feita uma alteração ao DNSDetermine if a DNS change was made

Pode determinar se a alteração do DNS foi efetuada num ponto final de streaming (o tráfego está a ser direcionado para o Azure CDN) utilizando https://www.digwebinterface.com .You can determine if DNS change was made on a streaming endpoint (the traffic is being directed to the Azure CDN) by using https://www.digwebinterface.com. Se vir azureedge.net nomes de domínio nos resultados, o tráfego está agora a ser apontado para o CDN.If you see azureedge.net domain names in the results, the traffic is now being pointed to the CDN.

Origin-Assist CDN-PrefetchOrigin-Assist CDN-Prefetch

O caching CDN é um processo reativo.CDN caching is a reactive process. Se a CDN conseguir prever qual será o próximo objeto, a CDN pode solicitar e cache proactivamente o próximo objeto.If CDN can predict what the next object will be requested, CDN can proactively request and cache the next object. Com este processo, pode obter um cache-hit para todos (ou a maioria) dos objetos, o que melhora o desempenho.With this process, you can achieve a cache-hit for all (or most) of the objects, which improves performance.

O conceito de prefetching esforça-se por posicionar objetos na "borda da internet" antecipando que estes serão solicitados iminentemente pelo jogador, reduzindo assim o tempo para entregar esse objeto ao jogador.The concept of prefetching strives to position objects at the "edge of the internet" in anticipation that these will be requested by the player imminently, thereby reducing the time to deliver that object to the player.

Para atingir este objetivo, um ponto final de streaming (origem) e CDN precisam trabalhar de mãos dadas de algumas formas:To achieve this goal, a streaming endpoint (origin) and CDN need to work hand-in-hand in a couple ways:

  • A origem dos Serviços de Comunicação social precisa de ter a "inteligência" (Origin-Assist) para informar a CDN sobre o próximo objeto a pré-venda.The Media Services origin needs to have the "intelligence" (Origin-Assist) to inform CDN the next object to prefetch.
  • O CDN faz a pré-gravura e o caching (parte CDN-prefetch).CDN does the prefetch and caching (CDN-prefetch part). A CDN também precisa de ter a "inteligência" para informar a origem se é uma prefetch ou uma busca regular, lidar com as 404 respostas, e uma maneira de evitar um ciclo de pré-ferimentos interminável.CDN also needs to have the "intelligence" to inform the origin whether it's a prefetch or a regular fetch, handle the 404 responses, and a way to avoid endless prefetch loop.

BenefíciosBenefits

Os benefícios da funcionalidade Origin-Assist CDN-Prefetch incluem:The benefits of the Origin-Assist CDN-Prefetch feature includes:

  • O Prefetch melhora a qualidade da reprodução de vídeo, pré-posicionando os segmentos de vídeo antecipados na borda durante a reprodução, reduzindo a latência para o espectador e melhorando os tempos de descarregamento do segmento de vídeo.Prefetch improves video playback quality by pre-positioning anticipated video segments at the edge during playback, reducing latency to the viewer, and improving video segment download times. Isto resulta em tempo de arranque de vídeo mais rápido e menos ocorrências de rejeição.This results in faster video start-up time and lower rebuffering occurrences.
  • Este conceito é aplicável ao cenário geral de origem cdn e não se limita aos meios de comunicação.This concept is applicable to general CDN-origin scenario and isn't limited to media.
  • A Akamai adicionou esta funcionalidade ao Akamai Cloud Embed (ACE).Akamai has added this feature to Akamai Cloud Embed (ACE).

Nota

Esta funcionalidade ainda não é aplicável ao CDN da Akamai integrado com o ponto final de streaming dos Media Services.This feature is not yet applicable to the Akamai CDN integrated with Media Services streaming endpoint. No entanto, está disponível para clientes dos Media Services que tenham um contrato de Akamai pré-existente e exijam integração personalizada entre a Akamai CDN e a origem dos Media Services.However, it's available for Media Services customers that have a pre-existing Akamai contract and require custom integration between Akamai CDN and the Media Services origin.

Como funcionaHow it works

O suporte da CDN para os Origin-Assist CDN-Prefetch cabeçalhos (tanto para streaming ao vivo como para vídeo a pedido) está disponível para clientes que tenham contrato direto com a Akamai CDN.CDN support for the Origin-Assist CDN-Prefetch headers (for both live and video on-demand streaming) is available to customers who have direct contract with Akamai CDN. A funcionalidade envolve as seguintes trocas de cabeçalho HTTP entre a Akamai CDN e a origem dos Serviços de Comunicação Social:The feature involves the following HTTP header exchanges between Akamai CDN and the Media Services origin:

Cabeçalho HTTPHTTP header ValoresValues RemetenteSender RecetorReceiver ObjetivoPurpose
CDN-Origin-Assist-Prefetch-Enabled 1 (padrão) ou 01 (default) or 0 CDNCDN OrigemOrigin Para indicar que o CDN está ativado prefetch.To indicate CDN is prefetch enabled.
CDN-Origin-Assist-Prefetch-Path Exemplo:Example:
Fragmentos (vídeo=14000000000000000000000000000000000000000000000000000000000000000000000000000Fragments(video=1400000000,format=mpd-time-cmaf)
OrigemOrigin CDNCDN Para fornecer um caminho prefetch para a CDN.To provide prefetch path to CDN.
CDN-Origin-Assist-Prefetch-Request 1 (pedido de precade) ou 0 (pedido regular)1 (prefetch request) or 0 (regular request) CDNCDN OrigemOrigin Para indicar o pedido da CDN é uma precatão.To indicate the request from CDN is a prefetch.

Para ver parte da troca de cabeçalho em ação, pode experimentar os seguintes passos:To see part of the header exchange in action, you can try the following steps:

  1. Utilize o Carteiro ou o CURL para emitir um pedido à origem dos Serviços de Comunicação social para um segmento de áudio ou vídeo ou fragmento.Use Postman or cURL to issue a request to the Media Services origin for an audio or video segment or fragment. Certifique-se de adicionar o cabeçalho CDN-Origin-Assist-Prefetch-Enabled: 1 no pedido.Make sure to add the header CDN-Origin-Assist-Prefetch-Enabled: 1 in the request.
  2. Na resposta, deve ver o cabeçalho CDN-Origin-Assist-Prefetch-Path com um percurso relativo como o seu valor.In the response, you should see the header CDN-Origin-Assist-Prefetch-Path with a relative path as its value.

Protocolos de streaming suportadosSupported streaming protocols

A Origin-Assist CDN-Prefetch funcionalidade suporta os seguintes protocolos de streaming para streaming ao vivo e a pedido:The Origin-Assist CDN-Prefetch feature supports the following streaming protocols for live and on-demand streaming:

  • HLS v3HLS v3
  • HLS v4HLS v4
  • HLS CMAFHLS CMAF
  • DASH (CSF)DASH (CSF)
  • DASH (CMAF)DASH (CMAF)
  • Streaming suaveSmooth streaming

FAQsFAQs

  • E se um URL de caminho de pré-recorrida for inválido para que a prefâmia cdn obtenha um 404?What if a prefetch path URL is invalid so that CDN prefetch gets a 404?

    O CDN só cacheá uma resposta de 404 durante 10 segundos (ou outro valor configurado).CDN will only cache a 404 response for 10 seconds (or other configured value).

  • Suponha que tenha um vídeo a pedido.Suppose you have an on-demand video. Se o CDN-prefetch estiver ativado, esta funcionalidade implica que uma vez que um cliente solicite o primeiro segmento de vídeo, a prefetch iniciará um loop para pré-prender todos os segmentos de vídeo subsequentes na mesma bitrate?If CDN-prefetch is enabled, does this feature imply that once a client requests the first video segment, prefetch will start a loop to prefetch all subsequent video segments at the same bitrate?

    Não, a pré-prisão de CDN só é feita após um pedido/resposta iniciado pelo cliente.No, CDN-prefetch is done only after a client-initiated request/response. A pré-prisão de CDN nunca é acionada por uma prefâmia, para evitar um laço de prefetch.CDN-prefetch is never triggered by a prefetch, to avoid a prefetch loop.

  • A Origin-Assist CDN-Prefetch característica está sempre ligado?Is Origin-Assist CDN-Prefetch feature always on? Como pode ser ligado/desligado?How can it be turned on/off?

    Esta funcionalidade está desligada por defeito.This feature is off by default. Os clientes precisam ligá-lo através da Akamai API.Customers need to turn it on via Akamai API.

  • Para o streaming ao vivo, o que aconteceria a Origin-Assist se o próximo segmento ou fragmento ainda não estiver disponível?For live streaming, what would happen to Origin-Assist if the next segment or fragment isn't yet available?

    Neste caso, a origem dos Serviços de Comunicação Social não fornecerá CDN-Origin-Assist-Prefetch-Path cabeçalho e a CDN-prefetch não ocorrerá.In this case, the Media Services origin won't provide CDN-Origin-Assist-Prefetch-Path header and CDN-prefetch will not occur.

  • Como funciona Origin-Assist CDN-Prefetch com filtros manifestos dinâmicos?How does Origin-Assist CDN-Prefetch work with dynamic manifest filters?

    Esta característica funciona independentemente do filtro manifesto.This feature works independently of manifest filter. Quando o próximo fragmento estiver fora de uma janela de filtro, o seu URL continuará a ser localizado olhando para o manifesto do cliente bruto e depois devolvido como cabeçalho de resposta pré-redação CDN.When the next fragment is out of a filter window, its URL will still be located by looking into the raw client manifest and then returned as CDN prefetch response header. Assim, o CDN obterá o URL de um fragmento que é filtrado do manifesto DASH/HLS/Smooth.So CDN will get the URL of a fragment that's filtered out from DASH/HLS/Smooth manifest. No entanto, o leitor nunca fará um pedido GET à CDN para obter esse fragmento, porque esse fragmento não está incluído no manifesto DASH/HLS/Smooth detido pelo leitor (o jogador não sabe a existência desse fragmento).However, the player will never make a GET request to CDN to fetch that fragment, because that fragment isn't included in the DASH/HLS/Smooth manifest held by the player (the player doesn't know that fragment's existence).

  • A lista de reprodução/manifesto suave do DASH MPD/HLS pode ser pré-gravada?Can DASH MPD/HLS playlist/Smooth manifest be prefetched?

    Não, DASH MPD, lista de reprodução master HLS, lista de reprodução de variante HLS ou URL manifesto suave não são adicionados ao cabeçalho pré-gravado.No, DASH MPD, HLS master playlist, HLS variant playlist, or smooth manifest URL isn't added to the prefetch header.

  • Os URLs pré-fetch são relativos ou absolutos?Are prefetch URLs relative or absolute?

    Enquanto a Akamai CDN permite ambos, a origem dos Media Services apenas fornece URLs relativos para o caminho da precato, porque não há nenhum benefício aparente na utilização de URLs absolutos.While Akamai CDN allows both, the Media Services origin only provides relative URLs for prefetch path because there's no apparent benefit in using absolute URLs.

  • Esta funcionalidade funciona com conteúdos protegidos por DRM?Does this feature work with DRM-protected contents?

    Sim, uma vez que esta funcionalidade funciona ao nível HTTP, não descodifica nem analisa qualquer segmento/fragmento.Yes, since this feature works at the HTTP level, it doesn't decode or parse any segment/fragment. Não importa se o conteúdo está encriptado ou não.It doesn't care whether the content is encrypted or not.

  • Esta funcionalidade funciona com a Inserção de Anúncios Laterais do Servidor (SSAI)?Does this feature work with Server Side Ad Insertion (SSAI)?

    Faz para o conteúdo original/principal (o conteúdo original de vídeo antes da inserção de anúncios) funciona, uma vez que a SSAI não altera o tempotabo do conteúdo de origem da origem dos Media Services.It does for original/main content (the original video content before ad insertion) works, since SSAI doesn't change the timestamp of the source content from the Media Services origin. Se esta funcionalidade funciona com conteúdo de anúncios depende se a origem do anúncio suporta o Origin-Assist.Whether this feature works with ad contents depends on whether ad origin supports Origin-Assist. Por exemplo, se os conteúdos de anúncios também estiverem hospedados no Azure Media Services (origem igual ou separada), os conteúdos de anúncios também serão pré-gravados.For example, if ad contents are also hosted in Azure Media Services (same or separate origin), ad contents will also be prefetched.

  • Esta funcionalidade funciona com conteúdo UHD/HEVC?Does this feature work with UHD/HEVC contents?

    Sim.Yes.

Faça perguntas, dê feedback, obtenha atualizaçõesAsk questions, give feedback, get updates

Consulte o artigo da comunidade Azure Media Services para ver diferentes formas de fazer perguntas, dar feedback e obter atualizações sobre os Media Services.Check out the Azure Media Services community article to see different ways you can ask questions, give feedback, and get updates about Media Services.

Passos seguintesNext steps