Multi-CDN Arquitectura de Alto Nivel con CMCD
¿Qué es CMCD?
Datos de cliente de medios comunes (CMCD) se refiere a la especificación abierta CTA-5004 que se publicó en 2020. ¿Qué es una especificación abierta? La especificación abierta se refiere a un conjunto de requisitos documentados y estándares disponibles públicamente para cualquier persona. El gran título aquí es que la especificación abierta CMCD define cómo los reproductores multimedia (conocidos como clientes) generan datos de transmisión de video y los comparten con CDN para cada solicitud de medios. Antes de que se definiera esta especificación, era el salvaje oeste en cuanto a cómo se enviaban, recibían y procesaban los datos del cliente con CDN. CMCD en su núcleo es solo un conjunto de claves con datos valiosos. Usando el CTA-5004, resumimos esas claves y añadí ideas para que crees una hoja de trucos útil.Descripción | Clave | Definición | *Uso |
---|---|---|---|
Bitrate codificado | br | Tasa de bits codificada del objeto de audio o video que se solicita. | Muestra la tasa de bits real entregada y puede ser utilizada por CDN para inferir el tamaño del objeto. |
Longitud del búfer | bl | Duración del Buffer del jugador en el momento de la solicitud. | Puede ser utilizado por CDN para inferir la salud de la reproducción. |
Hambruna | bs | Evento de inanición de buffer. Indica rebuffer/stalling en la reproducción. | El porcentaje de rebúfer se calcula como el número total de sesiones vs sesiones con al menos un evento de rebúfer durante un período de tiempo determinado. |
ID de contenido | cid | Cadena única que identifica el contenido actual. | Útil para rastrear contenido problemático, pero rara vez es utilizado por los jugadores. |
Duración del objeto | d | Duración de reproducción en milisegundos del objeto solicitado. |
Cuando se agrega se puede utilizar como una estimación de horas observadas. Se puede utilizar para determinar si el contenido está en un salto de anuncio y el tipo de video que se está viendo. Se puede utilizar para determinar el tamaño del trozo. |
Fecha límite | dl | Fecha límite desde el tiempo de solicitud hasta la primera muestra de este segmento/objeto necesita estar disponible para no crear un empotramiento de búfer o cualquier otro problema de reproducción | |
Mida el rendimiento | plan de mediano plazo | Rendimiento entre el cliente y el servidor, medido por el cliente. | Ancho de banda de rendimiento estimado entre CDN al reproductor. Útil para comparar CDN y métricas externas. |
Siguiente solicitud de objeto | tampoco | Ruta relativa del siguiente objeto a solicitar. | Utilizado para prefetching. |
Solicitud de siguiente rango | nrr | Si la siguiente solicitud será una solicitud de objeto parcial, entonces esta cadena denota el rango de bytes que se solicita. Si no se establece el campo ‘nor’, entonces se asume que el objeto coincide con el objeto que se está solicitando actualmente. | Utilizado para prefetching. |
Tipo de objeto | ot |
Tipo de medio del objeto actual que se solicita: m = archivo de texto, como un manifiesto o lista de reproducción a = solo audio v = solo vídeo av = audio y vídeo muxed i = segmento init c = título o subtítulo tt = ISOBMFF pista de texto cronometrada k = clave criptográfica, licencia o certificado. = otros Si el tipo de objeto que se solicita es desconocido, entonces esta clave NO DEBE ser utilizada. |
Utilizado para la solución de problemas. Se puede utilizar para determinar problemas de codificación y DRM. Los proveedores de DRM tienen una visibilidad limitada sobre qué versiones/navegadores se utilizan/soportan actualmente, por lo que “k” es muy útil.
"c" se puede utilizar para alertar posibles problemas de cumplimiento. |
Tasa de reproducción | pr | 1 si en tiempo real, 2 si doble velocidad, 0 si no se juega. Solo DEBE enviarse si no es igual a 1. | Se puede utilizar para inferir si el jugador está ajustando la velocidad de reproducción para compensar otros problemas (como el origen o CDN no está entregando segmentos lo suficientemente rápido). |
Rendimiento máximo solicitado | rtp |
Rendimiento máximo solicitado que el cliente considere suficiente para la entrega del activo.
***El rendimiento se refiere a la cantidad de datos que se transmite. |
Le dirá el jugador y el rendimiento de CDN. Esto se puede utilizar para una gestión de datos más eficiente y, en efecto, ahorrar recursos.
Esto puede beneficiar a los clientes al evitar la saturación del amortiguador a través de la entrega excesiva y también puede ofrecer un beneficio comunitario a través de la entrega equitativa. El concepto es que cada cliente recibe el rendimiento necesario para un gran rendimiento, pero no más. |
Formato de streaming | sf |
D = MPEG DASH H = HTTP Live Streaming (HLS) S = streaming suave o = otros |
Ayuda a determinar los problemas relacionados con la transmisión para los jugadores que admiten DASH/HLS. Puede comparar el rendimiento basado en el formato de streaming para los jugadores que tienen soporte multiformato. |
ID de sesión | sid | GUID identificando la sesión de reproducción actual. Una sesión de reproducción normalmente vincula segmentos pertenecientes a un único activo de medios. La longitud máxima es de 64 caracteres. SE RECOMIENDA cumplir con la especificación UUID. |
Siempre se recomienda incluir esta clave en el registro CMCD. Es sin duda la clave más útil, ya que se utiliza para alinear los registros juntos.
Puede ser útil la solución de problemas para problemas de almacenamiento en caché. El mismo ID de contenido con dos ID de sesión indica fuertemente un problema de almacenamiento en caché. |
Tipo de flujo | st |
v = Todos los segmentos están disponibles – por ejemplo, VOD l = Los segmentos se vuelven disponibles con el tiempo – por ejemplo, EN VIVO |
Clave invaluable para la resolución de problemas. |
Startup | su | Señales de inicio de contenido. |
Elimina la necesidad de beaconing. CDN Conocer el inicio del contenido puede ser útil para optimizar la reproducción posterior. Esta bandera también se envía después de la bandera de buffer (bs). |
Top Bitrate | tuberculosis | Rendición de tasa de bits más alta en el manifiesto o lista de reproducción que el cliente puede reproducir. |
Se utiliza para determinar los problemas de bitrate o bitrate laddering. Muestra la tasa de bits superior que el jugador podría jugar en ese momento. Se puede utilizar para comparar con las tasas de bits disponibles. |
Versión CMCD | v | Versión de la especificación CMCD utilizada. | Esta clave permite el control de versiones e indica que habrá futuras versiones de CMCD lanzadas. |
Llave personalizada |
Las llaves personalizadas requieren el prefijo “cmcd-“. Ejemplo ficticio: cmcd-edgio |
Permite enviar claves CMCD únicas que extiende CMCD para ser totalmente personalizable. |
En la actualidad, Edgio es el único CDN que declara públicamente soporte para todas las claves CMCD. Las claves definidas se pueden transmitir en tres modos de entrega desde reproductores a CDN.
- Encabezado HTTP personalizado en cada solicitud. Las teclas se pueden utilizar con cuatro nombres de encabezado.
- CMCD-Request: Claves cuyos valores varían con cada solicitud.
- CMCD-Object: Claves cuyos valores varían con el objeto solicitado.
- CMCD-Status: Claves cuyos valores no varían con cada solicitud u objeto.
- CMCD-SESSION: Claves cuyos valores se espera que sean invariantes durante la vida de la sesión.
- Argumentos de consulta HTTP.
- Objeto JSON independiente de cada solicitud HTTP.
Buffer hambriento e inicio en formato CMCD a través de tres modos de entrega.
¿Quién debería usar CMCD?
Los servicios de streaming de cualquier tamaño deben utilizar CMCD lo antes posible. Sin embargo, desde su publicación, el conocimiento y la aplicación de la CMCD han sido limitados. Las tendencias que estamos viendo indican que hay una creciente adopción y apoyo. Dicho esto, nos encantaría hablar con usted sobre su caso de uso y cómo CMCD puede elevar su negocio.¿Por qué se necesita CMCD?
CMCD se trata de asegurarse de que los usuarios obtengan la mejor experiencia de transmisión posible cada vez que golpean el juego. Como ingeniero de soluciones en Edgio, mi trabajo es revisar la arquitectura técnica de un proveedor de contenido para asegurarme de que nuestra CDN funcione sin problemas y eficientemente para la mejor experiencia de usuario. Un componente clave de cualquier arquitectura técnica son los datos recopilados de registros, métricas y trazas (también conocidos como los tres pilares de la observabilidad) para lograr esto. A continuación se presentan algunas razones más por las que vale la pena incorporar CMCD si aún no se vende en él.Normalización
Los datos se recopilan y analizan mediante una combinación de herramientas propietarias internas y de terceros para cada pieza de arquitectura. La dificultad es que los datos recopilados siguen su propio formato. Los datos no estándar pueden crear efectos secundarios como inconsistencias, calidad reducida, escalabilidad limitada y mayores esfuerzos de mantenimiento. Te reto a encontrar un ingeniero que no haya enfrentado algunos o todos estos problemas antes. Para abordar esto, CMCD estandariza los datos del lado del cliente (reproductor) a los datos del lado del servidor (CDN) garantizando la interoperabilidad. Esto es significativo porque lo hace lo más cercano que CDN puede llegar a los datos de Medición Real del Usuario (RUM) del lado del cliente.Personalización mejorada
Las teclas CMCD personalizadas amplían infinitamente su utilidad.Caso de uso: Personalización de código de estado
Aquí hay un código de estado personalizado del mundo real que utiliza Edgio. “000 – Un código de estado específico de Edgio devuelto cuando el origen no envía respuesta, por lo que no hay código de estado para registrar (por ejemplo, cuando el cliente se desconecta antes de que el origen entregue la respuesta).” Esta definición proviene de la sección Campos de archivo de registro de nuestra documentación Configuring Log Delivery Service .
Edgio podría crear una clave personalizada cmcd-000.
Flujos de trabajo simplificados
En los últimos años, las empresas tecnológicas han estado reduciendo costos, consolidando herramientas y reduciendo la complejidad general. Los datos gratuitos que proporciona CMCD pueden reemplazar a los servicios de análisis de registros internos y externos. El resultado es un flujo de trabajo simplificado y optimizado.Caso de uso: Flujo de trabajo del jugador
Viejo proceso
Los análisis de terceros son ampliamente utilizados por las empresas de streaming hoy en día. Sin embargo, estas herramientas requieren un proceso extenso y continuo de integración que se muestra a continuación.
-
- Adquisiciones
- Cada proveedor de análisis de terceros tiene su propio kit de desarrollo de software (SDK) para la integración de balizas con cada jugador. El ExoPlayer de Android (dash), el reproductor de Apple (HLS), PlayReady de Microsoft (Xbox/Windows), basado en web (sitios web, televisores) y más son ejemplos de jugadores que requieren SDK separados.
- Pruebas y validación. Los metadatos son necesarios para ajustarse a las directrices del proveedor.
Vale la pena señalar que este proceso completo puede tomar fácilmente un año o más.
Nuevo proceso
Habilitar es simple. Edgio puede capturar sus datos CMCD casi en tiempo real a través de nuestro servicio de entrega de registros. Eso significa que el balizamiento de jugadores o la integración de terceros no son necesarios para desbloquear el análisis de datos de próxima generación. Para nuestros clientes con una gran base de usuarios esto se traduce en millones de dólares ahorrados anualmente.
Seguridad
La seguridad de la información puede no ser lo primero que se piensa cuando se trata de streaming, pero sigue siendo un componente importante.- CMCD no tiene acceso a los datos de inicio de sesión o contiene PII (Información de Identificación Personal) porque compartimenta la experiencia del usuario de la información. Solo contiene información genérica de rendimiento.
- Los datos de CMCD no dependen de servicios de intermediación. Esto limita el intercambio de datos con terceros que mantienen los datos internos.
Observabilidad
Las CDN ahora pueden ver datos precisos de la sesión sobre cómo el cliente está experimentando su servicio. Esta visibilidad compartida puede ser utilizada por CDN y proveedores de streaming para:- Configure un monitoreo y alertas más precisos.
- Dar más tiempo en incidentes importantes.
- Diagnosticar y resolver problemas de manera más efectiva.
Caso de uso: Manejo de interrupciones
Viejo proceso
Este es el flujo de proceso típico de cómo se resuelve la interrupción de una empresa de streaming con registros separados de reproductor y CDN.
-
- Se produce una interrupción. Desafortunadamente, la comunicación humana o la intervención de análisis de terceros no se ofrecen normalmente.
- La alerta interna se desencadena desde la caída de indicadores de rendimiento, códigos de errores, paneles, etc.
- La alerta se clasifica internamente y se intensifica en función de factores como quién está de guardia, expertos en la materia y delegación del departamento.
- Los runbooks se utilizan si este es un problema que se ha encontrado y documentado previamente.
- La decisión se toma si el problema debe escalarse externamente a socios como CDN.
- Se alcanza una resolución.
- El Análisis de Causa Raíz Interno (RCA) se realiza y se comunica a los clientes.
Debido a la larga trayectoria de escalada, esta interrupción tarda mucho tiempo en llegar a una resolución.
Nuevo proceso
Este es el flujo de proceso de cómo se resuelve una interrupción con CMCD.
-
- Se produce una interrupción. El acceso a los datos CMCD nativos permite a todos tener visibilidad completa. Nuestro equipo de servicios gestionados se comunica proactivamente con usted para mitigar.
- La resolución es alcanzada por Edgio colaborando en tiempo real para resolver interrupciones mientras mira los mismos datos que sus ingenieros.
- Edgio puede ayudar con RCA y elaborar estrategias con usted como socio para evitar interrupciones futuras.
La resolución de corte se alcanza más rápido y requiere menos recursos de ingeniería interna.
Aumento del rendimiento
El propósito principal de una CDN es aumentar el rendimiento del contenido servido a través de Internet.Prefetching
Vemos CMCD solicitado con mayor frecuencia a nuestros clientes para desbloquear el soporte universal de prefetching. La obtención previa es cargar datos de contenido a la caché antes de que se necesiten para acelerar la entrega de contenido.
Balanceo de carga inteligente de próxima generación
Nuestra CDN entrega automáticamente contenido desde el punto de presencia más óptimo (POP) dentro de nuestra red global privada. Manejamos el equilibrio de carga de red interna por usted, pero cuando se utilizan varias CDN, el equilibrio de carga externa es más complicado y ofuscado para los proveedores de contenido. El problema se convierte en cómo pueden las empresas de streaming aprovechar las CDN en su stack de forma inteligente. Cada empresa intenta resolver este problema de una manera única, pero para la mayoría todavía se divide manualmente por porcentaje o disponibilidad delegada por el jugador. El equilibrio de carga consciente de CMCD es la respuesta. Tener datos de CDN y reproductor en registros unificados permite una mayor visión del rendimiento de cada CDN que se requiere para el equilibrio de carga inteligente. Esto está en sus etapas nacientes, pero también es la característica más prometedora. Los proveedores de streaming aún no están utilizando este método en sus entornos de producción. Menciono esto porque eso significa que su aplicación es teórica. Más por venir en este caso de uso a medida que vemos CMCD evolucionar y crecer con otras tecnologías de streaming emergentes como AI/ML.
Caso de uso: Equilibrio de carga geográfico inteligente
Un proveedor de streaming tiene derechos exclusivos de streaming para el evento deportivo en vivo más grande del año en América Latina. Para prepararse para el evento, CMCD Aware Load Balancing puede ser empleado. Durante el juego, los datos se utilizan en tiempo real para distribuir automáticamente el tráfico a la CDN con el mejor rendimiento por región, región y/o salida de la pila de CDN. Esto evita la necesidad de una conmutación por error manual si una CDN en la pila tiene un rendimiento inferior, tiene capacidad o tiene problemas técnicos. En este escenario, nuestra CDN manejaría la mayor cuota de tráfico porque Edgio típicamente supera a otras CDN en América Latina debido a nuestra prioridad de invertir fuertemente en mercados emergentes.
Optimización adaptativa del tráfico
El uso en tiempo real de CMCD se puede utilizar para optimizaciones de tráfico adaptativas, como la estabilización de las tasas de bits de reproducción entre los espectadores de streaming.
¿Cómo habilitar CMCD?
Antes de continuar, debe saber que hay dos requisitos técnicos que son que el reproductor y la CDN necesitan soportar el uso de CMCD. La mayoría de los jugadores y CDN hoy en día tienen soporte CMCD.Jugador | Encabezados | Consulta | JSON |
---|---|---|---|
THEOplayer | |||
Bitmovin | |||
Jugador de Shaka | |||
Android ExoPlayer | |||
hls.js | |||
dash.js |
* Debe tenerse en cuenta que el soporte del jugador fue determinado por la disponibilidad de documentación pública y esta lista no es exhaustiva. Siéntase libre de comunicarse con el soporte del reproductor CMCD y podemos actualizar para incluir esa información.
? = No información pública en el momento de escribir este artículo. Siéntase libre de comunicarse con CMCD CDN soporte y podemos actualizar para incluir esa información.
Hay otras consideraciones también:
- Por razones de seguridad, HTTPS se recomienda encarecidamente sobre HTTP para todas las transmisiones de datos CMCD a través de la web.
- CORS y la protección de contenido introducen complejidad adicional en las configuraciones de CDN. CORS necesita ser configurado para permitir que los encabezados CMCD-Request, CMCD-Object, CMCD-Status, CMCD-Session sean enviados desde el reproductor a la CDN.
Habilitar para Edgio CDN
Consulte la sección de documentación de nuestro informe CMCD titulada Habilitar el registro CMCD para obtener instrucciones. Si aún no es cliente, comuníquese con nosotros para una prueba de rendimiento para trabajar con nuestro equipo de ingenieros de soluciones y ver nuestra CDN en acción.
Habilitar para Uplynk
Uplynk de Edgio es una plataforma de streaming perfeccionada con CDN integrada para emisoras y proveedores de OTT. El acoplamiento de CMCD con Uplynk aumentará su visibilidad de extremo a extremo que ninguna otra plataforma de streaming tiene. Si aún no es cliente, comuníquese con nosotros para una demostración de Uplynk y hable directamente con nuestros Servicios Administrados para habilitar. Puedes leer más sobre el futuro de Uplynk en Edgio y Bitmovin unen fuerzas para optimizar la experiencia del usuario.
Cómo ver CMCD?
Los datos CMCD se encuentran dentro de sus registros CDN que pueden ser inspeccionados. Los datos se pueden extraer en repositorios de registros, paneles e informes. Edgio se convirtió en un adoptante temprano cuando anunciamos nuestro Informe CMCD que es impulsado por EdgeQuery.
Ejemplo del Informe CMCD de Edgio que está disponible en el Portal de Control de CDN
El informe CMCD ofrece una visión general visual junto con la capacidad de ver información detallada al alcance de su mano. Los datos CMCD en sí se envían a su solución de almacenamiento de registros, ya sea que se encuentre en las instalaciones, se comparta con un tercero o se guarde en nuestra red en Edgio’s Origin Storage.
Mirando hacia el futuro
Si aún no lo ha hecho, ahora debería sentirse bien familiarizado con CMCD y cómo puede transformar el streaming hoy. Como líder de la industria con CMCD, Edgio continuará llevándolo al máximo de lo que es posible. ¡Estad atentos!
Agradecimientos
Un agradecimiento especial a nuestro Gerente de Programa Anthony Karr por sus invaluables comentarios y sugerencias. Gracias a nuestro Arquitecto de Software Yuri Nepyyvoda por su destacado trabajo liderando el desarrollo de nuestra implementación de CMCD de vanguardia.
Terminología
- CORS: Intercambio de recursos de origen cruzado
- Interoperabilidad: La capacidad de los sistemas para trabajar juntos.
- Especificaciones abiertas: Un conjunto de requisitos documentados y estándares disponibles públicamente para cualquier persona.
- OTT: Over-the-top que se refiere a la entrega de contenido en la parte superior de los servicios de Internet.
- Prefetching: La prefetching es cargar datos a la caché antes de que sean necesarios para acelerar la entrega de contenido. Prefetching también se conoce como calentamiento o caché pre-calentamiento.
- RUM: Datos de medición de usuarios reales
- SDK: Kit de Desarrollo de Software
- Uplynk: Una plataforma de streaming perfeccionada con CDN integrado para emisoras y proveedores de OTT.