Arquitectura de Alto Nível Multi-CDN com CMCD
O que é CMCD?
A CMCD refere-se à especificação aberta CTA-5004 que foi lançada em 2020. O que é uma especificação aberta? A especificação aberta refere-se a um conjunto de requisitos e padrões documentados publicamente disponíveis para qualquer pessoa. O grande destaque aqui é que a especificação aberta do CMCD define como os media players (conhecidos como clientes) geram dados de transmissão de vídeo e os partilham com CDNs para cada pedido de mídia. Antes de definir esta especificação, era o oeste selvagem quanto à forma como os dados dos clientes foram enviados, recebidos e processados com CDNs. O CMCD no seu núcleo é apenas um conjunto de chaves com dados valiosos. Usando o CTA-5004, eu resumi essas chaves e adicionei insights para você criar uma folha de dicas útil.Descrição | Chave | Definição | *Use |
---|---|---|---|
Bitrate codificado | br | Taxa de bits codificada do objeto de áudio ou vídeo a ser pedido. | Mostra a taxa de bits real entregue e pode ser usada pela CDN para inferir o tamanho do objeto. |
Comprimento do tampão | bl | Duração do buffer do jogador no momento do pedido. | Pode ser usado pela CDN para inferir a integridade da reprodução. |
Buffer de fome | bs | Evento de inanição de tampão. Indica o rebuffer/paragem na reprodução. | A percentagem de rebuffer é calculada como o número total de sessões vs sessões com pelo menos um evento de rebuffer durante um determinado período de tempo. |
ID do conteúdo | cid | Cadeia única que identifica o conteúdo atual. | Útil para rastrear conteúdo problemático, mas raramente é usado pelos jogadores. |
Duração do objeto | d | Duração da reprodução em milissegundos do objeto a ser pedido. |
Quando agregado pode ser usado como uma estimativa de horas assistidas. Pode ser usado para determinar se o conteúdo está em uma quebra de anúncio e tipo de vídeo que está sendo assistido. Pode ser usado para determinar o tamanho do pedaço. |
Prazo | dl | O prazo do tempo de solicitação até a primeira amostra deste segmento/objeto precisa estar disponível para não criar um buffer de subexecução ou qualquer outro problema de reprodução | |
Meça a taxa de transferência | mtp | Taxa de transferência entre o cliente e o servidor, medida pelo cliente. | Largura de banda estimada entre a CDN e o leitor. Útil para comparar CDN e métricas externas. |
Pedido do próximo objeto | nem | Caminho relativo do próximo objeto a ser pedido. | Usado para pré-busca. |
Pedido de gama seguinte | nrr | Se a próxima solicitação for uma solicitação de objeto parcial, essa cadeia denota o intervalo de bytes a ser solicitada. Se o campo 'Nor' não estiver definido, presume-se que o objeto corresponde ao objeto que está a ser requisitado. | Usado para pré-busca. |
Tipo de objeto | ot |
Tipo de material do objeto atual a ser pedido: m: ficheiro de texto, como um manifesto ou uma lista de reprodução apenas áudio v: apenas vídeo áudio e vídeo muxados i: segmento init c: legenda ou legenda TT: Faixa de texto temporizada ISOBMFF k: chave criptográfica, licença ou certificado. outros Se o tipo de objeto a ser pedido for desconhecido, então esta chave NÃO deve ser usada. |
Usado para resolução de problemas. Pode ser usado para determinar problemas de codificação e de DRM. Os provedores de DRM têm visibilidade limitada sobre quais versões/navegadores são atualmente usados/suportados e, portanto, "k" é extra útil.
"c" pode ser usado para alertar possíveis problemas de conformidade. |
Taxa de reprodução | pr | 1 se em tempo real, 2 se velocidade dupla, 0 se não jogar. SÓ deve ser enviado se não for igual a 1. | Pode ser usado para inferir se o jogador está ajustando a taxa de reprodução para compensar outros problemas (como a origem ou o CDN está falhando em entregar segmentos rápido o suficiente). |
Taxa de transferência máxima solicitada | a rtp |
Taxa de transferência máxima solicitada pelo cliente que considera suficiente para a entrega do ativo.
*** A taxa de transferência refere-se à quantidade de dados que são transmitidos. |
Vai dizer-lhe o desempenho do jogador e da CDN. Isto pode ser usado para uma gestão de dados mais eficiente e, com efeito, poupar recursos.
Isso pode beneficiar os clientes, impedindo a saturação do buffer através da entrega excessiva e também pode proporcionar um benefício comunitário através da entrega de ações justas. O conceito é que cada cliente recebe o rendimento necessário para um excelente desempenho, mas não mais. |
Formato de transmissão | sf |
D: MPEG DASH HLS (HTTP Live Streaming) S – Streaming suave o: outro |
Ajuda a determinar problemas relacionados ao fluxo para jogadores que suportam DASH/HLS. Pode comparar o desempenho baseado no formato de streaming para jogadores que têm suporte a vários formatos. |
ID da sessão | sid | GUID identificando a sessão de reprodução atual. Uma sessão de reprodução normalmente une segmentos que pertencem a um único ativo de mídia. O comprimento máximo é de 64 carateres. RECOMENDA-SE que esteja em conformidade com a especificação UUID. |
Esta chave é sempre recomendada para ser incluída no registo CMCD. É indiscutivelmente a chave mais útil, pois é usada para alinhar logs juntos.
Pode ser útil solucionar problemas de armazenamento em cache. A mesma ID de conteúdo com duas ID de sessão indica fortemente um problema de armazenamento em cache. |
Tipo de fluxo | st |
V: Todos os segmentos estão disponíveis - por exemplo, VOD Os segmentos ficam disponíveis ao longo do tempo, por exemplo, AO VIVO |
Chave inestimáveis para resolução de problemas. |
Arranque | su | Indica a inicialização do conteúdo. |
Elimina a necessidade de beaconing. Saber a inicialização do conteúdo pode ser útil para otimizar a reprodução subsequente. Esta bandeira também é enviada após a bandeira do buffer (bs). |
Bitrate de topo | tb | A maior reprodução da taxa de bits no manifesto ou lista de reprodução que o cliente tem permissão para reproduzir. |
Usado para determinar problemas de taxa de bits ou de laddering da taxa de bits. Mostra a taxa de bits superior que o jogador podia jogar nessa altura. Pode ser usado para comparar com as taxas de bits disponíveis. |
Versão CMCD | v | Versão da especificação CMCD usada. | Esta tecla permite o controlo da versão e indica que serão lançadas futuras versões do CMCD. |
Tecla personalizada |
As chaves personalizadas requerem o prefixo "cmcd-". Exemplo fictício: Cmcd-edgio |
Permite que sejam enviadas chaves CMCD únicas, o que estende o CMCD para ser totalmente personalizável. |
Actualmente, Edgio é a única CDN que afirma publicamente o suporte para todas as chaves CMCD. As teclas definidas podem ser transmitidas em três modos de entrega, desde jogadores a CDNs.
- Cabeçalho HTTP personalizado em cada solicitação. As teclas podem ser usadas com quatro nomes de cabeçalho.
- CMCD-Request: Chaves cujos valores variam de acordo com cada solicitação.
- CMCD-Object: Chaves cujos valores variam com o objeto a ser pedido.
- CMCD-Estado: Chaves cujos valores não variam de acordo com cada pedido ou objeto.
- CMCD-Session: Chaves cujos valores se espera que sejam invariantes ao longo da vida da sessão.
- Argumentos de consulta de HTTP.
- Objeto json independente de cada solicitação HTTP.
Inanição de buffer e arranque em formato CMCD através de três modos de entrega.
Quem deve usar o CMCD?
Os serviços de streaming de qualquer tamanho devem usar o CMCD o mais rápido possível. No entanto, desde o seu lançamento, o conhecimento e implementação do CMCD tem sido limitado. As tendências que estamos a ver indicam que há uma crescente adoção e apoio. Dito isto, gostaríamos de falar com vocês sobre o seu caso de uso e como a CMCD pode elevar o seu negócio.Porque é que o CMCD é necessário?
O CMCD tem tudo a ver com garantir que os utilizadores tenham a melhor experiência de transmissão possível sempre que tocam. Como engenheiro de soluções na Edgio, o meu trabalho é rever a arquitetura técnica de um fornecedor de conteúdo para garantir que a nossa CDN funcione de forma suave e eficiente para a melhor experiência do utilizador. Um componente chave de qualquer arquitetura técnica são os dados recolhidos a partir de logs, métricas e traçados (também conhecidos como os três pilares da observabilidade) para conseguir isso. Abaixo estão mais algumas razões pelas quais o CMCD vale a pena incorporar se você ainda não está vendido nele.Padronização
Os dados são recolhidos e analisados por uma mistura de ferramentas proprietárias internas e de terceiros para cada peça de arquitetura. A dificuldade é que os dados recolhidos seguem o seu próprio formato. Dados não padronizados podem criar efeitos colaterais como inconsistências, qualidade reduzida, escalabilidade limitada e esforços de manutenção aumentados. Desafio-vos a encontrar um engenheiro que não tenha enfrentado algumas ou todas estas questões antes. Para resolver isso, o CMCD padroniza os dados do lado do cliente (player) para os dados do lado do servidor (CDN) garantindo a interoperabilidade. Isso é significativo porque torna a coisa mais próxima que a CDN pode chegar aos dados de medição real do usuário (rum) do lado do cliente.Personalização melhorada
As teclas CMCD personalizadas expandem infinitamente o seu utilitário.Caso de uso: Personalização do código de status
Aqui está um código de status personalizado do mundo real que Edgio usa. “000 – Um código de status específico do Edgio devolvido quando a origem não envia resposta, portanto não há código de status para log (por exemplo, quando o cliente se desconeta antes que a origem forneça a resposta).” Esta definição é da secção Campos do ficheiro de registo da nossa documentação do serviço de configuração do serviço de entrega de registos .
Edgio poderia criar uma chave personalizada cmcd-000.
Fluxos de trabalho simplificados
Nos últimos anos, as empresas de tecnologia têm reduzido custos, consolidando ferramentas e reduzindo a complexidade geral. Os dados gratuitos que a CMCD produz podem substituir serviços de análise de registos internos e externos. O resultado é um fluxo de trabalho simplificado e otimizado.Caso de uso: Fluxo de trabalho do jogador
Processo antigo
As análises de terceiros são amplamente utilizadas pelas empresas de streaming hoje. No entanto, essas ferramentas requerem um processo extenso e contínuo de integração mostrado abaixo.
-
- Compras
- Cada fornecedor de análise de terceiros tem o seu próprio kit de desenvolvimento de software (SDK) para integração com cada jogador. O ExoPlayer do Android, o leitor da Apple (HLS), o PlayReady da Microsoft (Xbox/Windows), baseado na Web (websites, televisores) e muito mais são exemplos de jogadores que requerem SDKs separados.
- Testes e validação. Os metadados são necessários para estarem em conformidade com as diretrizes do fornecedor.
Vale a pena notar que este processo completo pode levar facilmente um ano ou mais.
Novo processo
Habilitar é simples. O Edgio pode captar os seus dados CMCD quase em tempo real através do nosso Serviço de Entrega de Registos. Isso significa que o beaconing do jogador ou a integração de terceiros não são necessários para desbloquear a análise de dados da próxima geração. Para os nossos clientes com uma grande base de utilizadores isto traduz-se em milhões de dólares poupados anualmente.
Segurança
A segurança da informação pode não ser a primeira coisa em que se pensa quando se trata de streaming, mas ainda é um componente importante.- O CMCD não tem acesso a dados de início de sessão ou contém PII (Informações de Identificação Pessoal) porque compartimentaliza a experiência do utilizador a partir das informações. Contém apenas informação genérica de desempenho.
- Os dados CMCD não dependem de serviços intermediários. Isso limita o compartilhamento de dados com terceiros mantendo os dados internos.
Observabilidade
Os CDNs agora podem ver dados precisos de sessão sobre como o cliente está a experienciar o seu serviço. Esta visibilidade partilhada pode ser usada por CDNs e fornecedores de streaming para:- Configure monitorização e alertas mais precisos.
- Dê mais tempo de espera em incidentes importantes.
- Diagnosticar e resolver problemas de forma mais eficaz.
Caso de Uso: Tratamento de Parada
Processo antigo
Este é o fluxo de processo típico de como a interrupção de uma empresa de streaming é resolvida com logs separados de player e CDN.
-
- Ocorre uma interrupção. Infelizmente, a comunicação humana ou a intervenção de análises de terceiros não são normalmente oferecidas.
- O alerta interno é acionado a partir da queda dos indicadores de desempenho, códigos de erros, painéis, etc.
- O alerta é triagido internamente e escalado com base em fatores como quem está de plantão, especialistas no assunto e delegação de departamentos.
- Os runbooks são usados se este é um problema que foi encontrado e documentado anteriormente.
- A decisão é tomada se o problema deve ser encaminhado externamente para parceiros como a CDN.
- A resolução é alcançada.
- A Análise de Causa Raiz Interna (RCA) é realizada e comunicada aos clientes.
Devido ao longo caminho de encaminhamento, esta interrupção demora muito tempo a chegar a uma resolução.
Novo processo
Este é o fluxo do processo de como uma interrupção é resolvida com o CMCD.
-
- Ocorre uma interrupção. O acesso a dados CMCD nativos permite que todos tenham visibilidade total. A nossa equipa de Serviços Geridos entra em contato consigo de forma proativa para a mitigação.
- A resolução é alcançada pela colaboração de Edgio em tempo real para resolver interrupções enquanto olha para os mesmos dados que os seus engenheiros.
- Edgio pode ajudar com a RCA e criar estratégias para você como parceiro para evitar futuras interrupções.
A resolução da interrupção é alcançada mais rapidamente e requer menos recursos internos de engenharia.
Ganhos de desempenho
O principal objetivo de uma CDN é aumentar o desempenho do conteúdo servido pela internet.Pré-obtenção
Vemos o CMCD pedido mais frequentemente aos nossos clientes para desbloquear o suporte universal de pré-busca. A pré-busca é carregar dados de conteúdo para o cache antes de serem necessários para acelerar a entrega do conteúdo.
Equilíbrio de carga inteligente da próxima geração
A nossa CDN fornece automaticamente conteúdo do Ponto de Prescência mais otimizado (POP) dentro da nossa rede global privada. Nós lidamos com o equilíbrio interno de carga da rede para você, mas quando vários CDNs são usados, o equilíbrio de carga externo é mais complicado e ofuscado para os provedores de conteúdo gerirem. O problema torna-se como as empresas de streaming podem alavancar CDNs em sua pilha de formainteligente. Cada empresa tenta resolver este problema de uma forma única, mas para a maioria ainda é dividida manualmente por percentagem ou disponibilidade delegada pelo jogador. O equilíbrio de carga com consciência CMCD é a resposta. Ter dados de CDN e de jogadores em logs unificados permite uma maior perceção do desempenho de cada CDN, o que é necessário para o equilíbrio de carga inteligente. Isto está nas suas fases nascentes, mas é também a caraterística mais promissora. Os provedores de streaming ainda não estão usando esse método em seus ambientes de produção. Menciono isto porque isso significa que a sua aplicação é teórica. Mais por vir neste caso de uso à medida que vemos o CMCD evoluir e crescer com outras tecnologias emergentes de streaming, como a IA/ML.
Caso de uso: Equilíbrio de carga geográfica inteligente
Um provedor de streaming tem direitos exclusivos de streaming para o maior evento desportivo ao vivo do ano na América Latina. Para se preparar para o evento, o equilíbrio de carga com consciência CMCD pode ser empregado. Durante o jogo, os dados são usados em tempo real para distribuir automaticamente o tráfego para a CDN com o melhor desempenho por região, local e/ou pop fora da pilha CDN. Isso evita a necessidade de reprovação manual se uma CDN na pilha estiver com baixo desempenho, com capacidade, ou se tiver problemas técnicos. Neste cenário, a nossa CDN lidaria com a maior quota de tráfego porque a Edgio normalmente supera outros CDNs na América Latina devido à nossa prioridade de investir fortemente em mercados emergentes.
Otimização de trânsito adaptável
O uso em tempo real do CMCD pode ser usado para otimizações de tráfego adaptativas, como a estabilização das taxas de bits de reprodução entre os visualizadores de streaming.
Como ativar o CMCD?
Antes de prosseguir, você deve saber que existem dois requisitos técnicos que são que o leitor e a CDN precisam para suportar o uso de CMCD. A maioria dos leitores e CDNs hoje tem suporte a CMCD.Jogador | Cabeçalhos | Consulta | JSON |
---|---|---|---|
Theoplayer | |||
Bitmovin | |||
Jogador de Shaka | |||
Android ExoPlayer | |||
hls.js | |||
o dash.js |
* Deve notar-se que o suporte do jogador foi determinado pela disponibilidade de documentação pública e esta lista não é exaustiva. Sinta-se à vontade para entrar em contato com o suporte do leitor CMCD e podemos atualizar para incluir essa informação.
? Não é informação pública no momento da escrita. Sinta-se à vontade para entrar em contato com o suporte CMCD CDN e podemos atualizar para incluir essa informação.
Há outras considerações também:
- Por questões de segurança, recomenda-se vivamente o uso de HTTPS por HTTP para todas as transmissões de dados CMCD através da web.
- O CORS e a proteção de conteúdo introduzem complexidade extra nas configurações de CDN. O CORS precisa de ser configurado para permitir que os cabeçalhos CMCD-Request, CMCD-Object, CMCD-Status, CMCD-Session sejam enviados do leitor para a CDN.
Ativar para Edgio CDN
Veja a secção da documentação do relatório CMCD intitulada Habilitar o registo CMCD para obter instruções. Se você ainda não é um cliente, entre em contato conosco para uma avaliação de desempenho para trabalhar com a nossa equipe de engenheiros de soluções e ver a nossa CDN em ação.
Ativar para Uplynk
O Uplynk de Edgio é uma plataforma de streaming aperfeiçoada com CDN integrada para emissoras e provedores de OTT. Acoplar o CMCD com o Uplynk aumenta a sua visibilidade de ponta a ponta que nenhuma outra plataforma de streaming tem. Se ainda não é cliente, contacte-nos para uma demonstração do Uplynk e para falar diretamente com os nossos Serviços Geridos para permitir. Você pode ler mais sobre o futuro do Uplynk em Edgio e Bitmovin unem forças para otimizar a experiência do usuário .
Como visualizar o CMCD?
Os dados do CMCD estão localizados nos seus logs da CDN que podem ser inspecionados. Os dados podem ser puxados para repositórios de log, painéis e relatórios. Edgio tornou-se um dos primeiros a adotar quando anunciámos o nosso relatório CMCD que é alimentado pelo EdgeQuery.
Exemplo do relatório CMCD de Edgio que está disponível no Portal de Controle da CDN
O relatório CMCD dá uma visão geral visual, juntamente com a capacidade de ver informações detalhadas na ponta dos dedos. Os dados CMCD em si são enviados para a sua solução de armazenamento de registos, quer estejam localizados no local, partilhados com terceiros, ou mantidos na nossa rede no armazenamento Origin do Edgio .
Olhando para a frente
Se ainda não o fizeram, agora devem sentir-se bem familiarizados com o CMCD e como ele pode transformar o streaming hoje em dia. Como líder da indústria na CMCD, Edgio continuará a levá-la ao máximo do que é possível. Fiquem atentos!
Agradecimentos
Um agradecimento especial ao nosso Gestor do Programa Anthony Karr pelo seu valioso feedback e sugestões. Obrigado ao nosso arquiteto de software Yuri Nepyyvoda pelo seu excelente trabalho na liderança do desenvolvimento da nossa implementação de CMCD de ponta.
Terminologia
- CORS: Partilha de recursos de origem cruzada
- Interoperabilidade: A capacidade dos sistemas trabalharem em conjunto.
- Open Specification: Um conjunto de requisitos e padrões documentados publicamente disponíveis para qualquer pessoa.
- OTT: Over-the-top que se refere a fornecer conteúdo sobre serviços de internet.
- Pré-busca: Pré-busca é carregar dados para o cache antes de serem necessários para acelerar a entrega do conteúdo. A pré-busca também é conhecida como cachê de aquecimento ou pré-aquecimento.
- Rum: Dados reais de medição do utilizador
- SDK: Kit de Desenvolvimento de Software
- Uplynk: Uma plataforma de streaming aperfeiçoada com CDN integrada para emissoras e provedores de OTT.