{"id":1885,"date":"2025-03-14T14:49:47","date_gmt":"2025-03-14T13:49:47","guid":{"rendered":"https:\/\/websites.fraunhofer.de\/video-dev\/?p=1885"},"modified":"2025-03-14T15:44:59","modified_gmt":"2025-03-14T14:44:59","slug":"dash-js-give-me-a-high-five","status":"publish","type":"post","link":"https:\/\/websites.fraunhofer.de\/video-dev\/dash-js-give-me-a-high-five\/","title":{"rendered":"dash.js &#8211; Give me a high five"},"content":{"rendered":"\n<p>Rocky, Pirates of the Caribbean, Die Hard and The Matrix: What do all these movies have in common? All of them are often cited for having a poorly received fifth&nbsp;edition.<\/p>\n\n\n\n<p>With dash.js we do it differently. Thanks to all of our contributors we consider dash.js v5.0.0 to be a major improvement compared to previous versions. And the best thing is: It\u2019s <a href=\"https:\/\/github.com\/Dash-Industry-Forum\/dash.js\">available for free<\/a>, no expensive subscription needed and no need to watch prerolls or midrolls (although, to be fair we enable use cases such as ad-insertion ourselfs).<\/p>\n\n\n\n<p>On February,14th 2025 we officially r<a href=\"https:\/\/github.com\/Dash-Industry-Forum\/dash.js\/releases\/tag\/v5.0.0\">eleased dash.js version 5.0.0.<\/a> A little behind schedule, as we were aiming for a release in 2024 but still less delayed than the average train of Deutsche Bahn.<\/p>\n\n\n\n<p>What can you expect from version 5.0.0? In the following sections we dive into some of the main additions to the player. Of course, we cannot cover all the changes in this blog post, but you can always check out the detailed <a href=\"https:\/\/github.com\/Dash-Industry-Forum\/dash.js\/releases\/tag\/v5.0.0\">release notes<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why are you hurting yourself?<\/h2>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"426\" height=\"322\" src=\"https:\/\/websites.fraunhofer.de\/video-dev\/wp-content\/uploads\/2025\/03\/image.png\" alt=\"\" class=\"wp-image-1886\" style=\"width:337px;height:auto\" srcset=\"https:\/\/websites.fraunhofer.de\/video-dev\/wp-content\/uploads\/2025\/03\/image.png 426w, https:\/\/websites.fraunhofer.de\/video-dev\/wp-content\/uploads\/2025\/03\/image-400x302.png 400w\" sizes=\"auto, (max-width: 426px) 100vw, 426px\" \/><figcaption class=\"wp-element-caption\"><em>Image Source: <a href=\"https:\/\/trailers.getyarn.io\/yarn-clip\/2dfc12fb-5f64-4845-8a7d-0c9186749651 \">https:\/\/trailers.getyarn.io\/yarn-clip\/2dfc12fb-5f64-4845-8a7d-0c9186749651 <\/a><\/em><\/figcaption><\/figure>\n\n\n\n<p>External DDoS attacks can be very painful to handle. You know what\u2019s even worse? DDoSing yourself.<\/p>\n\n\n\n<p>Imagine this: We provide a live media service to our customers with a large DVR window. The media segments are not aligned, and we use a DASH manifest with <code>&lt;SegmentTimeline&gt;<\/code> signaling. Suddenly we see this reoccurring pattern leading to very large manifest files (see also our previous post \u201c<a href=\"https:\/\/websites.fraunhofer.de\/video-dev\/to-understand-is-to-perceive-patterns\/\">To understand is to perceive &lt;Patterns&gt;<\/a>\u201d). Depending on the platform the parsing of such manifest files can consume a large amount of time. In the worst case the parsing time is larger than the interval between two consecutive MPD updates. At this point the media player would be doing nothing else than parsing, updating, parsing, updating and so on. Here is our DDoS attack, and we can\u2019t even blame anyone for it (except for the content author maybe).<\/p>\n\n\n\n<p>With dash.js we introduced a <strong>new XML parsing library<\/strong> called <a href=\"https:\/\/www.npmjs.com\/package\/txml\">tXml<\/a>. The new library significantly improves the parsing times on low-end devices leading to better performance and faster startup times.<\/p>\n\n\n\n<p>The credits for this go to <a href=\"https:\/\/www.linkedin.com\/in\/bertrand-berthelot-97774a106\/\">Bertrand Berthelot<\/a> (<a href=\"https:\/\/www.linkedin.com\/company\/broadpeak\/\">Broadpeak<\/a>) who <a href=\"https:\/\/github.com\/Dash-Industry-Forum\/dash.js\/pull\/4180\">contributed<\/a> this feature to dash.js.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">No integrals to see here<\/h2>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"432\" height=\"242\" src=\"https:\/\/websites.fraunhofer.de\/video-dev\/wp-content\/uploads\/2025\/03\/Picture-1.jpg\" alt=\"\" class=\"wp-image-1887\" style=\"width:428px;height:auto\" srcset=\"https:\/\/websites.fraunhofer.de\/video-dev\/wp-content\/uploads\/2025\/03\/Picture-1.jpg 432w, https:\/\/websites.fraunhofer.de\/video-dev\/wp-content\/uploads\/2025\/03\/Picture-1-400x224.jpg 400w\" sizes=\"auto, (max-width: 432px) 100vw, 432px\" \/><figcaption class=\"wp-element-caption\"><em>Image Source: <a href=\"https:\/\/www.zmescience.com\/feature-post\/natural-sciences\/mathematics\/math-the-simpsons-05263\/\">https:\/\/www.zmescience.com\/feature-post\/natural-sciences\/mathematics\/math-the-simpsons-05263\/<\/a><\/em><\/figcaption><\/figure>\n\n\n\n<p>Yuriy if you are reading this: No worries, no integrals were harmed. But even with some fundamental math and the help of W3C APIs we can improve the throughput calculation in dash.js.<\/p>\n\n\n\n<p>With v5.0.0 we introduce support for the <strong><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/Performance_API\/Resource_timing\">Resource Timing API<\/a><\/strong> and the <strong><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/NetworkInformation\">Network Information API<\/a><\/strong>. Moreover<strong>, new throughput calculation modes<\/strong> such as harmonic mean with sliding window were added. Looking for more details and how to use the new modes? Checkout our new documentation on <a href=\"https:\/\/dashif.org\/dash.js\/pages\/usage\/abr\/throughput-calculation.html\">throughput calculation<\/a> and the corresponding <a href=\"https:\/\/github.com\/Dash-Industry-Forum\/dash.js\/pull\/4237\">pull request<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">To start use any key<\/h2>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"348\" height=\"260\" src=\"https:\/\/websites.fraunhofer.de\/video-dev\/wp-content\/uploads\/2025\/03\/Picture-2.png\" alt=\"\" class=\"wp-image-1888\"\/><figcaption class=\"wp-element-caption\"><em>Image Source: <a href=\"https:\/\/cdn-images-1.medium.com\/max\/640\/0*GqxcDsQ3cVEnkwJx.png\"><a href=\"https:\/\/media.tenor.com\/a-TsAtfszc8AAAAe\/homer-any.png\">https:\/\/media.tenor.com\/a-TsAtfszc8AAAAe\/homer-any.png<\/a><\/a><\/em><\/figcaption><\/figure>\n\n\n\n<p>There is no \u201cany key\u201d to decrypt all of our content. In fact, even the same content is typically encrypted with different keys for the SD, HD and UHD track. Speaking in DASH terms that means that we use multiple <em><code>AdaptationSets<\/code><\/em> for the video content in our MPD (one for each video track). &nbsp;And now comes the tricky part: Typically a mediaplayer will choose one <em><code>AdaptationSet<\/code><\/em> and then only adapt between the <em><code>Representations<\/code><\/em> defined in that <em><code>AdaptationSet<\/code>.<\/em> But what if our client fulfills all the requirements to play the SD, HD and UHD tracks? Wouldn\u2019t we want the media player to adapt between <em><code>Representations<\/code><\/em> of all the supported <em><code>AdapatationSets<\/code><\/em>?<\/p>\n\n\n\n<p>Fortunately there is a <em><code>SupplementalProperty <\/code><\/em>in DASH to support exactly that use case. With dash.js v5.0.0 we add <strong>support for <em><code>&lt;SupplementalProperty schemeIdUri=\"urn:mpeg:dash:adaptation-set-switching:2016&gt;<\/code>. <\/em><\/strong>Moreover, we now <strong>handle <em><code>keystatuseschange<\/code> <\/em>events<\/strong> thrown by the Encrypted Media Extensions directly in the player. That way we can react dynamically to keys that are no longer usable or become usable during playback (e.g. due to changes caused by HDCP requirements).<\/p>\n\n\n\n<p>More details can again be found in the two pull requests <a href=\"https:\/\/github.com\/Dash-Industry-Forum\/dash.js\/pull\/4562\">#4562<\/a> and <a href=\"https:\/\/github.com\/Dash-Industry-Forum\/dash.js\/pull\/4276\">#4576<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Did you read the whole book?<\/h2>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"206\" height=\"155\" src=\"https:\/\/websites.fraunhofer.de\/video-dev\/wp-content\/uploads\/2025\/03\/Picture-3.png\" alt=\"\" class=\"wp-image-1889\" style=\"width:320px;height:auto\"\/><figcaption class=\"wp-element-caption\"><em>Image Source: <a href=\"https:\/\/cdn-images-1.medium.com\/max\/640\/0*GqxcDsQ3cVEnkwJx.png\">https:\/\/cdn-images-1.medium.com\/max\/640\/0*GqxcDsQ3cVEnkwJx.png<\/a><\/em><\/figcaption><\/figure>\n\n\n\n<p>Personally, I sometimes struggle to read a book from the beginning to the end. I feel like a lot of books are too long and not getting to the point. Luckily the DASH specification is extremely entertaining and the colleagues from <a href=\"https:\/\/www.linkedin.com\/company\/qualabs\/\">Qualabs<\/a> even read its Annex. This is why we can now announce that dash.js v5.0.0 has basic <strong>support for <em><code>UrlQueryInfo<\/code><\/em> and <em><code>ExtUrlQueryInfo<\/code><\/em><\/strong>.<\/p>\n\n\n\n<p>As an example, this new feature allows defining rules in the MPD that instruct the media player to extract query parameters from the MPD request and append them to the requests for media objects. This enables use cases such as support for the <strong>Common Access Token<\/strong>.<\/p>\n\n\n\n<p>More information can again be found in the corresponding <a href=\"ry-Forum\/dash.js\/pull\/4578\">pull request<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">We have tons of books about streaming<\/h2>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"250\" height=\"187\" src=\"https:\/\/websites.fraunhofer.de\/video-dev\/wp-content\/uploads\/2025\/03\/Picture-4.jpg\" alt=\"\" class=\"wp-image-1891\" style=\"width:305px;height:auto\"\/><figcaption class=\"wp-element-caption\"><em>Image Source: <a href=\"https:\/\/cdn-images-1.medium.com\/max\/640\/0*GqxcDsQ3cVEnkwJx.png\"><a href=\"https:\/\/benbrookshelflife.wordpress.com\/wp-content\/uploads\/2014\/08\/librarysign.jpg\">https:\/\/benbrookshelflife.wordpress.com\/wp-content\/uploads\/2014\/08\/librarysign.jpg<\/a><\/a><\/em><\/figcaption><\/figure>\n\n\n\n<p>Libraries are great! You have a great selection of books, and it typically costs you almost nothing to read them. The same is true for open-source software libraries. While the work of maintaining such libraries usually falls on only a few shoulders, the community benefits greatly from the features provided to them for free. An example of such a library is the <strong><a href=\"https:\/\/github.com\/streaming-video-technology-alliance\/common-media-library\">Common Media Library<\/a> (CML) <\/strong>maintained by <a href=\"https:\/\/www.linkedin.com\/in\/caseyocchialini\/\">Casey Occhialini<\/a> (<a href=\"https:\/\/www.linkedin.com\/company\/paramountco\/\">Paramount<\/a>).<\/p>\n\n\n\n<p>The CML implements common media player functionality such as support for parsing ID3 payloads and encoding CMCD query strings.<\/p>\n\n\n\n<p>dash.js v5.0.0 uses multiple features of the CML, more information can again be found in the pull requests <a href=\"https:\/\/github.com\/Dash-Industry-Forum\/dash.js\/pull\/4391\">#4391<\/a>,<a href=\"https:\/\/github.com\/Dash-Industry-Forum\/dash.js\/pull\/4351\">#4351<\/a>and <a href=\"https:\/\/github.com\/Dash-Industry-Forum\/dash.js\/pull\/4206\">#4206<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Please don\u2019t force me to read<\/h2>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"518\" height=\"342\" src=\"https:\/\/websites.fraunhofer.de\/video-dev\/wp-content\/uploads\/2025\/03\/Picture-5.jpg\" alt=\"\" class=\"wp-image-1892\" style=\"width:417px;height:auto\" srcset=\"https:\/\/websites.fraunhofer.de\/video-dev\/wp-content\/uploads\/2025\/03\/Picture-5.jpg 518w, https:\/\/websites.fraunhofer.de\/video-dev\/wp-content\/uploads\/2025\/03\/Picture-5-400x264.jpg 400w\" sizes=\"auto, (max-width: 518px) 100vw, 518px\" \/><figcaption class=\"wp-element-caption\"><em>Image Source: <a href=\"https:\/\/i.pinimg.com\/564x\/48\/20\/35\/4820353b3762ca35193088493d5922ca.jpg\">https:\/\/i.pinimg.com\/564x\/48\/20\/35\/4820353b3762ca35193088493d5922ca.jpg<\/a><\/em><\/figcaption><\/figure>\n\n\n\n<p>Childhood flashback: We already spent our allowed time in front of the TV and\/or the gaming consoles. We are bored and ask our parents what to do. They make some very disturbing suggestions like \u201cplay outside with your brother\u201d or even worse \u201cread a book\u201d (btw I enjoy reading now). That\u2019s like telling you to eat an apple or a banana if you are craving a dessert.<\/p>\n\n\n\n<p>Sorry to disappoint you here, but we are also making you read. With dash.js v5.0.0 we introduce <strong>support for forced subtitles. <\/strong>If subtitles are deactivated, dash.js checks for a suitable&nbsp;forced-subtitle&nbsp;track and renders its content.<\/p>\n\n\n\n<p>Details can again be found in the <a href=\"https:\/\/github.com\/Dash-Industry-Forum\/dash.js\/pull\/4545\">pull request<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Did you read the manual?<\/h2>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"288\" height=\"288\" src=\"https:\/\/websites.fraunhofer.de\/video-dev\/wp-content\/uploads\/2025\/03\/Picture-6.jpg\" alt=\"\" class=\"wp-image-1893\" srcset=\"https:\/\/websites.fraunhofer.de\/video-dev\/wp-content\/uploads\/2025\/03\/Picture-6.jpg 288w, https:\/\/websites.fraunhofer.de\/video-dev\/wp-content\/uploads\/2025\/03\/Picture-6-150x150.jpg 150w\" sizes=\"auto, (max-width: 288px) 100vw, 288px\" \/><figcaption class=\"wp-element-caption\"><em>Image Source: <a href=\"https:\/\/encrypted-tbn0.gstatic.com\/images?q=tbn:ANd9GcSPBc1iH9rMakIY-W3U0TMOmu8oz9i2Tb7Oog&amp;s\">https:\/\/encrypted-tbn0.gstatic.com\/images?q=tbn:ANd9GcSPBc1iH9rMakIY-W3U0TMOmu8oz9i2Tb7Oog&amp;s<\/a><\/em><\/figcaption><\/figure>\n\n\n\n<p>How do we typically set up and try new technology and gadgets? Probably only a few of us actually start by reading the manual first. For me, it&#8217;s rather the approach of trying to set it up on my own, failing, and then taking the time to actually read the manual.<\/p>\n\n\n\n<p>With dash.js v5.0.0 we released a <strong>new documentation website<\/strong>: <a href=\"https:\/\/dashif.org\/dash.js\/\">https:\/\/dashif.org\/dash.js\/<\/a> . Together with our <a href=\"https:\/\/reference.dashif.org\/dash.js\/nightly\/samples\/index.html\">sample section<\/a> and our <a href=\"https:\/\/cdn.dashjs.org\/latest\/jsdoc\/index.html\">API documentation<\/a> users and developers benefit from usage instructions and concrete examples on how to implement and configure specific features. The documentation also contains a <a href=\"https:\/\/dashif.org\/dash.js\/pages\/developers\/migration-guides\/4-to-5.html\">migration guide for v5.0.0<\/a> and information about the new <a href=\"https:\/\/dashif.org\/dash.js\/pages\/quickstart\/installation.html#bundle-formats\">bundle formats<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Teamwork &#8211; Possibility of blaming the other<\/h2>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"208\" height=\"264\" src=\"https:\/\/websites.fraunhofer.de\/video-dev\/wp-content\/uploads\/2025\/03\/Picture-7.jpg\" alt=\"\" class=\"wp-image-1894\" style=\"width:235px;height:auto\"\/><figcaption class=\"wp-element-caption\"><em>Image Source: &nbsp;<a href=\"https:\/\/i.pinimg.com\/736x\/5f\/0d\/98\/5f0d984e68a9a07e2989f7a8141101b2.jpg\">https:\/\/i.pinimg.com\/736x\/5f\/0d\/98\/5f0d984e68a9a07e2989f7a8141101b2.jpg<\/a><\/em><\/figcaption><\/figure>\n\n\n\n<p>Finally, we would like to thank all the developers who contributed to this major milestone again, especially <strong>Bertrand Berthelot, Casey Occhialini, Stephan Schreiner, Mat\u00edas Rodriguez, Joaquin Bartaburu, Gregory McGarry <\/strong>and<strong> Bj\u00f6rn Altmann<\/strong>.<\/p>\n\n\n\n<p>The work on dash.js continues and have exciting new implementation tasks such as support for Server Guided Ad-Insertion, L3D-DASH and CMCD v2 ahead of us.<\/p>\n\n\n\n<p>If you want to find out more about our dash.js activities check out our <a href=\"https:\/\/www.fokus.fraunhofer.de\/go\/dash\">website<\/a>. We also like to invite you to the next <a href=\"https:\/\/github.com\/Dash-Industry-Forum\/dash.js\/discussions\/4702\">dash.js face to face<\/a> taking place on June 23, 2025 in Berlin, Germany co-located with the 12th edition of our <a href=\"https:\/\/mws.fraunhofer.de\/\">FOKUS Media Web Symposium<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/mws.fraunhofer.de\/\"><img loading=\"lazy\" decoding=\"async\" width=\"698\" height=\"223\" src=\"https:\/\/websites.fraunhofer.de\/video-dev\/wp-content\/uploads\/2025\/01\/Screenshot-2025-01-23-at-14.41.44-698x223.png\" alt=\"\" class=\"wp-image-1883\" srcset=\"https:\/\/websites.fraunhofer.de\/video-dev\/wp-content\/uploads\/2025\/01\/Screenshot-2025-01-23-at-14.41.44-698x223.png 698w, https:\/\/websites.fraunhofer.de\/video-dev\/wp-content\/uploads\/2025\/01\/Screenshot-2025-01-23-at-14.41.44-400x128.png 400w, https:\/\/websites.fraunhofer.de\/video-dev\/wp-content\/uploads\/2025\/01\/Screenshot-2025-01-23-at-14.41.44-768x245.png 768w, https:\/\/websites.fraunhofer.de\/video-dev\/wp-content\/uploads\/2025\/01\/Screenshot-2025-01-23-at-14.41.44-1536x490.png 1536w, https:\/\/websites.fraunhofer.de\/video-dev\/wp-content\/uploads\/2025\/01\/Screenshot-2025-01-23-at-14.41.44.png 1918w\" sizes=\"auto, (max-width: 698px) 100vw, 698px\" \/><\/a><\/figure>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Rocky, Pirates of the Caribbean, Die Hard and The Matrix: What do all these movies have in common? All of them are often cited for having a poorly received fifth&nbsp;edition. With dash.js we do it differently. Thanks to all of&#8230;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,9,2],"tags":[],"coauthors":[6],"class_list":["post-1885","post","type-post","status-publish","format-standard","hentry","category-dash-js","category-drm","category-mpeg-dash"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>dash.js - Give me a high five - Video-Dev<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/websites.fraunhofer.de\/video-dev\/dash-js-give-me-a-high-five\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"dash.js - Give me a high five - Video-Dev\" \/>\n<meta property=\"og:description\" content=\"Rocky, Pirates of the Caribbean, Die Hard and The Matrix: What do all these movies have in common? All of them are often cited for having a poorly received fifth&nbsp;edition. With dash.js we do it differently. Thanks to all of...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/websites.fraunhofer.de\/video-dev\/dash-js-give-me-a-high-five\/\" \/>\n<meta property=\"og:site_name\" content=\"Video-Dev\" \/>\n<meta property=\"article:published_time\" content=\"2025-03-14T13:49:47+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-03-14T14:44:59+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/websites.fraunhofer.de\/video-dev\/wp-content\/uploads\/2025\/03\/image.png\" \/>\n\t<meta property=\"og:image:width\" content=\"426\" \/>\n\t<meta property=\"og:image:height\" content=\"322\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Daniel Silhavy\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@dsilhavy\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Daniel Silhavy\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/websites.fraunhofer.de\\\/video-dev\\\/dash-js-give-me-a-high-five\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/websites.fraunhofer.de\\\/video-dev\\\/dash-js-give-me-a-high-five\\\/\"},\"author\":{\"name\":\"Daniel Silhavy\",\"@id\":\"https:\\\/\\\/websites.fraunhofer.de\\\/video-dev\\\/#\\\/schema\\\/person\\\/f7e1eee3cb4eae87a59648195014a809\"},\"headline\":\"dash.js &#8211; Give me a high five\",\"datePublished\":\"2025-03-14T13:49:47+00:00\",\"dateModified\":\"2025-03-14T14:44:59+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/websites.fraunhofer.de\\\/video-dev\\\/dash-js-give-me-a-high-five\\\/\"},\"wordCount\":1354,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/websites.fraunhofer.de\\\/video-dev\\\/dash-js-give-me-a-high-five\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/websites.fraunhofer.de\\\/video-dev\\\/wp-content\\\/uploads\\\/2025\\\/03\\\/image.png\",\"articleSection\":[\"dash.js\",\"DRM\",\"MPEG-DASH\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/websites.fraunhofer.de\\\/video-dev\\\/dash-js-give-me-a-high-five\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/websites.fraunhofer.de\\\/video-dev\\\/dash-js-give-me-a-high-five\\\/\",\"url\":\"https:\\\/\\\/websites.fraunhofer.de\\\/video-dev\\\/dash-js-give-me-a-high-five\\\/\",\"name\":\"dash.js - Give me a high five - Video-Dev\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/websites.fraunhofer.de\\\/video-dev\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/websites.fraunhofer.de\\\/video-dev\\\/dash-js-give-me-a-high-five\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/websites.fraunhofer.de\\\/video-dev\\\/dash-js-give-me-a-high-five\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/websites.fraunhofer.de\\\/video-dev\\\/wp-content\\\/uploads\\\/2025\\\/03\\\/image.png\",\"datePublished\":\"2025-03-14T13:49:47+00:00\",\"dateModified\":\"2025-03-14T14:44:59+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/websites.fraunhofer.de\\\/video-dev\\\/#\\\/schema\\\/person\\\/f7e1eee3cb4eae87a59648195014a809\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/websites.fraunhofer.de\\\/video-dev\\\/dash-js-give-me-a-high-five\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/websites.fraunhofer.de\\\/video-dev\\\/dash-js-give-me-a-high-five\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/websites.fraunhofer.de\\\/video-dev\\\/dash-js-give-me-a-high-five\\\/#primaryimage\",\"url\":\"https:\\\/\\\/websites.fraunhofer.de\\\/video-dev\\\/wp-content\\\/uploads\\\/2025\\\/03\\\/image.png\",\"contentUrl\":\"https:\\\/\\\/websites.fraunhofer.de\\\/video-dev\\\/wp-content\\\/uploads\\\/2025\\\/03\\\/image.png\",\"width\":426,\"height\":322},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/websites.fraunhofer.de\\\/video-dev\\\/dash-js-give-me-a-high-five\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/websites.fraunhofer.de\\\/video-dev\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"dash.js &#8211; Give me a high five\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/websites.fraunhofer.de\\\/video-dev\\\/#website\",\"url\":\"https:\\\/\\\/websites.fraunhofer.de\\\/video-dev\\\/\",\"name\":\"Video-Dev\",\"description\":\"Future Applications and Media - Video Development Blog\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/websites.fraunhofer.de\\\/video-dev\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/websites.fraunhofer.de\\\/video-dev\\\/#\\\/schema\\\/person\\\/f7e1eee3cb4eae87a59648195014a809\",\"name\":\"Daniel Silhavy\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/websites.fraunhofer.de\\\/video-dev\\\/wp-content\\\/uploads\\\/2019\\\/11\\\/0-1-150x150.jpegccb13c1b60303228bf3c575f3345fe29\",\"url\":\"https:\\\/\\\/websites.fraunhofer.de\\\/video-dev\\\/wp-content\\\/uploads\\\/2019\\\/11\\\/0-1-150x150.jpeg\",\"contentUrl\":\"https:\\\/\\\/websites.fraunhofer.de\\\/video-dev\\\/wp-content\\\/uploads\\\/2019\\\/11\\\/0-1-150x150.jpeg\",\"caption\":\"Daniel Silhavy\"},\"description\":\"Daniel Silhavy studied Computer Science at the Technical University of Berlin (TUB). He received his Masters degree with the completion of his thesis \u201cAd Insertion in MPEG-DASH\u201d at Fraunhofer Institute for Open Communication Systems (FOKUS) in 2015. Currently, he is employed as a scientific assistant and project manager at the Business Unit Future Applications and Media (FAME). He specializes in the R&amp;D of topics dealing with IPTV and adaptive media streaming.\",\"sameAs\":[\"https:\\\/\\\/www.fokus.fraunhofer.de\\\/fame\\\/team\\\/silhavy\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/daniel-silhavy-21650a129\\\/\",\"https:\\\/\\\/x.com\\\/dsilhavy\"],\"url\":\"https:\\\/\\\/websites.fraunhofer.de\\\/video-dev\\\/author\\\/silhavy\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"dash.js - Give me a high five - Video-Dev","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/websites.fraunhofer.de\/video-dev\/dash-js-give-me-a-high-five\/","og_locale":"en_US","og_type":"article","og_title":"dash.js - Give me a high five - Video-Dev","og_description":"Rocky, Pirates of the Caribbean, Die Hard and The Matrix: What do all these movies have in common? All of them are often cited for having a poorly received fifth&nbsp;edition. With dash.js we do it differently. Thanks to all of...","og_url":"https:\/\/websites.fraunhofer.de\/video-dev\/dash-js-give-me-a-high-five\/","og_site_name":"Video-Dev","article_published_time":"2025-03-14T13:49:47+00:00","article_modified_time":"2025-03-14T14:44:59+00:00","og_image":[{"width":426,"height":322,"url":"https:\/\/websites.fraunhofer.de\/video-dev\/wp-content\/uploads\/2025\/03\/image.png","type":"image\/png"}],"author":"Daniel Silhavy","twitter_card":"summary_large_image","twitter_creator":"@dsilhavy","twitter_misc":{"Written by":"Daniel Silhavy","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/websites.fraunhofer.de\/video-dev\/dash-js-give-me-a-high-five\/#article","isPartOf":{"@id":"https:\/\/websites.fraunhofer.de\/video-dev\/dash-js-give-me-a-high-five\/"},"author":{"name":"Daniel Silhavy","@id":"https:\/\/websites.fraunhofer.de\/video-dev\/#\/schema\/person\/f7e1eee3cb4eae87a59648195014a809"},"headline":"dash.js &#8211; Give me a high five","datePublished":"2025-03-14T13:49:47+00:00","dateModified":"2025-03-14T14:44:59+00:00","mainEntityOfPage":{"@id":"https:\/\/websites.fraunhofer.de\/video-dev\/dash-js-give-me-a-high-five\/"},"wordCount":1354,"commentCount":0,"image":{"@id":"https:\/\/websites.fraunhofer.de\/video-dev\/dash-js-give-me-a-high-five\/#primaryimage"},"thumbnailUrl":"https:\/\/websites.fraunhofer.de\/video-dev\/wp-content\/uploads\/2025\/03\/image.png","articleSection":["dash.js","DRM","MPEG-DASH"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/websites.fraunhofer.de\/video-dev\/dash-js-give-me-a-high-five\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/websites.fraunhofer.de\/video-dev\/dash-js-give-me-a-high-five\/","url":"https:\/\/websites.fraunhofer.de\/video-dev\/dash-js-give-me-a-high-five\/","name":"dash.js - Give me a high five - Video-Dev","isPartOf":{"@id":"https:\/\/websites.fraunhofer.de\/video-dev\/#website"},"primaryImageOfPage":{"@id":"https:\/\/websites.fraunhofer.de\/video-dev\/dash-js-give-me-a-high-five\/#primaryimage"},"image":{"@id":"https:\/\/websites.fraunhofer.de\/video-dev\/dash-js-give-me-a-high-five\/#primaryimage"},"thumbnailUrl":"https:\/\/websites.fraunhofer.de\/video-dev\/wp-content\/uploads\/2025\/03\/image.png","datePublished":"2025-03-14T13:49:47+00:00","dateModified":"2025-03-14T14:44:59+00:00","author":{"@id":"https:\/\/websites.fraunhofer.de\/video-dev\/#\/schema\/person\/f7e1eee3cb4eae87a59648195014a809"},"breadcrumb":{"@id":"https:\/\/websites.fraunhofer.de\/video-dev\/dash-js-give-me-a-high-five\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/websites.fraunhofer.de\/video-dev\/dash-js-give-me-a-high-five\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/websites.fraunhofer.de\/video-dev\/dash-js-give-me-a-high-five\/#primaryimage","url":"https:\/\/websites.fraunhofer.de\/video-dev\/wp-content\/uploads\/2025\/03\/image.png","contentUrl":"https:\/\/websites.fraunhofer.de\/video-dev\/wp-content\/uploads\/2025\/03\/image.png","width":426,"height":322},{"@type":"BreadcrumbList","@id":"https:\/\/websites.fraunhofer.de\/video-dev\/dash-js-give-me-a-high-five\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/websites.fraunhofer.de\/video-dev\/"},{"@type":"ListItem","position":2,"name":"dash.js &#8211; Give me a high five"}]},{"@type":"WebSite","@id":"https:\/\/websites.fraunhofer.de\/video-dev\/#website","url":"https:\/\/websites.fraunhofer.de\/video-dev\/","name":"Video-Dev","description":"Future Applications and Media - Video Development Blog","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/websites.fraunhofer.de\/video-dev\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/websites.fraunhofer.de\/video-dev\/#\/schema\/person\/f7e1eee3cb4eae87a59648195014a809","name":"Daniel Silhavy","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/websites.fraunhofer.de\/video-dev\/wp-content\/uploads\/2019\/11\/0-1-150x150.jpegccb13c1b60303228bf3c575f3345fe29","url":"https:\/\/websites.fraunhofer.de\/video-dev\/wp-content\/uploads\/2019\/11\/0-1-150x150.jpeg","contentUrl":"https:\/\/websites.fraunhofer.de\/video-dev\/wp-content\/uploads\/2019\/11\/0-1-150x150.jpeg","caption":"Daniel Silhavy"},"description":"Daniel Silhavy studied Computer Science at the Technical University of Berlin (TUB). He received his Masters degree with the completion of his thesis \u201cAd Insertion in MPEG-DASH\u201d at Fraunhofer Institute for Open Communication Systems (FOKUS) in 2015. Currently, he is employed as a scientific assistant and project manager at the Business Unit Future Applications and Media (FAME). He specializes in the R&amp;D of topics dealing with IPTV and adaptive media streaming.","sameAs":["https:\/\/www.fokus.fraunhofer.de\/fame\/team\/silhavy","https:\/\/www.linkedin.com\/in\/daniel-silhavy-21650a129\/","https:\/\/x.com\/dsilhavy"],"url":"https:\/\/websites.fraunhofer.de\/video-dev\/author\/silhavy\/"}]}},"_links":{"self":[{"href":"https:\/\/websites.fraunhofer.de\/video-dev\/wp-json\/wp\/v2\/posts\/1885","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/websites.fraunhofer.de\/video-dev\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/websites.fraunhofer.de\/video-dev\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/websites.fraunhofer.de\/video-dev\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/websites.fraunhofer.de\/video-dev\/wp-json\/wp\/v2\/comments?post=1885"}],"version-history":[{"count":23,"href":"https:\/\/websites.fraunhofer.de\/video-dev\/wp-json\/wp\/v2\/posts\/1885\/revisions"}],"predecessor-version":[{"id":1921,"href":"https:\/\/websites.fraunhofer.de\/video-dev\/wp-json\/wp\/v2\/posts\/1885\/revisions\/1921"}],"wp:attachment":[{"href":"https:\/\/websites.fraunhofer.de\/video-dev\/wp-json\/wp\/v2\/media?parent=1885"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/websites.fraunhofer.de\/video-dev\/wp-json\/wp\/v2\/categories?post=1885"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/websites.fraunhofer.de\/video-dev\/wp-json\/wp\/v2\/tags?post=1885"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/websites.fraunhofer.de\/video-dev\/wp-json\/wp\/v2\/coauthors?post=1885"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}