{"id":2308,"date":"2024-04-14T11:06:08","date_gmt":"2024-04-14T10:06:08","guid":{"rendered":"https:\/\/alax.info\/blog\/?p=2308"},"modified":"2024-04-14T16:54:16","modified_gmt":"2024-04-14T15:54:16","slug":"microsofts-mpeg-dash-client-implementation-inaccurately-handles-ssr-flavor-of-streaming-media","status":"publish","type":"post","link":"https:\/\/alax.info\/blog\/2308","title":{"rendered":"Microsoft&#8217;s MPEG-DASH client implementation inaccurately handles SSR flavor of streaming media"},"content":{"rendered":"\n<p>Recent additions to MPEG-DASH specification (ISO\/IEC 23009-1 5th ed., AMD3; also SCTE 214-6) offer new ways to implement low-latency low-delay playback: using so called Segment Sequence Representations (SSR).<\/p>\n\n\n\n<p>MPGE-DASH manifests advertise this flavor of data by including a respective <code>EssentialProperty<\/code>.<\/p>\n\n\n\n<p>Before <a href=\"https:\/\/shaka-player-demo.appspot.com\/demo\">Shaka Player Demo<\/a> <a href=\"https:\/\/github.com\/shaka-project\/shaka-player\/pull\/5762\">added<\/a> support for this technology, they ignored the respective adaptation set as &#8220;unknown&#8221; and &#8220;unsupported&#8221;, which seems to be the right way to address something you do not understand.<\/p>\n\n\n\n<p>Here is the Microsoft&#8217;s approach. <\/p>\n\n\n\n<p>They do support MPEG-DASH playback in, for example, their <a href=\"https:\/\/learn.microsoft.com\/en-us\/uwp\/api\/windows.ui.xaml.controls.mediaelement?view=winrt-22621\">XAML MediaElement<\/a> (below is the screenshot from <a href=\"https:\/\/learn.microsoft.com\/en-us\/samples\/microsoft\/windows-universal-samples\/playready\/\">PlayReady sample<\/a>):<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"777\" height=\"600\" src=\"https:\/\/alax.info\/blog\/wp-content\/uploads\/2024\/04\/Untitled-777x600.png\" alt=\"\" class=\"wp-image-2309\" srcset=\"https:\/\/alax.info\/blog\/wp-content\/uploads\/2024\/04\/Untitled-777x600.png 777w, https:\/\/alax.info\/blog\/wp-content\/uploads\/2024\/04\/Untitled-320x247.png 320w, https:\/\/alax.info\/blog\/wp-content\/uploads\/2024\/04\/Untitled-768x593.png 768w, https:\/\/alax.info\/blog\/wp-content\/uploads\/2024\/04\/Untitled-1536x1186.png 1536w, https:\/\/alax.info\/blog\/wp-content\/uploads\/2024\/04\/Untitled-2048x1581.png 2048w, https:\/\/alax.info\/blog\/wp-content\/uploads\/2024\/04\/Untitled-600x463.png 600w, https:\/\/alax.info\/blog\/wp-content\/uploads\/2024\/04\/Untitled-1040x803.png 1040w\" sizes=\"auto, (max-width: 777px) 100vw, 777px\" \/><\/figure>\n\n\n\n<p>They apparently support adaptation set switching <code>urn:mpeg:dash:adaptation-set-switching:2016<\/code> as they mix downloads from regular and SSR-enabled adaptation sets.<\/p>\n\n\n\n<p>However they do not support segment sequence representations <code>urn:mpeg:dash:ssr:2023<\/code> themselves as they attempt to download content without replacing <code>$SubNumber<\/code>$ placeholder, and, hence, they ignore the <code>EssentialProperty<\/code> markup: the adaptation set is marked as something new they do not understand but they take chances to play it back.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Recent additions to MPEG-DASH specification (ISO\/IEC 23009-1 5th ed., AMD3; also SCTE 214-6) offer new ways to implement low-latency low-delay playback: using so called Segment Sequence Representations (SSR). MPGE-DASH manifests advertise this flavor of data by including a respective EssentialProperty. Before Shaka Player Demo added support for this technology, they ignored the respective adaptation set&hellip; <\/p>\n<p><a class=\"moretag\" href=\"https:\/\/alax.info\/blog\/2308\">Read the full article<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[59,619],"class_list":["post-2308","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-microsoft","tag-mpeg-dash"],"_links":{"self":[{"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/posts\/2308","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/comments?post=2308"}],"version-history":[{"count":0,"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/posts\/2308\/revisions"}],"wp:attachment":[{"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/media?parent=2308"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/categories?post=2308"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/tags?post=2308"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}