Técnica de transmisión de tasa de bits adaptable basada en HTTP
Dynamic Adaptive Streaming over HTTP ( DASH ), también conocido como MPEG-DASH , es una técnica de transmisión de velocidad de bits adaptativa que permite la transmisión de alta calidad de contenido multimedia a través de Internet desde servidores web HTTP convencionales . Similar a la solución HTTP Live Streaming (HLS) de Apple, MPEG-DASH funciona dividiendo el contenido en una secuencia de pequeños segmentos, que se sirven a través de HTTP . Un primer sistema de transmisión basado en servidor web HTTP llamado SProxy fue desarrollado e implementado en los Laboratorios Hewlett Packard en 2006. [2] [3] Mostró cómo usar solicitudes de rango HTTP para dividir el contenido en pequeños segmentos. SProxy muestra la efectividad de la transmisión basada en segmentos, obteniendo la mejor penetración de Internet debido a la amplia implementación de firewalls y reduciendo la transmisión de tráfico innecesario si un usuario elige terminar la sesión de transmisión antes de llegar al final. Cada segmento contiene un breve intervalo de tiempo de reproducción de contenido que potencialmente tiene muchas horas de duración, como una película o la transmisión en vivo de un evento deportivo. El contenido se pone a disposición en una variedad de diferentes tasas de bits, es decir, segmentos alternativos codificados a diferentes tasas de bits que cubren intervalos cortos alineados de tiempo de reproducción. Mientras un cliente MPEG-DASH reproduce el contenido, el cliente utiliza un algoritmo de adaptación de tasa de bits (ABR) [4] para seleccionar automáticamente el segmento con la tasa de bits más alta posible que se puede descargar a tiempo para la reproducción sin causar paradas o eventos de re-buffering en la reproducción. [5] El cliente de referencia MPEG-DASH actual dash.js [6] ofrece algoritmos de adaptación de tasa de bits basados en buffer (BOLA [7] ) e híbridos (DYNAMIC [5] ). Por lo tanto, un cliente MPEG-DASH puede adaptarse sin problemas a las condiciones cambiantes de la red y proporcionar una reproducción de alta calidad con pocas paradas o eventos de re-buffering.
MPEG-DASH es la primera solución de streaming basada en HTTP con velocidad de bits adaptable que es un estándar internacional. [8] MPEG-DASH no debe confundirse con un protocolo de transporte: el protocolo de transporte que utiliza MPEG-DASH depende de la versión de HTTP que se utilice: TCP sobre HTTP y HTTP/2 , o UDP sobre HTTP/3 . MPEG-DASH utiliza la infraestructura de servidor web HTTP existente que se utiliza para la entrega de prácticamente todo el contenido de la World Wide Web. Permite que dispositivos como televisores conectados a Internet, decodificadores de TV, computadoras de escritorio, teléfonos inteligentes, tabletas, etc. reciban contenido multimedia (video, TV, radio, etc.) entregado a través de Internet, haciendo frente a condiciones de recepción de Internet variables. La estandarización de una solución de streaming adaptable tiene como objetivo brindar confianza al mercado de que la solución puede adoptarse para una implementación universal, en comparación con soluciones similares pero más propietarias como Smooth Streaming de Microsoft o HDS de Adobe. A diferencia de HDS o Smooth Streaming, DASH es independiente del códec , lo que significa que puede usar contenido codificado con cualquier formato de codificación , como H.265 , H.264 , VP9 , etc. [9]
Normalización
La tecnología MPEG-DASH se desarrolló bajo el marco de MPEG . El trabajo sobre DASH comenzó en 2010; se convirtió en un borrador de norma internacional en enero de 2011 y en una norma internacional en noviembre de 2011. [8] [10] La norma MPEG-DASH se publicó en abril de 2012, pero se revisó en 2019 y luego una vez más en 2022 como [1].
DASH es una tecnología relacionada con Adobe Systems HTTP Dynamic Streaming , Apple Inc. HTTP Live Streaming (HLS) y Microsoft Smooth Streaming . DASH se basa en Adaptive HTTP Streaming (AHS) en 3GPP Release 9 y en HTTP Adaptive Streaming (HAS) en Open IPTV Forum Release 2. [11] [12] Como parte de su colaboración con MPEG, 3GPP Release 10 ha adoptado DASH (con códecs y modos operativos específicos) para su uso en redes inalámbricas. [11]
El Foro de la Industria DASH ( DASH-IF ) [13] promueve y cataliza aún más la adopción de MPEG-DASH y ayuda a que pase de ser una especificación a convertirse en un negocio real. Está formado por importantes empresas de streaming y medios de comunicación, como Microsoft, Netflix, Google, Ericsson, Samsung, Adobe, etc., y crea directrices sobre el uso de DASH para diferentes casos de uso en la práctica.
MPEG-DASH está integrado en otros estándares, por ejemplo, MPEG-DASH es compatible con HbbTV (a partir de la versión 1.5). [14]
Descripción general
DASH es una tecnología de transmisión de velocidad de bits adaptativa en la que un archivo multimedia se divide en uno o más segmentos y se envía a un cliente mediante HTTP . [15] Una descripción de presentación de medios (MPD) describe la información del segmento (tiempo, URL , características de los medios como la resolución de video y las velocidades de bits ), y se puede organizar de diferentes maneras, como SegmentList, SegmentTemplate, SegmentBase y SegmentTimeline, según el caso de uso. Los segmentos pueden contener cualquier dato multimedia, sin embargo, la especificación proporciona orientación y formatos específicos para su uso con dos tipos de contenedores: formato de archivo multimedia base ISO (por ejemplo, formato de archivo MP4) o MPEG-2 Transport Stream .
DASH es independiente del códec de audio/video . Normalmente, hay disponibles una o más representaciones (es decir, versiones a diferentes resoluciones o velocidades de bits) de archivos multimedia, y se puede hacer una selección en función de las condiciones de la red , las capacidades del dispositivo y las preferencias del usuario, lo que permite la transmisión de velocidad de bits adaptativa [16] y la equidad de la calidad de la experiencia (QoE) . [17] El estándar DASH no especifica la lógica de transmisión de velocidad de bits adaptativa (ABR). [18] DASH también es independiente del protocolo de capa de aplicación subyacente. Por lo tanto, DASH se puede utilizar con cualquier protocolo, por ejemplo, DASH sobre CCN . [19]
El 27 de julio de 2015, MPEG LA anunció una convocatoria de patentes relacionadas con MPEG-DASH con el fin de crear un único fondo de patentes para esta tecnología. [20] MPEG LA anunció su licencia de cartera de patentes MPEG-DASH. MPEG-LA afirma que las patentes incluidas son esenciales para el estándar MPEG Dynamic Adaptive Streaming over HTTP. [21]
Implementaciones
MPEG-DASH está disponible de forma nativa en Android a través de ExoPlayer, [22] en Samsung Smart TVs 2012+, LG Smart TV 2012+, Sony TV 2012+, Philips NetTV 4.1+, Panasonic Viera 2013+ y Chromecast. [23] YouTube y Netflix ya son compatibles con MPEG-DASH, y hay diferentes reproductores MPEG-DASH disponibles. [24]
Si bien MPEG-DASH no es compatible directamente con HTML5, existen implementaciones de JavaScript de MPEG-DASH que permiten usar MPEG-DASH en navegadores web mediante las extensiones de fuente de medios HTML5 (MSE). [25] También existen implementaciones de JavaScript como el reproductor bitdash [26] que admiten DRM para MPEG-DASH mediante las extensiones de medios encriptados HTML5 . [27] En combinación con WebGL, la transmisión de tasa de bits adaptativa basada en HTML5 de MPEG-DASH también permite la transmisión eficiente de video de 360° para casos de uso en vivo y bajo demanda. [28]
Clientes y bibliotecas
- Shaka Player es el reproductor de vídeo HTML5 DASH de código abierto de Google para conexiones de bajo ancho de banda. [29] [30] [31] [32] [33]
- El reproductor multimedia VLC 3.0 incluye un nuevo complemento de cliente para MP4/MPEG y transmisiones en vivo. [34] [35] [36]
- El marco multimedia FOSS multiplataforma GStreamer admite MPEG-DASH y WebM DASH al menos desde la versión 1.4. [37]
- La biblioteca de código abierto libdash [38] es independiente de la plataforma y se ejecuta en plataformas móviles como Android, iOS y Windows Phone.
- bitmovin proporciona el reproductor bitdash MPEG-DASH para HTML5 y Flash. [39]
- VideoJS es un reproductor de video HTML5 de código abierto, compatible con HLS, DASH, WebM y MP4 progresivo para transmisión en vivo y VOD. [29] [30]
- Clappr es un reproductor de video HTML5 de código abierto, utiliza HTMLVideoElement, admite DASH, HLS, progresivo, inserción de anuncios, superposiciones dinámicas, imagen en imagen [30] [29]
Servidores
Tenga en cuenta que no se requiere soporte específico del servidor para el contenido DASH, con la excepción de la transmisión en vivo.
Servicios
Generadores de contenido
- DASHEncoder de ITEC. [34] [51]
- MP4Box y su plataforma multimedia de GPAC en Télécom Paris [52]
- dashcast de Télécom Paris admite transmisión en vivo MPEG-DASH [53]
- Empaquetador MPEG-DASH de MediaGoom [54]
- Herramientas y SDK de código abierto Bento4 [55]
Otro
- ITEC ofrece un servicio de validación para archivos MPEG-DASH Media Presentation Description (MPD) [34]
- El Instituto de Tecnología de la Información (ITEC) de la Universidad Alpen-Adria de Klagenfurt, [51] [57] el grupo GPAC de Telecom ParisTech [52] y Digital TV Labs [58] ofrecen múltiples conjuntos de datos DASH .
- La BBC tiene transmisiones de prueba DASH, incluido DASH sobre HTTP/2. [59]
- Widevine DRM es compatible con DASH y extensiones de medios cifrados . [60]
- Mividi proporciona una herramienta de software para analizar y monitorear transmisiones MPEG-DASH en vivo. [61]
Jugadores y servidores compatibles
Clientela
Windows 10 solía tener soporte nativo para la transmisión DASH en EdgeHTML , un motor de navegador propietario que se usaba en Microsoft Edge (ahora conocido como Edge Legacy) antes de la transición al motor de navegador Blink basado en Chromium . Edge Legacy se incluyó en Windows 10 hasta la versión 2004. Fue reemplazado por Edge Chromium en la versión 20H2.
La compatibilidad de DASH con otros navegadores y sistemas operativos está disponible a través de Media Source Extensions .
Titulares de patentes
Referencias
- ^ "Transmisión adaptativa DASH para vídeo HTML 5" . Consultado el 11 de julio de 2024 .
- ^ Chen, Songqing; Shen, Bo; Tan, Wai-tian; Wee, Susie; Zhang, Xiaodong (9 de julio de 2006). "Un caso para la transmisión por Internet a través de servidores web". Conferencia internacional IEEE sobre multimedia y exposiciones de 2006. págs. 2145–2148. doi :10.1109/ICME.2006.262660. eISSN 1945-788X. ISBN 1-4244-0367-7. ISSN 1945-7871. S2CID 9202042.
- ^ Chen, Songqing; Shen, Bo; Wee, Susie; Zhang, Xiaodong (23 de julio de 2007). "SProxy: una infraestructura de almacenamiento en caché para soportar la transmisión por Internet". IEEE Transactions on Multimedia . 9 (5): 1062–1072. CiteSeerX 10.1.1.74.4838 . doi :10.1109/TMM.2007.898943. ISSN 1520-9210. S2CID 870854.
- ^ "Lógica ABR". GitHub .
- ^ ab "De la teoría a la práctica: mejora de la adaptación de la tasa de bits en el reproductor de referencia DASH, por Spiteri, Sitaraman y Sparacio, Conferencia de sistemas multimedia de la ACM, junio de 2018" (PDF) .
- ^ "Página de destino del cliente de referencia de JavaScript dash.js". reference.dashif.org . Consultado el 28 de agosto de 2020 .
- ^ Spiteri, Kevin; Urgaonkar, Rahul; Sitaraman, Ramesh K. (2020). "BOLA: adaptación de la tasa de bits casi óptima para vídeos en línea". Transacciones IEEE/ACM en redes . 28 (4): 1698-1711. arXiv : 1601.06748 . doi :10.1109/TNET.2020.2996964. S2CID 219792107.
- ^ ab "MPEG ratifica su borrador de estándar para DASH". MPEG. 2011-12-02. Archivado desde el original el 2012-08-20 . Consultado el 2012-08-26 .
- ^ "MPEG-DASH frente a Apple HLS frente a Microsoft Smooth Streaming frente a Adobe HDS". 29 de marzo de 2015. Consultado el 3 de junio de 2016 .
- ^ "ISO/IEC 23009-1:2012". ISO .
- ^ ab ETSI 3GPP 3GPP TS 26.247; Servicio de transmisión por conmutación de paquetes de extremo a extremo transparente (PSS); Descarga progresiva y transmisión adaptativa dinámica sobre HTTP (3GP-DASH)
- ^ Especificación de la solución del foro Open IPTV Volumen 2a: HTTP Adaptive Streaming V2.1 Archivado el 9 de octubre de 2011 en Wayback Machine
- ^ "Foro de la industria DASH | Catalizando la adopción de MPEG-DASH". dashif.org .
- ^ "Especificación 1.5 de HbbTV" (PDF) . Archivado desde el original (PDF) el 3 de julio de 2014.
- ^ "Tecnologías | MPEG". mpeg.chiariglione.org .
- ^ Transmisión dinámica adaptativa 3GPP sobre HTTP: estándares y principios de diseño Archivado el 5 de agosto de 2016 en Wayback Machine por T. Stockhammer
- ^ "Hacia la equidad de la calidad de la experiencia en toda la red mediante la transmisión de vídeo adaptativa asistida por OpenFlow". scholar.google.com .
- ^ Bentaleb, Abdelhak; Taani, Bayán; Begen, Ali C.; Timmerer, cristiano; Zimmermann, Roger (21 de enero de 2019). "Una encuesta sobre esquemas de adaptación de la velocidad de bits para la transmisión de medios a través de HTTP". Encuestas y tutoriales de comunicaciones IEEE . 21 (1): 562–585. doi : 10.1109/COMST.2018.2862938 . S2CID 67867085.
- ^ "DASH sobre ICN/CCN | ITEC – Transmisión dinámica adaptativa sobre HTTP".
- ^ "MPEG LA anuncia convocatoria de patentes para organizar licencia conjunta para MPEG-DASH" (PDF) . Archivado desde el original (PDF) el 7 de agosto de 2015.
- ^ "Resumen informativo sobre la licencia de la cartera de patentes de DASH*" (PDF) . MPEG LA . 2019-03-04 . Consultado el 10 de julio de 2019 .
- ^ "ExoPlayer". Desarrolladores de Android . Consultado el 7 de diciembre de 2021 .
- ^ Compatibilidad del dispositivo
- ^ El estado actual del formato MPEG-DASH y por qué YouTube y Netflix lo utilizan en HTML5
- ^ Extensiones de fuentes multimedia HTML5
- ^ "SDK de reproductor de video para una visualización perfecta | Reproductor HTML5". bitmovin.com . Archivado desde el original el 3 de julio de 2015.
- ^ "Extensiones de medios cifrados". w3c.github.io .
- ^ "Esta demostración muestra el Bitmovin Player mostrando un video de 360° con VR". bitmovin.com .
- ^ abc Vijayanagar, Krishna Rao (3 de junio de 2021). "Los 13 mejores reproductores de video HTML5 para la Web analizados [2021]". OTTVerse . Consultado el 7 de diciembre de 2021 .
- ^ abc "clappr dash.js hls.js rx-player shaka-player videojs-contrib-hls". npm trends.com . Consultado el 7 de diciembre de 2021 .
- ^ Zhang, Bo; Teixeira, Thiago; Reznik, Yuriy (24 de junio de 2021). "Rendimiento de reproductores de streaming basados en HTTP de baja latencia". Actas de la 12ª Conferencia de sistemas multimedia ACM . págs. 356–362. doi : 10.1145/3458305.3478442 . ISBN 9781450384346.S2CID237596948 .
- ^ Cimpanu, Catalin (24 de agosto de 2015). «Conoce Shaka Player, el reproductor de vídeo HTML5 de Google para condiciones de ancho de banda reducido». Softpedia . Consultado el 13 de agosto de 2016 .
- ^ "El mejor reproductor de vídeo HTML5: comparación de 12 reproductores". Cloudinary . 28 de junio de 2020 . Consultado el 7 de diciembre de 2021 .
- ^ abc DASH en ITEC, complemento VLC, DASHEncoder y conjunto de datos de C. Mueller, S. Lederer, C. Timmerer
- ^ "C. Müller y C. Timmerer, "Un complemento de VLC Media Player que permite la transmisión dinámica adaptativa a través de HTTP", en Actas de ACM Multimedia 2011, Scottsdale, Arizona, 28 de noviembre de 2011" (PDF) .
- ^ "Características de VLC 3.0". Archivado desde el original el 2020-07-30 . Consultado el 2015-02-13 .
- ^ "Transmisión adaptativa HTTP con GStreamer – coaxion.net – blog de slomo".
- ^ libdash: biblioteca de cliente DASH de código abierto de bitmovin Gmbh
- ^ "SDK de reproductor de vídeo para una visualización perfecta | Reproductor HTML5". bitmovin.com .
- ^ "Transmita MPEG-DASH a través de HTTP con Wowza Streaming Engine". Wowza Media Systems .
- ^ "DASH Streaming y listas de reproducción". Archivado desde el original el 2017-08-31 . Consultado el 2016-07-05 .
- ^ "Transmisión de MPEG-DASH a través de Nimble Streamer - Softvelum". wmspanel.com .
- ^ "Netview y el streaming unificado DASH". Revista Streaming Media .
- ^ "Ficha técnica de la USP". Archivado desde el original el 21 de abril de 2015. Consultado el 17 de abril de 2015 .
- ^ Akamai anuncia compatibilidad nativa con MPEG-DASH y HDS para flujos de trabajo de video en vivo
- ^ "Amazon Elastic Transcoder ahora es compatible con MPEG-DASH". Amazon Web Services, Inc. Consultado el 3 de junio de 2016 .
- ^ "Referencias y recursos sobre MPEG-DASH y streaming". 3 de marzo de 2016.
- ^ "Formatos admitidos por bitcodin.com". Archivado desde el original el 28 de marzo de 2016. Consultado el 4 de mayo de 2015 .
- ^ "Ofrezca HLS y MPEG-DASH con el reproductor de video de Cloudinary | Cloudinary". cloudinary.com .
- ^ "Transmisión de ingeniería: FM y en línea". Insanity Radio Tech . 26 de julio de 2017. Consultado el 7 de diciembre de 2021 .
- ^ ab "S. Lederer, C. Mueller y C. Timmerer, "Transmisión dinámica adaptativa sobre conjunto de datos HTTP", en Actas de la Conferencia de sistemas multimedia ACM 2012, Chapel Hill, Carolina del Norte, 22-24 de febrero de 2012" (PDF) .
- ^ ab "Fragmentación, segmentación, división y entrelazado · gpac/gpac Wiki". GitHub .
- ^ "DashCast | GPAC".
- ^ "Media Goom. Transmisión web adaptativa esencial con MPEG-DASH y HLS". Archivado desde el original el 18 de enero de 2017.
- ^ "Introducción a Bento4". www.bento4.com .
- ^ Descripción general del conjunto de datos MPEG DASH
- ^ "Conjunto de datos DASH distribuido | ITEC – Transmisión dinámica adaptativa a través de HTTP".
- ^ "Conjunto de pruebas MPEG DASH". Archivado desde el original el 7 de marzo de 2014. Consultado el 22 de noviembre de 2013 .
- ^ "Transmisiones de prueba de MPEG DASH". BBC R&D . 9 de septiembre de 2013.
- ^ "La guía completa de Widevine". encoding.com. Archivado desde el original el 29 de diciembre de 2021. Consultado el 11 de enero de 2018 .
- ^ "Solución de análisis y monitoreo de MPEG-DASH". mividi.com . Consultado el 15 de septiembre de 2019 .
- ^ "Transmisión de video adaptativa simplificada: anuncio de compatibilidad con HLS y DASH en Windows 10". learn.microsoft.com . 29 de enero de 2015.
- ^ "Transmisión dinámica adaptativa sobre HTTP (MPEG-DASH) | ¿Puedo utilizar... Tablas de soporte para HTML5, CSS3, etc." caniuse.com .
- ^ "Historial de versiones de MPC-BE - VideoHelp".
- ^ "Lista de patentes DASH" (PDF) . MPEG LA . Consultado el 10 de julio de 2019 .
Enlaces externos
- Estándar MPEG-DASH
- Lista de correo de suscripción a DASH
- Investigación DASH en la Alpen-Adria Universität Klagenfurt
- Lista de correo de la biblioteca cliente DASH de código abierto libdash