{"id":1584,"date":"2023-09-13T15:22:31","date_gmt":"2023-09-13T13:22:31","guid":{"rendered":"https:\/\/websites.fraunhofer.de\/video-dev\/?p=1584"},"modified":"2023-09-13T15:22:33","modified_gmt":"2023-09-13T13:22:33","slug":"functional-player-testing-with-dash-js-and-karma","status":"publish","type":"post","link":"https:\/\/websites.fraunhofer.de\/video-dev\/functional-player-testing-with-dash-js-and-karma\/","title":{"rendered":"Functional Player Testing with dash.js and Karma"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Introduction<\/h2>\n\n\n\n<p>Modern MSE and EME based media players such as <a href=\"https:\/\/github.com\/Dash-Industry-Forum\/dash.js\">dash.js<\/a> can run on several platforms including Desktop Browsers, Smart TVs and Smartphones.  While maintaining a single code base for the majority of the relevant platforms offers great advantages, it also introduces challenges. Different platforms and browser versions often exhibit varying behaviors. In the worst-case device-specific fixes or workarounds need to be implemented.<\/p>\n\n\n\n<p>As part of our work on dash.js we need to make sure that changes to the code like new features and important bugfixes do not introduce any regression. Fixing one bug can easily introduce numerous new bugs. Manual testing of the dash.js functionality on various platforms prone to errors, too time-consuming and does not scale well. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The idea behind Functional Testing<\/h2>\n\n\n\n<p>To avoid manual testing of basic functionality such as play, pause, seek as well as advanced functionality such as handling of media timeline gaps, we implemented a <a href=\"https:\/\/github.com\/Dash-Industry-Forum\/dash.js\/pull\/4281\">functional testsuite for dash.js<\/a>. The testsuite is based on the <a href=\"https:\/\/karma-runner.github.io\/latest\/index.html\">Karma Testrunner<\/a> that integrates well with <a href=\"https:\/\/www.selenium.dev\/\">Selenium<\/a> and <a href=\"https:\/\/appium.io\/docs\/en\/2.1\/\">Appium<\/a> (Unfortunately, Karma has been deprecated, so we are looking into <a href=\"https:\/\/modern-web.dev\/docs\/test-runner\/overview\/\">Web Test Runner<\/a> as a replacement). Combining the functionality of these three libraries, we can execute the functional tests on Desktop Browsers, Smartphones, and even Smart TVs. Basically, all devices that support <a href=\"https:\/\/www.w3.org\/TR\/webdriver2\/\">WebDrivers<\/a> to control user agents are a potential target platform. As an example, the Shaka Team has open-sourced a <a href=\"https:\/\/github.com\/shaka-project\/generic-webdriver-server\/tree\/main\">generic WebDriver<\/a> server to support the test execution on Tizen SmartTVs.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Functional Testing in practice<\/h2>\n\n\n\n<p>Let&#8217;s look at a concrete example of executing dash.js functional tests on Desktop Browsers. In this case, we are using Selenium Grid with three connected nodes: a MacOS machine, a Windows machine and a Linux machine. Selenium ships with a neat web-interface that provides an overview of the connected nodes and the running sessions:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/websites.fraunhofer.de\/video-dev\/wp-content\/uploads\/2023\/09\/available_devices.png\" alt=\"\" class=\"wp-image-1587\" style=\"width:840px;height:370px\" width=\"840\" height=\"370\"\/><\/figure>\n\n\n\n<p>The video below shows the execution of a test run that targets all three platforms and multiple browsers on each of the platforms. <\/p>\n\n\n\n<figure class=\"wp-block-video\"><video height=\"1080\" style=\"aspect-ratio: 1920 \/ 1080;\" width=\"1920\" controls src=\"https:\/\/websites.fraunhofer.de\/video-dev\/wp-content\/uploads\/2023\/09\/karma-webbrowser.mov\"><\/video><\/figure>\n\n\n\n<p>After the test execution, the test results for each platform and each browser are summarized in a test report. In the example below, we executed a test that adds an MPD anchor to the manifest URL to start playback at a specific time:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"2944\" height=\"2962\" src=\"https:\/\/websites.fraunhofer.de\/video-dev\/wp-content\/uploads\/2023\/09\/testresults.png\" alt=\"\" class=\"wp-image-1589\" srcset=\"https:\/\/websites.fraunhofer.de\/video-dev\/wp-content\/uploads\/2023\/09\/testresults.png 2944w, https:\/\/websites.fraunhofer.de\/video-dev\/wp-content\/uploads\/2023\/09\/testresults-400x402.png 400w, https:\/\/websites.fraunhofer.de\/video-dev\/wp-content\/uploads\/2023\/09\/testresults-698x702.png 698w, https:\/\/websites.fraunhofer.de\/video-dev\/wp-content\/uploads\/2023\/09\/testresults-150x150.png 150w, https:\/\/websites.fraunhofer.de\/video-dev\/wp-content\/uploads\/2023\/09\/testresults-768x773.png 768w, https:\/\/websites.fraunhofer.de\/video-dev\/wp-content\/uploads\/2023\/09\/testresults-1527x1536.png 1527w, https:\/\/websites.fraunhofer.de\/video-dev\/wp-content\/uploads\/2023\/09\/testresults-2036x2048.png 2036w\" sizes=\"auto, (max-width: 2944px) 100vw, 2944px\" \/><\/figure>\n\n\n\n<p>Based on the test results, we can identify potential problems or regressions on a specific platform and react accordingly. The functional testsuite is also a great asset for dash.js users as it can easily be extended to add more testcases or customer specific test streams. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Next steps<\/h2>\n\n\n\n<p>The work on <a href=\"https:\/\/github.com\/orgs\/Dash-Industry-Forum\/projects\/8\">dash.js version 5.0.0<\/a> has already started. Next to important improvements such as a refactoring and re-evaluation of the ABR algorithms and the addition of new features like Adaptation Set switching, the dash.js developers are looking into further improving the testsuite of the player. New tests are added to validate the various dash.js settings. Moreover, scenarios like limiting the video resolution according to the portal size and preloading media segments into a virtual buffer are to be covered by functional tests. Furthermore, vendor-specific tests are added to verify the integration of dash.js against other frameworks and APIs.<\/p>\n\n\n\n<p>If you require any further assistance regarding our DASH activities or dash.js in particular, feel free to check out our\u00a0<a href=\"https:\/\/www.fokus.fraunhofer.de\/go\/dash\" target=\"_blank\" rel=\"noreferrer noopener\">website<\/a>\u00a0and contact us.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Meet us at IBC 2023<\/h2>\n\n\n\n<p>Let\u2019s connect at the leading conference for broadcast, streaming and innovative video technology and experience our latest developments. The&nbsp;<strong>IBC Show 2023<\/strong>&nbsp;will take place from September 15-18, 2023 at the RAI Convention Center Amsterdam. Visit us at&nbsp;<strong>Booth 8.B80<\/strong>&nbsp;to get in touch and experience our solutions.<\/p>\n\n\n\n<p>More information can be found here:\u00a0<a href=\"https:\/\/www.fokus.fraunhofer.de\/go\/ibc\">https:\/\/www.fokus.fraunhofer.de\/go\/ibc<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction Modern MSE and EME based media players such as dash.js can run on several platforms including Desktop Browsers, Smart TVs and Smartphones. While maintaining a single code base for the majority of the relevant platforms offers great advantages, it&#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,4,2],"tags":[],"coauthors":[6],"class_list":["post-1584","post","type-post","status-publish","format-standard","hentry","category-dash-js","category-media-source-extensions","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>Functional Player Testing with dash.js and Karma - Video-Dev<\/title>\n<meta name=\"description\" content=\"Functional Player Testing with dash.js and Karma.\" \/>\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\/functional-player-testing-with-dash-js-and-karma\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Functional Player Testing with dash.js and Karma - Video-Dev\" \/>\n<meta property=\"og:description\" content=\"Functional Player Testing with dash.js and Karma.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/websites.fraunhofer.de\/video-dev\/functional-player-testing-with-dash-js-and-karma\/\" \/>\n<meta property=\"og:site_name\" content=\"Video-Dev\" \/>\n<meta property=\"article:published_time\" content=\"2023-09-13T13:22:31+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-09-13T13:22:33+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/websites.fraunhofer.de\/video-dev\/wp-content\/uploads\/2023\/09\/available_devices.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=\"4 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\\\/functional-player-testing-with-dash-js-and-karma\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/websites.fraunhofer.de\\\/video-dev\\\/functional-player-testing-with-dash-js-and-karma\\\/\"},\"author\":{\"name\":\"Daniel Silhavy\",\"@id\":\"https:\\\/\\\/websites.fraunhofer.de\\\/video-dev\\\/#\\\/schema\\\/person\\\/f7e1eee3cb4eae87a59648195014a809\"},\"headline\":\"Functional Player Testing with dash.js and Karma\",\"datePublished\":\"2023-09-13T13:22:31+00:00\",\"dateModified\":\"2023-09-13T13:22:33+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/websites.fraunhofer.de\\\/video-dev\\\/functional-player-testing-with-dash-js-and-karma\\\/\"},\"wordCount\":623,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/websites.fraunhofer.de\\\/video-dev\\\/functional-player-testing-with-dash-js-and-karma\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/websites.fraunhofer.de\\\/video-dev\\\/wp-content\\\/uploads\\\/2023\\\/09\\\/available_devices.png\",\"articleSection\":[\"dash.js\",\"Media Source Extensions\",\"MPEG-DASH\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/websites.fraunhofer.de\\\/video-dev\\\/functional-player-testing-with-dash-js-and-karma\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/websites.fraunhofer.de\\\/video-dev\\\/functional-player-testing-with-dash-js-and-karma\\\/\",\"url\":\"https:\\\/\\\/websites.fraunhofer.de\\\/video-dev\\\/functional-player-testing-with-dash-js-and-karma\\\/\",\"name\":\"Functional Player Testing with dash.js and Karma - Video-Dev\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/websites.fraunhofer.de\\\/video-dev\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/websites.fraunhofer.de\\\/video-dev\\\/functional-player-testing-with-dash-js-and-karma\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/websites.fraunhofer.de\\\/video-dev\\\/functional-player-testing-with-dash-js-and-karma\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/websites.fraunhofer.de\\\/video-dev\\\/wp-content\\\/uploads\\\/2023\\\/09\\\/available_devices.png\",\"datePublished\":\"2023-09-13T13:22:31+00:00\",\"dateModified\":\"2023-09-13T13:22:33+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/websites.fraunhofer.de\\\/video-dev\\\/#\\\/schema\\\/person\\\/f7e1eee3cb4eae87a59648195014a809\"},\"description\":\"Functional Player Testing with dash.js and Karma.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/websites.fraunhofer.de\\\/video-dev\\\/functional-player-testing-with-dash-js-and-karma\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/websites.fraunhofer.de\\\/video-dev\\\/functional-player-testing-with-dash-js-and-karma\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/websites.fraunhofer.de\\\/video-dev\\\/functional-player-testing-with-dash-js-and-karma\\\/#primaryimage\",\"url\":\"https:\\\/\\\/websites.fraunhofer.de\\\/video-dev\\\/wp-content\\\/uploads\\\/2023\\\/09\\\/available_devices.png\",\"contentUrl\":\"https:\\\/\\\/websites.fraunhofer.de\\\/video-dev\\\/wp-content\\\/uploads\\\/2023\\\/09\\\/available_devices.png\",\"width\":3002,\"height\":1590},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/websites.fraunhofer.de\\\/video-dev\\\/functional-player-testing-with-dash-js-and-karma\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/websites.fraunhofer.de\\\/video-dev\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Functional Player Testing with dash.js and Karma\"}]},{\"@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":"Functional Player Testing with dash.js and Karma - Video-Dev","description":"Functional Player Testing with dash.js and Karma.","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\/functional-player-testing-with-dash-js-and-karma\/","og_locale":"en_US","og_type":"article","og_title":"Functional Player Testing with dash.js and Karma - Video-Dev","og_description":"Functional Player Testing with dash.js and Karma.","og_url":"https:\/\/websites.fraunhofer.de\/video-dev\/functional-player-testing-with-dash-js-and-karma\/","og_site_name":"Video-Dev","article_published_time":"2023-09-13T13:22:31+00:00","article_modified_time":"2023-09-13T13:22:33+00:00","og_image":[{"url":"https:\/\/websites.fraunhofer.de\/video-dev\/wp-content\/uploads\/2023\/09\/available_devices.png","type":"","width":"","height":""}],"author":"Daniel Silhavy","twitter_card":"summary_large_image","twitter_creator":"@dsilhavy","twitter_misc":{"Written by":"Daniel Silhavy","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/websites.fraunhofer.de\/video-dev\/functional-player-testing-with-dash-js-and-karma\/#article","isPartOf":{"@id":"https:\/\/websites.fraunhofer.de\/video-dev\/functional-player-testing-with-dash-js-and-karma\/"},"author":{"name":"Daniel Silhavy","@id":"https:\/\/websites.fraunhofer.de\/video-dev\/#\/schema\/person\/f7e1eee3cb4eae87a59648195014a809"},"headline":"Functional Player Testing with dash.js and Karma","datePublished":"2023-09-13T13:22:31+00:00","dateModified":"2023-09-13T13:22:33+00:00","mainEntityOfPage":{"@id":"https:\/\/websites.fraunhofer.de\/video-dev\/functional-player-testing-with-dash-js-and-karma\/"},"wordCount":623,"commentCount":0,"image":{"@id":"https:\/\/websites.fraunhofer.de\/video-dev\/functional-player-testing-with-dash-js-and-karma\/#primaryimage"},"thumbnailUrl":"https:\/\/websites.fraunhofer.de\/video-dev\/wp-content\/uploads\/2023\/09\/available_devices.png","articleSection":["dash.js","Media Source Extensions","MPEG-DASH"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/websites.fraunhofer.de\/video-dev\/functional-player-testing-with-dash-js-and-karma\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/websites.fraunhofer.de\/video-dev\/functional-player-testing-with-dash-js-and-karma\/","url":"https:\/\/websites.fraunhofer.de\/video-dev\/functional-player-testing-with-dash-js-and-karma\/","name":"Functional Player Testing with dash.js and Karma - Video-Dev","isPartOf":{"@id":"https:\/\/websites.fraunhofer.de\/video-dev\/#website"},"primaryImageOfPage":{"@id":"https:\/\/websites.fraunhofer.de\/video-dev\/functional-player-testing-with-dash-js-and-karma\/#primaryimage"},"image":{"@id":"https:\/\/websites.fraunhofer.de\/video-dev\/functional-player-testing-with-dash-js-and-karma\/#primaryimage"},"thumbnailUrl":"https:\/\/websites.fraunhofer.de\/video-dev\/wp-content\/uploads\/2023\/09\/available_devices.png","datePublished":"2023-09-13T13:22:31+00:00","dateModified":"2023-09-13T13:22:33+00:00","author":{"@id":"https:\/\/websites.fraunhofer.de\/video-dev\/#\/schema\/person\/f7e1eee3cb4eae87a59648195014a809"},"description":"Functional Player Testing with dash.js and Karma.","breadcrumb":{"@id":"https:\/\/websites.fraunhofer.de\/video-dev\/functional-player-testing-with-dash-js-and-karma\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/websites.fraunhofer.de\/video-dev\/functional-player-testing-with-dash-js-and-karma\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/websites.fraunhofer.de\/video-dev\/functional-player-testing-with-dash-js-and-karma\/#primaryimage","url":"https:\/\/websites.fraunhofer.de\/video-dev\/wp-content\/uploads\/2023\/09\/available_devices.png","contentUrl":"https:\/\/websites.fraunhofer.de\/video-dev\/wp-content\/uploads\/2023\/09\/available_devices.png","width":3002,"height":1590},{"@type":"BreadcrumbList","@id":"https:\/\/websites.fraunhofer.de\/video-dev\/functional-player-testing-with-dash-js-and-karma\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/websites.fraunhofer.de\/video-dev\/"},{"@type":"ListItem","position":2,"name":"Functional Player Testing with dash.js and Karma"}]},{"@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\/1584","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=1584"}],"version-history":[{"count":9,"href":"https:\/\/websites.fraunhofer.de\/video-dev\/wp-json\/wp\/v2\/posts\/1584\/revisions"}],"predecessor-version":[{"id":1598,"href":"https:\/\/websites.fraunhofer.de\/video-dev\/wp-json\/wp\/v2\/posts\/1584\/revisions\/1598"}],"wp:attachment":[{"href":"https:\/\/websites.fraunhofer.de\/video-dev\/wp-json\/wp\/v2\/media?parent=1584"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/websites.fraunhofer.de\/video-dev\/wp-json\/wp\/v2\/categories?post=1584"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/websites.fraunhofer.de\/video-dev\/wp-json\/wp\/v2\/tags?post=1584"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/websites.fraunhofer.de\/video-dev\/wp-json\/wp\/v2\/coauthors?post=1584"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}