diff --git a/index.d.ts b/index.d.ts index a2da62d844..d960c6b5a7 100644 --- a/index.d.ts +++ b/index.d.ts @@ -44,7 +44,29 @@ declare namespace dashjs { reset(): void; } + export interface OfflineRecord { + id: string; + progress: number; + url: string; + originalUrl: string; + status: string; + } + + interface OfflineController { + loadRecordsFromStorage(): Promise; + getAllRecords(): OfflineRecord[]; + createRecord(manifestURL: string): Promise; + startRecord(id: string, mediaInfos: MediaInfo[]); + stopRecord(id: string): void; + resumeRecord(id: string): void; + deleteRecord(id: string): void; + getRecordProgression(id: string): number; + resetRecords(): void; + reset(): void; + } + export interface Bitrate { + id?: string; width?: number; height?: number; bandwidth?: number; @@ -195,7 +217,8 @@ declare namespace dashjs { on(type: ManifestLoadedEvent['type'], listener: (e: ManifestLoadedEvent) => void, scope?: object): void; on(type: MetricEvent['type'], listener: (e: MetricEvent) => void, scope?: object): void; on(type: MetricChangedEvent['type'], listener: (e: MetricChangedEvent) => void, scope?: object): void; - on(type: OfflineStreamEvent['type'], listener: (e: OfflineStreamEvent) => void, scope?: object): void; + on(type: OfflineRecordEvent['type'], listener: (e: OfflineRecordEvent) => void, scope?: object): void; + on(type: OfflineRecordLoademetadataEvent['type'], listener: (e: OfflineRecordLoademetadataEvent) => void, scope?: object): void; on(type: PeriodSwitchEvent['type'], listener: (e: PeriodSwitchEvent) => void, scope?: object): void; on(type: PlaybackErrorEvent['type'], listener: (e: PlaybackErrorEvent) => void, scope?: object): void; on(type: PlaybackPausedEvent['type'], listener: (e: PlaybackPausedEvent) => void, scope?: object): void; @@ -283,6 +306,7 @@ declare namespace dashjs { getProtectionController(): ProtectionController; attachProtectionController(value: ProtectionController): void; setProtectionData(value: ProtectionData): void; + getOfflineController(): OfflineController; enableManifestDateHeaderTimeSource(value: boolean): void; displayCaptionsOnTop(value: boolean): void; attachTTMLRenderingDiv(div: HTMLDivElement): void; @@ -352,7 +376,24 @@ declare namespace dashjs { KEY_SYSTEM_ACCESS_DENIED_ERROR_CODE: 112; KEY_SESSION_CREATED_ERROR_CODE: 113; MEDIA_KEY_MESSAGE_LICENSER_ERROR_CODE: 114; + // MSS errors MSS_NO_TFRF_CODE: 200; + MSS_UNSUPPORTED_CODEC_CODE: 201; + // Offline errors + OFFLINE_ERROR: 11000; + INDEXEDDB_QUOTA_EXCEED_ERROR: 11001; + INDEXEDDB_INVALID_STATE_ERROR: 11002; + INDEXEDDB_NOT_READABLE_ERROR: 11003; + INDEXEDDB_NOT_FOUND_ERROR: 11004; + INDEXEDDB_NETWORK_ERROR: 11005; + INDEXEDDB_DATA_ERROR: 11006; + INDEXEDDB_TRANSACTION_INACTIVE_ERROR: 11007; + INDEXEDDB_NOT_ALLOWED_ERROR: 11008; + INDEXEDDB_NOT_SUPPORTED_ERROR: 11009; + INDEXEDDB_VERSION_ERROR: 11010; + INDEXEDDB_TIMEOUT_ERROR: 11011; + INDEXEDDB_ABORT_ERROR: 11012; + INDEXEDDB_UNKNOWN_ERROR: 11013; } interface MediaPlayerEvents { @@ -382,6 +423,10 @@ declare namespace dashjs { METRIC_ADDED: 'metricAdded'; METRIC_CHANGED: 'metricChanged'; METRIC_UPDATED: 'metricUpdated'; + OFFLINE_RECORD_FINISHED: 'public_offlineRecordFinished'; + OFFLINE_RECORD_LOADEDMETADATA: 'public_offlineRecordLoadedmetadata'; + OFFLINE_RECORD_STARTED: 'public_offlineRecordStarted'; + OFFLINE_RECORD_STOPPED: 'public_offlineRecordStopped'; PERIOD_SWITCH_COMPLETED: 'periodSwitchCompleted'; PERIOD_SWITCH_STARTED: 'periodSwitchStarted'; PLAYBACK_ENDED: 'playbackEnded'; @@ -496,6 +541,7 @@ declare namespace dashjs { MediaPlayerErrors['TIMED_TEXT_ERROR_ID_PARSE_CODE'] | MediaPlayerErrors['MANIFEST_ERROR_ID_MULTIPLEXED_CODE'] | MediaPlayerErrors['MEDIASOURCE_TYPE_UNSUPPORTED_CODE'] | + // Protection errors MediaPlayerErrors['MEDIA_KEYERR_CODE'] | MediaPlayerErrors['MEDIA_KEYERR_UNKNOWN_CODE'] | MediaPlayerErrors['MEDIA_KEYERR_CLIENT_CODE'] | @@ -511,9 +557,26 @@ declare namespace dashjs { MediaPlayerErrors['KEY_SYSTEM_ACCESS_DENIED_ERROR_CODE'] | MediaPlayerErrors['KEY_SESSION_CREATED_ERROR_CODE'] | MediaPlayerErrors['MEDIA_KEY_MESSAGE_LICENSER_ERROR_CODE'] | - MediaPlayerErrors['MSS_NO_TFRF_CODE'], - message:string, - data:object, + // Offline errors + MediaPlayerErrors['OFFLINE_ERROR'] | + MediaPlayerErrors['INDEXEDDB_QUOTA_EXCEED_ERROR'] | + MediaPlayerErrors['INDEXEDDB_INVALID_STATE_ERROR'] | + MediaPlayerErrors['INDEXEDDB_NOT_READABLE_ERROR'] | + MediaPlayerErrors['INDEXEDDB_NOT_FOUND_ERROR'] | + MediaPlayerErrors['INDEXEDDB_NETWORK_ERROR'] | + MediaPlayerErrors['INDEXEDDB_DATA_ERROR'] | + MediaPlayerErrors['INDEXEDDB_TRANSACTION_INACTIVE_ERROR'] | + MediaPlayerErrors['INDEXEDDB_NOT_ALLOWED_ERROR'] | + MediaPlayerErrors['INDEXEDDB_NOT_SUPPORTED_ERROR'] | + MediaPlayerErrors['INDEXEDDB_VERSION_ERROR'] | + MediaPlayerErrors['INDEXEDDB_TIMEOUT_ERROR'] | + MediaPlayerErrors['INDEXEDDB_ABORT_ERROR'] | + MediaPlayerErrors['INDEXEDDB_UNKNOWN_ERROR'] | + // MSS errors + MediaPlayerErrors['MSS_NO_TFRF_CODE'] | + MediaPlayerErrors['MSS_UNSUPPORTED_CODEC_CODE'], + message: string, + data: object, } } @@ -621,6 +684,16 @@ declare namespace dashjs { mediaType: MediaType; } + export interface OfflineRecordEvent extends Event { + type: MediaPlayerEvents['OFFLINE_RECORD_FINISHED' | 'OFFLINE_RECORD_STARTED' | 'OFFLINE_RECORD_STOPPED' | 'OFFLINE_RECORD_STOPPED']; + id: string; + } + + export interface OfflineRecordLoademetadataEvent extends Event { + type: MediaPlayerEvents['OFFLINE_RECORD_LOADEDMETADATA']; + madiaInfos: MediaInfo[]; + } + export interface PeriodSwitchEvent extends Event { type: MediaPlayerEvents['PERIOD_SWITCH_COMPLETED' | 'PERIOD_SWITCH_STARTED']; toStreamInfo: StreamInfo | null; diff --git a/samples/offline/app/main.js b/samples/offline/app/main.js index ee88cdc490..37255533a3 100644 --- a/samples/offline/app/main.js +++ b/samples/offline/app/main.js @@ -18,7 +18,7 @@ $(document).ready(function () { }); angular.module('DashSourcesService', ['ngResource']).factory('sources', function ($resource) { /* jshint ignore:line */ - return $resource('app/sources.json', {}, { + return $resource('../dash-if-reference-player/app/sources.json', {}, { query: { method: 'GET', isArray: false @@ -263,8 +263,8 @@ app.controller('DashController', function ($scope, $timeout, $q, sources, contri if ($scope.player) { $scope.player.updateSettings(config); } - if ($scope.downloader) { - $scope.downloader.updateSettings({ 'debug': { 'logLevel': dashjs.Debug.LOG_LEVEL_DEBUG } }); + if ($scope.offlinePlayer) { + $scope.offlinePlayer.updateSettings({ 'debug': { 'logLevel': dashjs.Debug.LOG_LEVEL_DEBUG } }); } } else { // Set default initial configuration @@ -283,7 +283,7 @@ app.controller('DashController', function ($scope, $timeout, $q, sources, contri } }; $scope.player.updateSettings(initialConfig); - $scope.downloader.updateSettings({ 'debug': { 'logLevel': dashjs.Debug.LOG_LEVEL_INFO } }); + $scope.offlinePlayer.updateSettings({ 'debug': { 'logLevel': dashjs.Debug.LOG_LEVEL_INFO } }); } }; reqConfig.open('GET', 'dashjs_config.json', true); @@ -340,7 +340,6 @@ app.controller('DashController', function ($scope, $timeout, $q, sources, contri } }, $scope); - $scope.player.initialize($scope.video, null, $scope.autoPlaySelected); // Add HTML-rendered TTML subtitles except for Firefox < v49 (issue #1164) @@ -438,16 +437,16 @@ app.controller('DashController', function ($scope, $timeout, $q, sources, contri // Download setup // //////////////////////////////////////// - $scope.downloader = dashjs.MediaPlayer().create(); /* jshint ignore:line */ - $scope.downloader.initialize($scope.video, null, $scope.autoPlaySelected); + $scope.offlinePlayer = dashjs.MediaPlayer().create(); /* jshint ignore:line */ + $scope.offlinePlayer.initialize($scope.video, null, $scope.autoPlaySelected); $scope.downloads = DownloadService.getDownloads(); - DownloadService.init($scope.downloader); + DownloadService.init($scope.offlinePlayer); - $scope.downloader.on(dashjs.MediaPlayer.events.DOWNLOADABLE_REPRESENTATIONS_LOADED, function (e) { /* jshint ignore:line */ - console.log(JSON.stringify(e.data)); - $scope.downloadableRepresentations = e.data.downloadableRepresentations; - $scope.manifestId = e.data.id; + $scope.offlinePlayer.on(dashjs.MediaPlayer.events.OFFLINE_RECORD_LOADEDMETADATA, function (e) { /* jshint ignore:line */ + console.log(JSON.stringify(e)); + $scope.mediaInfos = e.mediaInfos; + $scope.manifestId = e.id; $scope.showRepresentationModal(); }, $scope); @@ -670,32 +669,32 @@ app.controller('DashController', function ($scope, $timeout, $q, sources, contri switch (level) { case 'none': $scope.player.updateSettings({ 'debug': { 'logLevel': dashjs.Debug.LOG_LEVEL_NONE } }); - $scope.downloader.updateSettings({ 'debug': { 'logLevel': dashjs.Debug.LOG_LEVEL_NONE } }); + $scope.offlinePlayer.updateSettings({ 'debug': { 'logLevel': dashjs.Debug.LOG_LEVEL_NONE } }); break; case 'fatal': $scope.player.updateSettings({ 'debug': { 'logLevel': dashjs.Debug.LOG_LEVEL_FATAL } }); - $scope.downloader.updateSettings({ 'debug': { 'logLevel': dashjs.Debug.LOG_LEVEL_FATAL } }); + $scope.offlinePlayer.updateSettings({ 'debug': { 'logLevel': dashjs.Debug.LOG_LEVEL_FATAL } }); break; case 'error': $scope.player.updateSettings({ 'debug': { 'logLevel': dashjs.Debug.LOG_LEVEL_ERROR } }); - $scope.downloader.updateSettings({ 'debug': { 'logLevel': dashjs.Debug.LOG_LEVEL_ERROR } }); + $scope.offlinePlayer.updateSettings({ 'debug': { 'logLevel': dashjs.Debug.LOG_LEVEL_ERROR } }); break; case 'warning': $scope.player.updateSettings({ 'debug': { 'logLevel': dashjs.Debug.LOG_LEVEL_WARNING } }); - $scope.downloader.updateSettings({ 'debug': { 'logLevel': dashjs.Debug.LOG_LEVEL_WARNING } }); + $scope.offlinePlayer.updateSettings({ 'debug': { 'logLevel': dashjs.Debug.LOG_LEVEL_WARNING } }); break; case 'info': $scope.player.updateSettings({ 'debug': { 'logLevel': dashjs.Debug.LOG_LEVEL_INFO } }); - $scope.downloader.updateSettings({ 'debug': { 'logLevel': dashjs.Debug.LOG_LEVEL_INFO } }); + $scope.offlinePlayer.updateSettings({ 'debug': { 'logLevel': dashjs.Debug.LOG_LEVEL_INFO } }); break; default: $scope.player.updateSettings({ 'debug': { 'logLevel': dashjs.Debug.LOG_LEVEL_DEBUG } }); - $scope.downloader.updateSettings({ 'debug': { 'logLevel': dashjs.Debug.LOG_LEVEL_DEBUG } }); + $scope.offlinePlayer.updateSettings({ 'debug': { 'logLevel': dashjs.Debug.LOG_LEVEL_DEBUG } }); } }; @@ -1028,7 +1027,7 @@ app.controller('DashController', function ($scope, $timeout, $q, sources, contri // //////////////////////////////////////// - $scope.player.on(dashjs.MediaPlayer.events.DOWNLOADING_STARTED, function (e) { /* jshint ignore:line */ + $scope.player.on(dashjs.MediaPlayer.events.OFFLINE_RECORD_STARTED, function (e) { /* jshint ignore:line */ $scope.successMessage = e.message; $('.alert.alert-success').show(); $('.alert.alert-success').fadeTo(2500, 500).slideUp(500, function () { @@ -1036,7 +1035,7 @@ app.controller('DashController', function ($scope, $timeout, $q, sources, contri }); }, $scope); - $scope.player.on(dashjs.MediaPlayer.events.DOWNLOADING_FINISHED, function (e) { /* jshint ignore:line */ + $scope.player.on(dashjs.MediaPlayer.events.OFFLINE_RECORD_FINISHED, function (e) { /* jshint ignore:line */ $scope.successMessage = e.message; $('.alert.alert-success').show(); $('.alert.alert-success').fadeTo(2500, 500).slideUp(500, function () { @@ -1044,7 +1043,7 @@ app.controller('DashController', function ($scope, $timeout, $q, sources, contri }); }, $scope); - $scope.player.on(dashjs.MediaPlayer.events.DOWNLOADING_STOPPED, function (e) { /* jshint ignore:line */ + $scope.player.on(dashjs.MediaPlayer.events.OFFLINE_RECORD_STOPPED, function (e) { /* jshint ignore:line */ $scope.warningMessage = e.message; $('.alert.alert-warning').show(); $('.alert.alert-warning').fadeTo(2500, 500).slideUp(500, function () { @@ -1058,7 +1057,7 @@ app.controller('DashController', function ($scope, $timeout, $q, sources, contri $scope.hideRepresentationModal = function () { $scope.manifestId = undefined; - $scope.downloadableRepresentations = null; + $scope.mediaInfos = null; $('#representationModal').modal('hide'); }; @@ -1092,13 +1091,26 @@ app.controller('DashController', function ($scope, $timeout, $q, sources, contri return representations; }; + $scope.getSelectedMediaInfos = function () { + let mediaInfos = []; + $scope.mediaInfos.forEach(mediaInfo => { + let selected = false; + mediaInfo.bitrateList = mediaInfo.bitrateList.filter(bitrate => { + selected = selected || bitrate.selected; + return bitrate.selected; + }); + if (selected) { + mediaInfos.push(mediaInfo); + } + }); + return mediaInfos; + }; + $scope.onStartDownload = function () { - let selectedRepresentation = $scope.getSelectedRepresentations(); + let mediaInfos = $scope.getSelectedMediaInfos(); - if (selectedRepresentation.video.length >= 1 || - selectedRepresentation.audio.length >= 1 || - selectedRepresentation.text.length >= 1) { - $scope.downloader.startDownload($scope.manifestId, selectedRepresentation); + if (mediaInfos.length) { + $scope.offlinePlayer.getOfflineController().startRecord($scope.manifestId, mediaInfos); $scope.hideRepresentationModal(); } else { alert('You must select at least 1 quality !'); diff --git a/samples/offline/app/offline/directives/download.js b/samples/offline/app/offline/directives/download.js index 7c1a48af2b..5458c3fa86 100644 --- a/samples/offline/app/offline/directives/download.js +++ b/samples/offline/app/offline/directives/download.js @@ -14,7 +14,7 @@ angular.module('DashPlayer'). scope.progressTimer = null; scope.downloadProgression = DownloadService.getDownloadProgression(scope.download.id); scope.isEnabled = true; - + scope.$watch('download.status', function (newValue) { if (newValue === 'created') { scope.onCreated(scope); @@ -35,16 +35,16 @@ angular.module('DashPlayer'). }; scope.doStop = function () { - DownloadService.doStopDownload(scope.download.id); + DownloadService.doStopRecord(scope.download.id); }; scope.doResume = function () { - DownloadService.doResumeDownload(scope.download.id); + DownloadService.doResumeRecord(scope.download.id); }; scope.doDelete = function () { scope.isEnabled = false; - DownloadService.doDeleteDownload(scope.download.id); + DownloadService.doDeleteRecord(scope.download.id); }; scope.updateDownloadProgression = function () { @@ -56,7 +56,7 @@ angular.module('DashPlayer'). scope.isDownloadEnabled = function () { return scope.isEnabled; - }; + }; scope.canPlay = function () { return scope.download.status === 'stopped' || diff --git a/samples/offline/app/offline/services/downloadService.js b/samples/offline/app/offline/services/downloadService.js index 4db5d96e22..bcf4ac2138 100644 --- a/samples/offline/app/offline/services/downloadService.js +++ b/samples/offline/app/offline/services/downloadService.js @@ -5,45 +5,46 @@ angular.module('DashPlayer'). service('DownloadService', function () { player = undefined; - var downloads = []; + let offlineController = undefined; + let records = []; - this.getDownload = function (id) { - let element = downloads.find((download) => { - return download.id === id; + this.getRecord = function (id) { + let element = records.find((record) => { + return record.id === id; }); return element; }; this.getDownloads = function () { - return downloads; + return records; }; this.init = function (playerInstance) { player = playerInstance; + offlineController = player.getOfflineController(); - player.on(dashjs.MediaPlayer.events.DOWNLOADING_STARTED, (e) => { - let download = this.getDownload(e.id); - if (download) { - download.status = 'started'; + player.on(dashjs.MediaPlayer.events.OFFLINE_RECORD_STARTED, (e) => { + let record = this.getRecord(e.id); + if (record) { + record.status = 'started'; } }, this); - player.on(dashjs.MediaPlayer.events.DOWNLOADING_FINISHED, (e) => { - let download = this.getDownload(e.id); - if (download) { - download.status = 'finished'; + player.on(dashjs.MediaPlayer.events.OFFLINE_RECORD_FINISHED, (e) => { + let record = this.getRecord(e.id); + if (record) { + record.status = 'finished'; } }, this); - player.on(dashjs.MediaPlayer.events.DOWNLOADING_STOPPED, (e) => { - let download = this.getDownload(e.id); - if (download) { - download.status = 'stopped'; + player.on(dashjs.MediaPlayer.events.OFFLINE_RECORD_STOPPED, (e) => { + let record = this.getRecord(e.id); + if (record) { + record.status = 'stopped'; } }, this); - player.on(dashjs.MediaPlayer.events.ERROR, function (e) { /* jshint ignore:line */ switch (e.error.code) { // offline errors @@ -68,50 +69,48 @@ service('DownloadService', function () { } }, this); - player.loadDownloadsFromStorage().then(() => { - this.getAllDownloads(); + offlineController.loadRecordsFromStorage().then(() => { + this.getAllRecords(); }); }; - this.getAllDownloads = function () { - downloads.splice(0, downloads.length); - player.getAllDownloads().forEach(element => { - downloads.push(element); + this.getAllRecords = function () { + records.splice(0, records.length); + offlineController.getAllRecords().forEach(element => { + records.push(element); }); }; this.doDownload = function (url) { - player.createDownload(url).then((id) => { + offlineController.createRecord(url).then((id) => { id = id; - // new download has been created, let's refresh download list - this.getAllDownloads(); - // init download - player.initDownload(id); + // new record has been created, let's refresh record list + this.getAllRecords(); }); }; - this.doDeleteDownload = function (id) { - player.deleteDownload(id).then(() => { - this.getAllDownloads(); + this.doDeleteRecord = function (id) { + offlineController.deleteRecord(id).then(() => { + this.getAllRecords(); }); }; - this.doStopDownload = function (id) { - player.stopDownload(id); + this.doStopRecord = function (id) { + offlineController.stopRecord(id); }; - this.doResumeDownload = function (id) { - player.resumeDownload(id); + this.doResumeRecord = function (id) { + offlineController.resumeRecord(id); }; this.getDownloadProgression = function (id) { - return player.getDownloadProgression(id); + return offlineController.getRecordProgression(id); }; this.onError = function (error) { - let download = this.getDownload(error.data.id); - if (download) { - download.status = `error - ${error.message}`; + let record = this.getRecord(error.data.id); + if (record) { + record.status = `error - ${error.message}`; } }; diff --git a/samples/offline/app/sources.json b/samples/offline/app/sources.json deleted file mode 100644 index c24e836d85..0000000000 --- a/samples/offline/app/sources.json +++ /dev/null @@ -1,945 +0,0 @@ -{ - "items": [ - { - "name": "VOD (Static MPD)", - "submenu": [ - { - "url": "http://rdmedia.bbc.co.uk/dash/ondemand/testcard/1/client_manifest-events.mpd", - "name": "SegmentTemplate/Number, live profile", - "moreInfo": "http://rdmedia.bbc.co.uk/dash/ondemand/testcard/" - }, - { - "url": "https://dash.akamaized.net/dash264/TestCases/1a/sony/SNE_DASH_SD_CASE1A_REVISED.mpd", - "name": "SegmentBase, ondemand profile" - }, - { - "url": "http://demo.unified-streaming.com/video/ateam/ateam.ism/ateam.mpd", - "name": "SegmentTimeline/Time" - }, - { - "url": "https://dash.akamaized.net/dash264/TestCases/5a/1/manifest.mpd", - "name": "Multiperiod" - }, - { - "url": "https://dash.akamaized.net/envivio/EnvivioDash3/manifest.mpd", - "name": "SegmentTemplate, live profile - Envivio" - }, - { - "url": "https://dash.akamaized.net/akamai/test/caption_test/ElephantsDream/elephants_dream_480p_heaac5_1.mpd", - "name": "External VTT subtitle file" - }, - { - "url": "https://dash.akamaized.net/akamai/bbb_30fps/bbb_30fps.mpd", - "name": "SegmentTemplate/Number, live profile, 250kbps up to 15Mbps@4K." - } - ] - }, - { - "name": "LIVE (Dynamic MPD)", - "submenu": [ - { - "url": "https://vm2.dashif.org/livesim/testpic_2s/Manifest.mpd", - "name": "SegmentTemplate without manifest updates (livesim)" - }, - { - "url": "https://vm2.dashif.org/livesim/mup_30/testpic_2s/Manifest.mpd", - "name": "SegmentTemplate with manifest updates every 30s (livesim)" - }, - { - "url": "https://vm2.dashif.org/livesim-dev/segtimeline_1/testpic_2s/Manifest.mpd", - "name": "SegmentTimeline (livesim-dev)" - }, - { - "url": "https://vm2.dashif.org/livesim-dev/periods_60/continuous_1/testpic_2s/Manifest.mpd", - "name": "Multiperiod SegmentTemplate. New period every minute (livesim)" - }, - { - "url": "http://irtdashreference-i.akamaihd.net/dash/live/901161/bfs/manifestARD.mpd", - "name": "IRT reference with EBU-TT-D subtitles" - }, - { - "url": "http://irtdashreference-i.akamaihd.net/dash/live/901161/keepixo1/manifestBR2.mpd", - "name": "IRT CMAF reference with subtitles" - }, - { - "url": " https://vm2.dashif.org/livesim-dev/ato_10/testpic_2s/Manifest.mpd", - "name": "10 seconds availabilityTimeOffset (livesim)" - }, - { - "url": "https://vm2.dashif.org/livesim-dev/ato_inf/testpic_2s/Manifest.mpd", - "name": "Infinite offset - all segments available at availability start (livesim)" - }, - { - "url": "https://vm2.dashif.org/livesim-chunked/chunkdur_1/ato_7/testpic4_8s/Manifest300.mpd", - "name": "Low Latency (Single-Rate)", - "bufferConfig" : { - "lowLatencyMode": true, - "liveDelay": 2.8 - } - }, - { - "url": "https://vm2.dashif.org/livesim-chunked/chunkdur_1/ato_7/testpic4_8s/Manifest.mpd", - "name": "Low Latency (Multi-Rate)", - "bufferConfig" : { - "lowLatencyMode": true, - "liveDelay": 2.8 - } - }, - { - "url": "http://24x7dash-i.akamaihd.net/dash/live/900080/dash-demo/dash.mpd", - "name": "Akamai 24x7 reference stream - segmentTemplate" - }, - { - "url": "https://akamai-axtest.akamaized.net/routes/lapd-v1-acceptance/www_c4/Manifest.mpd", - "name": "Axinom reference stream (Live-Clear)", - "moreInfo": "https://github.com/Axinom/dash-test-vectors#live-clear" - }, - { - "url": "https://live.unified-streaming.com/scte35/scte35.isml/.mpd", - "name": "Unified Streaming reference stream with scte35 markers", - "moreInfo": "http://demo.unified-streaming.com/features.html" - } - ] - }, - { - "name": "Subtitles and Captions", - "submenu": [ - { - "name": "TTML Segmented Subtitles VoD", - "url": "https://vm2.dashif.org/dash/vod/testpic_2s/multi_subs.mpd" - }, - { - "name": "TTML Segmented Subtitles Live (livesim)", - "url": "https://vm2.dashif.org/livesim/testpic_2s/multi_subs.mpd" - }, - { - "name": "TTML Sideloaded XML Subtitles", - "url": "https://vm2.dashif.org/dash/vod/testpic_2s/xml_subs.mpd" - }, - { - "name": "Embedded CEA-608 Closed Captions", - "url": "https://vm2.dashif.org/dash/vod/testpic_2s/cea608.mpd" - }, - { - "name": "Embedded CEA-608 Closed Captions (livesim)", - "url": "https://vm2.dashif.org/livesim/testpic_2s/cea608.mpd" - }, - { - "name": "Embedded CEA-608 Closed Captions and TTML segments VoD", - "url": "https://vm2.dashif.org/dash/vod/testpic_2s/cea608_and_segs.mpd" - }, - { - "name": "Embedded CEA-608 Closed Captions and TTML segments Live (livesim)", - "url": "https://vm2.dashif.org/livesim/testpic_2s/cea608_and_segs.mpd" - }, - { - "name": "TTML Segmented 'snaking' subtitles (with random text) (Ondemand)", - "url": "http://rdmedia.bbc.co.uk/dash/ondemand/elephants_dream/1/client_manifest-snake.mpd", - "moreInfo": "http://rdmedia.bbc.co.uk/dash/ondemand/elephants_dream/" - }, - { - "url": "https://dash.akamaized.net/dash264/CTA/imsc1/IT1-20171027_dash.mpd", - "name": "IMSC1 Text Subtitles via sidecar file" - }, - { - "url": "https://vm2.dashif.org/dash/vod/testpic_2s/imsc1_img.mpd", - "name": "IMSC1 (CMAF) Image Subtitles", - "moreInfo": "https://vm2.dashif.org/dash/vod/testpic_2s/imsc1_img_subs_info.html" - }, - { - "name": "TTML Image Subtitles embedded (VoD)", - "url": "https://vm2.dashif.org/dash/vod/testpic_2s/img_subs.mpd", - "moreInfo": "https://vm2.dashif.org/dash/vod/testpic_2s/img_subs_info.html" - } - ] - }, - { - "name": "Thumbnails", - "submenu": [ - { - "name": "Single adaption set, 7 tiles at 10x1, each thumb 320x180", - "url": "http://dash.edgesuite.net/akamai/bbb_30fps/bbb_with_tiled_thumbnails.mpd" - }, - { - "name": "Single adaption set, 4 tiles at 10x1, each thumb 205x115", - "url": "http://dash.edgesuite.net/akamai/bbb_30fps/bbb_with_4_tiles_thumbnails.mpd" - }, - { - "name": "Single adaption set, 1 tile at 10x20, each thumb 102x58", - "url": "http://dash.edgesuite.net/akamai/bbb_30fps/bbb_with_tiled_thumbnails_2.mpd" - }, - { - "name": "Two adaption sets with different thumb resolutions", - "url": "http://dash.edgesuite.net/akamai/bbb_30fps/bbb_with_multiple_tiled_thumbnails.mpd" - }, - { - "name": "Live stream, Single adaptation set, 1x1 tiles", - "url": "http://vm2.dashif.org/livesim-dev/testpic_2s/Manifest_thumbs.mpd" - } - ] - }, - { - "name": "Audio-only", - "submenu": [ - { - "name": "48k AAC-LC Stereo Beeps (Live)", - "url": "https://vm2.dashif.org/livesim/testpic_2s/audio.mpd" - }, - { - "name": "48k AAC-LC Stereo Beeps (Ondemand)", - "url": "https://vm2.dashif.org/dash/vod/testpic_2s/audio.mpd" - }, - { - "name": "128k AAC-LC Stereo 1kHz Tone (Ondemand)", - "url": "http://rdmedia.bbc.co.uk/dash/ondemand/testcard/1/client_manifest-audio-1kHz.mpd", - "moreInfo": "http://rdmedia.bbc.co.uk/dash/ondemand/testcard/" - }, - { - "name": "128k/320k AAC-LC Stereo/5.1 'Testcard' (Ondemand)", - "url": "http://rdmedia.bbc.co.uk/dash/ondemand/testcard/1/client_manifest-audio.mpd", - "moreInfo": "http://rdmedia.bbc.co.uk/dash/ondemand/testcard/" - } - ] - }, - { - "name": "Axinom Test Content (modern)", - "submenu": [ - { - "name": "1080p with Widevine DRM, license expired after 60s", - "url": "https://media.axprod.net/TestVectors/v7-MultiDRM-SingleKey/Manifest_1080p.mpd", - "protData": { - "com.widevine.alpha": { - "serverURL": "https://drm-widevine-licensing.axtest.net/AcquireLicense", - "httpRequestHeaders": { - "X-AxDRM-Message": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiYjMzNjRlYjUtNTFmNi00YWUzLThjOTgtMzNjZWQ1ZTMxYzc4IiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImZpcnN0X3BsYXlfZXhwaXJhdGlvbiI6NjAsInBsYXlyZWFkeSI6eyJyZWFsX3RpbWVfZXhwaXJhdGlvbiI6dHJ1ZX0sImtleXMiOlt7ImlkIjoiOWViNDA1MGQtZTQ0Yi00ODAyLTkzMmUtMjdkNzUwODNlMjY2IiwiZW5jcnlwdGVkX2tleSI6ImxLM09qSExZVzI0Y3Iya3RSNzRmbnc9PSJ9XX19.FAbIiPxX8BHi9RwfzD7Yn-wugU19ghrkBFKsaCPrZmU" - } - } - }, - "moreInfo": "https://github.com/Axinom/dash-test-vectors" - }, - { - "name": "1080p with PlayReady and Widevine DRM, single key", - "url": "https://media.axprod.net/TestVectors/v7-MultiDRM-SingleKey/Manifest_1080p.mpd", - "protData": { - "com.widevine.alpha": { - "serverURL": "https://drm-widevine-licensing.axtest.net/AcquireLicense", - "httpRequestHeaders": { - "X-AxDRM-Message": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiYjMzNjRlYjUtNTFmNi00YWUzLThjOTgtMzNjZWQ1ZTMxYzc4IiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImtleXMiOlt7ImlkIjoiOWViNDA1MGQtZTQ0Yi00ODAyLTkzMmUtMjdkNzUwODNlMjY2IiwiZW5jcnlwdGVkX2tleSI6ImxLM09qSExZVzI0Y3Iya3RSNzRmbnc9PSJ9XX19.4lWwW46k-oWcah8oN18LPj5OLS5ZU-_AQv7fe0JhNjA" - } - }, - "com.microsoft.playready": { - "serverURL": "https://drm-playready-licensing.axtest.net/AcquireLicense", - "httpRequestHeaders": { - "X-AxDRM-Message": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiYjMzNjRlYjUtNTFmNi00YWUzLThjOTgtMzNjZWQ1ZTMxYzc4IiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImtleXMiOlt7ImlkIjoiOWViNDA1MGQtZTQ0Yi00ODAyLTkzMmUtMjdkNzUwODNlMjY2IiwiZW5jcnlwdGVkX2tleSI6ImxLM09qSExZVzI0Y3Iya3RSNzRmbnc9PSJ9XX19.4lWwW46k-oWcah8oN18LPj5OLS5ZU-_AQv7fe0JhNjA" - } - } - }, - "moreInfo": "https://github.com/Axinom/dash-test-vectors" - }, - { - "name": "1080p with PlayReady and Widevine DRM, multiple keys", - "url": "https://media.axprod.net/TestVectors/v7-MultiDRM-MultiKey/Manifest_1080p.mpd", - "protData": { - "com.widevine.alpha": { - "serverURL": "https://drm-widevine-licensing.axtest.net/AcquireLicense", - "httpRequestHeaders": { - "X-AxDRM-Message": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiYjMzNjRlYjUtNTFmNi00YWUzLThjOTgtMzNjZWQ1ZTMxYzc4IiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImtleXMiOlt7ImlkIjoiODAzOTliZjUtOGEyMS00MDE0LTgwNTMtZTI3ZTc0OGU5OGMwIiwiZW5jcnlwdGVkX2tleSI6ImxpTkpxVmFZa05oK01LY3hKRms3SWc9PSJ9LHsiaWQiOiI5MDk1M2UwOS02Y2IyLTQ5YTMtYTI2MC03YTVmZWZlYWQ0OTkiLCJlbmNyeXB0ZWRfa2V5Ijoia1l0SEh2cnJmQ01lVmRKNkxrYmtuZz09In0seyJpZCI6IjBlNGRhOTJiLWQwZTgtNGE2Ni04YzNmLWMyNWE5N2ViNjUzMiIsImVuY3J5cHRlZF9rZXkiOiI3dzdOWkhITE1nSjRtUUtFSzVMVE1RPT0ifSx7ImlkIjoiNTg1ZjIzM2YtMzA3Mi00NmYxLTlmYTQtNmRjMjJjNjZhMDE0IiwiZW5jcnlwdGVkX2tleSI6IkFjNFVVbVl0Qko1blBROU4xNXJjM2c9PSJ9LHsiaWQiOiI0MjIyYmQ3OC1iYzQ1LTQxYmYtYjYzZS02ZjgxNGRjMzkxZGYiLCJlbmNyeXB0ZWRfa2V5IjoiTzZGTzBmcVNXb3BwN2JqYy9ENGxNQT09In1dfX0.uF6YlKAREOmbniAeYiH070HSJhV0YS7zSKjlCtiDR5Y" - } - }, - "com.microsoft.playready": { - "serverURL": "https://drm-playready-licensing.axtest.net/AcquireLicense", - "httpRequestHeaders": { - "X-AxDRM-Message": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiYjMzNjRlYjUtNTFmNi00YWUzLThjOTgtMzNjZWQ1ZTMxYzc4IiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImtleXMiOlt7ImlkIjoiODAzOTliZjUtOGEyMS00MDE0LTgwNTMtZTI3ZTc0OGU5OGMwIiwiZW5jcnlwdGVkX2tleSI6ImxpTkpxVmFZa05oK01LY3hKRms3SWc9PSJ9LHsiaWQiOiI5MDk1M2UwOS02Y2IyLTQ5YTMtYTI2MC03YTVmZWZlYWQ0OTkiLCJlbmNyeXB0ZWRfa2V5Ijoia1l0SEh2cnJmQ01lVmRKNkxrYmtuZz09In0seyJpZCI6IjBlNGRhOTJiLWQwZTgtNGE2Ni04YzNmLWMyNWE5N2ViNjUzMiIsImVuY3J5cHRlZF9rZXkiOiI3dzdOWkhITE1nSjRtUUtFSzVMVE1RPT0ifSx7ImlkIjoiNTg1ZjIzM2YtMzA3Mi00NmYxLTlmYTQtNmRjMjJjNjZhMDE0IiwiZW5jcnlwdGVkX2tleSI6IkFjNFVVbVl0Qko1blBROU4xNXJjM2c9PSJ9LHsiaWQiOiI0MjIyYmQ3OC1iYzQ1LTQxYmYtYjYzZS02ZjgxNGRjMzkxZGYiLCJlbmNyeXB0ZWRfa2V5IjoiTzZGTzBmcVNXb3BwN2JqYy9ENGxNQT09In1dfX0.uF6YlKAREOmbniAeYiH070HSJhV0YS7zSKjlCtiDR5Y" - } - } - }, - "moreInfo": "https://github.com/Axinom/dash-test-vectors" - }, - { - "name": "1080p with W3C Clear Key, single key", - "url": "https://media.axprod.net/TestVectors/v7-MultiDRM-SingleKey/Manifest_1080p_ClearKey.mpd", - "protData": { - "org.w3.clearkey": { - "clearkeys": { - "nrQFDeRLSAKTLifXUIPiZg": "FmY0xnWCPCNaSpRG-tUuTQ" - } - } - }, - "moreInfo": "https://github.com/Axinom/dash-test-vectors" - }, - { - "name": "1080p with W3C Clear Key, multiple keys", - "url": "https://media.axprod.net/TestVectors/v7-MultiDRM-MultiKey/Manifest_1080p_ClearKey.mpd", - "protData": { - "org.w3.clearkey": { - "clearkeys": { - "gDmb9YohQBSAU-J-dI6YwA": "3aHppzZ2g3Y3wK1uNnUXmg", - "kJU-CWyySaOiYHpf7-rUmQ": "zsmKW7Mq9Unz5R7oUGeF8w", - "Dk2pK9DoSmaMP8Jal-tlMg": "UmYYfGb7znuoFAQM79ayHw", - "WF8jPzByRvGfpG3CLGagFA": "jayKpC3tmPq4YKXkapa8FA", - "QiK9eLxFQb-2Pm-BTcOR3w": "GAMi9v92b9ca5yBwaptN-Q" - } - } - }, - "moreInfo": "https://github.com/Axinom/dash-test-vectors" - }, - { - "name": "1080p without encryption", - "url": "https://media.axprod.net/TestVectors/v7-Clear/Manifest_1080p.mpd", - "moreInfo": "https://github.com/Axinom/dash-test-vectors" - }, - { - "name": "2160p with PlayReady and Widevine DRM, single key", - "url": "https://media.axprod.net/TestVectors/v7-MultiDRM-SingleKey/Manifest.mpd", - "protData": { - "com.widevine.alpha": { - "serverURL": "https://drm-widevine-licensing.axtest.net/AcquireLicense", - "httpRequestHeaders": { - "X-AxDRM-Message": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiYjMzNjRlYjUtNTFmNi00YWUzLThjOTgtMzNjZWQ1ZTMxYzc4IiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImtleXMiOlt7ImlkIjoiOWViNDA1MGQtZTQ0Yi00ODAyLTkzMmUtMjdkNzUwODNlMjY2IiwiZW5jcnlwdGVkX2tleSI6ImxLM09qSExZVzI0Y3Iya3RSNzRmbnc9PSJ9XX19.4lWwW46k-oWcah8oN18LPj5OLS5ZU-_AQv7fe0JhNjA" - } - }, - "com.microsoft.playready": { - "serverURL": "https://drm-playready-licensing.axtest.net/AcquireLicense", - "httpRequestHeaders": { - "X-AxDRM-Message": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiYjMzNjRlYjUtNTFmNi00YWUzLThjOTgtMzNjZWQ1ZTMxYzc4IiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImtleXMiOlt7ImlkIjoiOWViNDA1MGQtZTQ0Yi00ODAyLTkzMmUtMjdkNzUwODNlMjY2IiwiZW5jcnlwdGVkX2tleSI6ImxLM09qSExZVzI0Y3Iya3RSNzRmbnc9PSJ9XX19.4lWwW46k-oWcah8oN18LPj5OLS5ZU-_AQv7fe0JhNjA" - } - } - }, - "moreInfo": "https://github.com/Axinom/dash-test-vectors" - }, - { - "name": "2160p with PlayReady and Widevine DRM, multiple keys", - "url": "https://media.axprod.net/TestVectors/v7-MultiDRM-MultiKey/Manifest.mpd", - "protData": { - "com.widevine.alpha": { - "serverURL": "https://drm-widevine-licensing.axtest.net/AcquireLicense", - "httpRequestHeaders": { - "X-AxDRM-Message": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiYjMzNjRlYjUtNTFmNi00YWUzLThjOTgtMzNjZWQ1ZTMxYzc4IiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImtleXMiOlt7ImlkIjoiODAzOTliZjUtOGEyMS00MDE0LTgwNTMtZTI3ZTc0OGU5OGMwIiwiZW5jcnlwdGVkX2tleSI6ImxpTkpxVmFZa05oK01LY3hKRms3SWc9PSJ9LHsiaWQiOiI5MDk1M2UwOS02Y2IyLTQ5YTMtYTI2MC03YTVmZWZlYWQ0OTkiLCJlbmNyeXB0ZWRfa2V5Ijoia1l0SEh2cnJmQ01lVmRKNkxrYmtuZz09In0seyJpZCI6IjBlNGRhOTJiLWQwZTgtNGE2Ni04YzNmLWMyNWE5N2ViNjUzMiIsImVuY3J5cHRlZF9rZXkiOiI3dzdOWkhITE1nSjRtUUtFSzVMVE1RPT0ifSx7ImlkIjoiNTg1ZjIzM2YtMzA3Mi00NmYxLTlmYTQtNmRjMjJjNjZhMDE0IiwiZW5jcnlwdGVkX2tleSI6IkFjNFVVbVl0Qko1blBROU4xNXJjM2c9PSJ9LHsiaWQiOiI0MjIyYmQ3OC1iYzQ1LTQxYmYtYjYzZS02ZjgxNGRjMzkxZGYiLCJlbmNyeXB0ZWRfa2V5IjoiTzZGTzBmcVNXb3BwN2JqYy9ENGxNQT09In1dfX0.uF6YlKAREOmbniAeYiH070HSJhV0YS7zSKjlCtiDR5Y" - } - }, - "com.microsoft.playready": { - "serverURL": "https://drm-playready-licensing.axtest.net/AcquireLicense", - "httpRequestHeaders": { - "X-AxDRM-Message": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiYjMzNjRlYjUtNTFmNi00YWUzLThjOTgtMzNjZWQ1ZTMxYzc4IiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImtleXMiOlt7ImlkIjoiODAzOTliZjUtOGEyMS00MDE0LTgwNTMtZTI3ZTc0OGU5OGMwIiwiZW5jcnlwdGVkX2tleSI6ImxpTkpxVmFZa05oK01LY3hKRms3SWc9PSJ9LHsiaWQiOiI5MDk1M2UwOS02Y2IyLTQ5YTMtYTI2MC03YTVmZWZlYWQ0OTkiLCJlbmNyeXB0ZWRfa2V5Ijoia1l0SEh2cnJmQ01lVmRKNkxrYmtuZz09In0seyJpZCI6IjBlNGRhOTJiLWQwZTgtNGE2Ni04YzNmLWMyNWE5N2ViNjUzMiIsImVuY3J5cHRlZF9rZXkiOiI3dzdOWkhITE1nSjRtUUtFSzVMVE1RPT0ifSx7ImlkIjoiNTg1ZjIzM2YtMzA3Mi00NmYxLTlmYTQtNmRjMjJjNjZhMDE0IiwiZW5jcnlwdGVkX2tleSI6IkFjNFVVbVl0Qko1blBROU4xNXJjM2c9PSJ9LHsiaWQiOiI0MjIyYmQ3OC1iYzQ1LTQxYmYtYjYzZS02ZjgxNGRjMzkxZGYiLCJlbmNyeXB0ZWRfa2V5IjoiTzZGTzBmcVNXb3BwN2JqYy9ENGxNQT09In1dfX0.uF6YlKAREOmbniAeYiH070HSJhV0YS7zSKjlCtiDR5Y" - } - } - }, - "moreInfo": "https://github.com/Axinom/dash-test-vectors" - }, - { - "name": "2160p with W3C Clear Key, single key", - "url": "https://media.axprod.net/TestVectors/v7-MultiDRM-SingleKey/Manifest_ClearKey.mpd", - "protData": { - "org.w3.clearkey": { - "clearkeys": { - "nrQFDeRLSAKTLifXUIPiZg": "FmY0xnWCPCNaSpRG-tUuTQ" - } - } - }, - "moreInfo": "https://github.com/Axinom/dash-test-vectors" - }, - { - "name": "2160p with W3C Clear Key, multiple keys", - "url": "https://media.axprod.net/TestVectors/v7-MultiDRM-MultiKey/Manifest_ClearKey.mpd", - "protData": { - "org.w3.clearkey": { - "clearkeys": { - "gDmb9YohQBSAU-J-dI6YwA": "3aHppzZ2g3Y3wK1uNnUXmg", - "kJU-CWyySaOiYHpf7-rUmQ": "zsmKW7Mq9Unz5R7oUGeF8w", - "Dk2pK9DoSmaMP8Jal-tlMg": "UmYYfGb7znuoFAQM79ayHw", - "WF8jPzByRvGfpG3CLGagFA": "jayKpC3tmPq4YKXkapa8FA", - "QiK9eLxFQb-2Pm-BTcOR3w": "GAMi9v92b9ca5yBwaptN-Q" - } - } - }, - "moreInfo": "https://github.com/Axinom/dash-test-vectors" - }, - { - "name": "2160p without encryption", - "url": "https://media.axprod.net/TestVectors/v7-Clear/Manifest.mpd", - "moreInfo": "https://github.com/Axinom/dash-test-vectors" - }, - { - "name": "Audio with PlayReady and Widevine DRM, single key", - "url": "https://media.axprod.net/TestVectors/v7-MultiDRM-SingleKey/Manifest_AudioOnly.mpd", - "protData": { - "com.widevine.alpha": { - "serverURL": "https://drm-widevine-licensing.axtest.net/AcquireLicense", - "httpRequestHeaders": { - "X-AxDRM-Message": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiYjMzNjRlYjUtNTFmNi00YWUzLThjOTgtMzNjZWQ1ZTMxYzc4IiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImtleXMiOlt7ImlkIjoiOWViNDA1MGQtZTQ0Yi00ODAyLTkzMmUtMjdkNzUwODNlMjY2IiwiZW5jcnlwdGVkX2tleSI6ImxLM09qSExZVzI0Y3Iya3RSNzRmbnc9PSJ9XX19.4lWwW46k-oWcah8oN18LPj5OLS5ZU-_AQv7fe0JhNjA" - } - }, - "com.microsoft.playready": { - "serverURL": "https://drm-playready-licensing.axtest.net/AcquireLicense", - "httpRequestHeaders": { - "X-AxDRM-Message": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiYjMzNjRlYjUtNTFmNi00YWUzLThjOTgtMzNjZWQ1ZTMxYzc4IiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImtleXMiOlt7ImlkIjoiOWViNDA1MGQtZTQ0Yi00ODAyLTkzMmUtMjdkNzUwODNlMjY2IiwiZW5jcnlwdGVkX2tleSI6ImxLM09qSExZVzI0Y3Iya3RSNzRmbnc9PSJ9XX19.4lWwW46k-oWcah8oN18LPj5OLS5ZU-_AQv7fe0JhNjA" - } - } - }, - "moreInfo": "https://github.com/Axinom/dash-test-vectors" - }, - { - "name": "Audio with PlayReady and Widevine DRM, multiple keys", - "url": "https://media.axprod.net/TestVectors/v7-MultiDRM-MultiKey/Manifest_AudioOnly.mpd", - "protData": { - "com.widevine.alpha": { - "serverURL": "https://drm-widevine-licensing.axtest.net/AcquireLicense", - "httpRequestHeaders": { - "X-AxDRM-Message": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiYjMzNjRlYjUtNTFmNi00YWUzLThjOTgtMzNjZWQ1ZTMxYzc4IiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImtleXMiOlt7ImlkIjoiODAzOTliZjUtOGEyMS00MDE0LTgwNTMtZTI3ZTc0OGU5OGMwIiwiZW5jcnlwdGVkX2tleSI6ImxpTkpxVmFZa05oK01LY3hKRms3SWc9PSJ9LHsiaWQiOiI5MDk1M2UwOS02Y2IyLTQ5YTMtYTI2MC03YTVmZWZlYWQ0OTkiLCJlbmNyeXB0ZWRfa2V5Ijoia1l0SEh2cnJmQ01lVmRKNkxrYmtuZz09In0seyJpZCI6IjBlNGRhOTJiLWQwZTgtNGE2Ni04YzNmLWMyNWE5N2ViNjUzMiIsImVuY3J5cHRlZF9rZXkiOiI3dzdOWkhITE1nSjRtUUtFSzVMVE1RPT0ifSx7ImlkIjoiNTg1ZjIzM2YtMzA3Mi00NmYxLTlmYTQtNmRjMjJjNjZhMDE0IiwiZW5jcnlwdGVkX2tleSI6IkFjNFVVbVl0Qko1blBROU4xNXJjM2c9PSJ9LHsiaWQiOiI0MjIyYmQ3OC1iYzQ1LTQxYmYtYjYzZS02ZjgxNGRjMzkxZGYiLCJlbmNyeXB0ZWRfa2V5IjoiTzZGTzBmcVNXb3BwN2JqYy9ENGxNQT09In1dfX0.uF6YlKAREOmbniAeYiH070HSJhV0YS7zSKjlCtiDR5Y" - } - }, - "com.microsoft.playready": { - "serverURL": "https://drm-playready-licensing.axtest.net/AcquireLicense", - "httpRequestHeaders": { - "X-AxDRM-Message": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiYjMzNjRlYjUtNTFmNi00YWUzLThjOTgtMzNjZWQ1ZTMxYzc4IiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImtleXMiOlt7ImlkIjoiODAzOTliZjUtOGEyMS00MDE0LTgwNTMtZTI3ZTc0OGU5OGMwIiwiZW5jcnlwdGVkX2tleSI6ImxpTkpxVmFZa05oK01LY3hKRms3SWc9PSJ9LHsiaWQiOiI5MDk1M2UwOS02Y2IyLTQ5YTMtYTI2MC03YTVmZWZlYWQ0OTkiLCJlbmNyeXB0ZWRfa2V5Ijoia1l0SEh2cnJmQ01lVmRKNkxrYmtuZz09In0seyJpZCI6IjBlNGRhOTJiLWQwZTgtNGE2Ni04YzNmLWMyNWE5N2ViNjUzMiIsImVuY3J5cHRlZF9rZXkiOiI3dzdOWkhITE1nSjRtUUtFSzVMVE1RPT0ifSx7ImlkIjoiNTg1ZjIzM2YtMzA3Mi00NmYxLTlmYTQtNmRjMjJjNjZhMDE0IiwiZW5jcnlwdGVkX2tleSI6IkFjNFVVbVl0Qko1blBROU4xNXJjM2c9PSJ9LHsiaWQiOiI0MjIyYmQ3OC1iYzQ1LTQxYmYtYjYzZS02ZjgxNGRjMzkxZGYiLCJlbmNyeXB0ZWRfa2V5IjoiTzZGTzBmcVNXb3BwN2JqYy9ENGxNQT09In1dfX0.uF6YlKAREOmbniAeYiH070HSJhV0YS7zSKjlCtiDR5Y" - } - } - }, - "moreInfo": "https://github.com/Axinom/dash-test-vectors" - }, - { - "name": "Audio with W3C Clear Key, single key", - "url": "https://media.axprod.net/TestVectors/v7-MultiDRM-SingleKey/Manifest_AudioOnly_ClearKey.mpd", - "protData": { - "org.w3.clearkey": { - "clearkeys": { - "nrQFDeRLSAKTLifXUIPiZg": "FmY0xnWCPCNaSpRG-tUuTQ" - } - } - }, - "moreInfo": "https://github.com/Axinom/dash-test-vectors" - }, - { - "name": "Audio with W3C Clear Key, multiple keys", - "url": "https://media.axprod.net/TestVectors/v7-MultiDRM-MultiKey/Manifest_AudioOnly_ClearKey.mpd", - "protData": { - "org.w3.clearkey": { - "clearkeys": { - "gDmb9YohQBSAU-J-dI6YwA": "3aHppzZ2g3Y3wK1uNnUXmg", - "kJU-CWyySaOiYHpf7-rUmQ": "zsmKW7Mq9Unz5R7oUGeF8w", - "Dk2pK9DoSmaMP8Jal-tlMg": "UmYYfGb7znuoFAQM79ayHw", - "WF8jPzByRvGfpG3CLGagFA": "jayKpC3tmPq4YKXkapa8FA", - "QiK9eLxFQb-2Pm-BTcOR3w": "GAMi9v92b9ca5yBwaptN-Q" - } - } - }, - "moreInfo": "https://github.com/Axinom/dash-test-vectors" - }, - { - "name": "Audio without encryption", - "url": "https://media.axprod.net/TestVectors/v7-Clear/Manifest_AudioOnly.mpd", - "moreInfo": "https://github.com/Axinom/dash-test-vectors" - }, - { - "name": "Multi-period 1080p with PlayReady and Widevine DRM, multiple keys", - "url": "https://media.axprod.net/TestVectors/v7-MultiDRM-MultiKey-MultiPeriod/Manifest_1080p.mpd", - "protData": { - "com.widevine.alpha": { - "serverURL": "https://drm-widevine-licensing.axtest.net/AcquireLicense", - "httpRequestHeaders": { - "X-AxDRM-Message": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiYjMzNjRlYjUtNTFmNi00YWUzLThjOTgtMzNjZWQ1ZTMxYzc4IiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImtleXMiOlt7ImlkIjoiMDg3Mjc4NmUtZjllNy00NjVmLWEzYTItNGU1YjBlZjhmYTQ1IiwiZW5jcnlwdGVkX2tleSI6IlB3NitlRVlOY3ZqWWJmc2gzWDNmbWc9PSJ9LHsiaWQiOiJjMTRmMDcwOS1mMmI5LTQ0MjctOTE2Yi02MWI1MjU4NjUwNmEiLCJlbmNyeXB0ZWRfa2V5IjoiLzErZk5paDM4bXFSdjR5Y1l6bnQvdz09In0seyJpZCI6IjhiMDI5ZTUxLWQ1NmEtNDRiZC05MTBmLWQ0YjVmZDkwZmJhMiIsImVuY3J5cHRlZF9rZXkiOiJrcTBKdVpFanBGTjhzYVRtdDU2ME9nPT0ifSx7ImlkIjoiMmQ2ZTkzODctNjBjYS00MTQ1LWFlYzItYzQwODM3YjRiMDI2IiwiZW5jcnlwdGVkX2tleSI6IlRjUlFlQld4RW9IT0tIcmFkNFNlVlE9PSJ9LHsiaWQiOiJkZTAyZjA3Zi1hMDk4LTRlZTAtYjU1Ni05MDdjMGQxN2ZiYmMiLCJlbmNyeXB0ZWRfa2V5IjoicG9lbmNTN0dnbWVHRmVvSjZQRUFUUT09In0seyJpZCI6IjkxNGU2OWY0LTBhYjMtNDUzNC05ZTlmLTk4NTM2MTVlMjZmNiIsImVuY3J5cHRlZF9rZXkiOiJlaUkvTXNsbHJRNHdDbFJUL0xObUNBPT0ifSx7ImlkIjoiZGE0NDQ1YzItZGI1ZS00OGVmLWIwOTYtM2VmMzQ3YjE2YzdmIiwiZW5jcnlwdGVkX2tleSI6IjJ3K3pkdnFycERWM3hSMGJKeTR1Z3c9PSJ9LHsiaWQiOiIyOWYwNWU4Zi1hMWFlLTQ2ZTQtODBlOS0yMmRjZDQ0Y2Q3YTEiLCJlbmNyeXB0ZWRfa2V5IjoiL3hsU0hweHdxdTNnby9nbHBtU2dhUT09In0seyJpZCI6IjY5ZmU3MDc3LWRhZGQtNGI1NS05NmNkLWMzZWRiMzk5MTg1MyIsImVuY3J5cHRlZF9rZXkiOiJ6dTZpdXpOMnBzaTBaU3hRaUFUa1JRPT0ifV19fQ.BXr93Et1krYMVs-CUnf7F3ywJWFRtxYdkR7Qn4w3-to" - } - }, - "com.microsoft.playready": { - "serverURL": "https://drm-playready-licensing.axtest.net/AcquireLicense", - "httpRequestHeaders": { - "X-AxDRM-Message": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiYjMzNjRlYjUtNTFmNi00YWUzLThjOTgtMzNjZWQ1ZTMxYzc4IiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImtleXMiOlt7ImlkIjoiMDg3Mjc4NmUtZjllNy00NjVmLWEzYTItNGU1YjBlZjhmYTQ1IiwiZW5jcnlwdGVkX2tleSI6IlB3NitlRVlOY3ZqWWJmc2gzWDNmbWc9PSJ9LHsiaWQiOiJjMTRmMDcwOS1mMmI5LTQ0MjctOTE2Yi02MWI1MjU4NjUwNmEiLCJlbmNyeXB0ZWRfa2V5IjoiLzErZk5paDM4bXFSdjR5Y1l6bnQvdz09In0seyJpZCI6IjhiMDI5ZTUxLWQ1NmEtNDRiZC05MTBmLWQ0YjVmZDkwZmJhMiIsImVuY3J5cHRlZF9rZXkiOiJrcTBKdVpFanBGTjhzYVRtdDU2ME9nPT0ifSx7ImlkIjoiMmQ2ZTkzODctNjBjYS00MTQ1LWFlYzItYzQwODM3YjRiMDI2IiwiZW5jcnlwdGVkX2tleSI6IlRjUlFlQld4RW9IT0tIcmFkNFNlVlE9PSJ9LHsiaWQiOiJkZTAyZjA3Zi1hMDk4LTRlZTAtYjU1Ni05MDdjMGQxN2ZiYmMiLCJlbmNyeXB0ZWRfa2V5IjoicG9lbmNTN0dnbWVHRmVvSjZQRUFUUT09In0seyJpZCI6IjkxNGU2OWY0LTBhYjMtNDUzNC05ZTlmLTk4NTM2MTVlMjZmNiIsImVuY3J5cHRlZF9rZXkiOiJlaUkvTXNsbHJRNHdDbFJUL0xObUNBPT0ifSx7ImlkIjoiZGE0NDQ1YzItZGI1ZS00OGVmLWIwOTYtM2VmMzQ3YjE2YzdmIiwiZW5jcnlwdGVkX2tleSI6IjJ3K3pkdnFycERWM3hSMGJKeTR1Z3c9PSJ9LHsiaWQiOiIyOWYwNWU4Zi1hMWFlLTQ2ZTQtODBlOS0yMmRjZDQ0Y2Q3YTEiLCJlbmNyeXB0ZWRfa2V5IjoiL3hsU0hweHdxdTNnby9nbHBtU2dhUT09In0seyJpZCI6IjY5ZmU3MDc3LWRhZGQtNGI1NS05NmNkLWMzZWRiMzk5MTg1MyIsImVuY3J5cHRlZF9rZXkiOiJ6dTZpdXpOMnBzaTBaU3hRaUFUa1JRPT0ifV19fQ.BXr93Et1krYMVs-CUnf7F3ywJWFRtxYdkR7Qn4w3-to" - } - } - }, - "moreInfo": "https://github.com/Axinom/dash-test-vectors" - }, - { - "name": "Multi-period 1080p with W3C Clear Key, multiple keys", - "url": "https://media.axprod.net/TestVectors/v7-MultiDRM-MultiKey-MultiPeriod/Manifest_1080p_ClearKey.mpd", - "protData": { - "org.w3.clearkey": { - "clearkeys": { - "gDmb9YohQBSAU-J-dI6YwA": "3aHppzZ2g3Y3wK1uNnUXmg", - "kJU-CWyySaOiYHpf7-rUmQ": "zsmKW7Mq9Unz5R7oUGeF8w", - "Dk2pK9DoSmaMP8Jal-tlMg": "UmYYfGb7znuoFAQM79ayHw", - "WF8jPzByRvGfpG3CLGagFA": "jayKpC3tmPq4YKXkapa8FA", - "QiK9eLxFQb-2Pm-BTcOR3w": "GAMi9v92b9ca5yBwaptN-Q" - } - } - }, - "moreInfo": "https://github.com/Axinom/dash-test-vectors" - }, - { - "name": "Multi-period 1080p without encryption", - "url": "https://media.axprod.net/TestVectors/v7-Clear/Manifest_MultiPeriod_1080p.mpd", - "moreInfo": "https://github.com/Axinom/dash-test-vectors" - }, - { - "name": "Multi-period 2160p with PlayReady and Widevine DRM, multiple keys", - "url": "https://media.axprod.net/TestVectors/v7-MultiDRM-MultiKey-MultiPeriod/Manifest.mpd", - "protData": { - "com.widevine.alpha": { - "serverURL": "https://drm-widevine-licensing.axtest.net/AcquireLicense", - "httpRequestHeaders": { - "X-AxDRM-Message": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiYjMzNjRlYjUtNTFmNi00YWUzLThjOTgtMzNjZWQ1ZTMxYzc4IiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImtleXMiOlt7ImlkIjoiMDg3Mjc4NmUtZjllNy00NjVmLWEzYTItNGU1YjBlZjhmYTQ1IiwiZW5jcnlwdGVkX2tleSI6IlB3NitlRVlOY3ZqWWJmc2gzWDNmbWc9PSJ9LHsiaWQiOiJjMTRmMDcwOS1mMmI5LTQ0MjctOTE2Yi02MWI1MjU4NjUwNmEiLCJlbmNyeXB0ZWRfa2V5IjoiLzErZk5paDM4bXFSdjR5Y1l6bnQvdz09In0seyJpZCI6IjhiMDI5ZTUxLWQ1NmEtNDRiZC05MTBmLWQ0YjVmZDkwZmJhMiIsImVuY3J5cHRlZF9rZXkiOiJrcTBKdVpFanBGTjhzYVRtdDU2ME9nPT0ifSx7ImlkIjoiMmQ2ZTkzODctNjBjYS00MTQ1LWFlYzItYzQwODM3YjRiMDI2IiwiZW5jcnlwdGVkX2tleSI6IlRjUlFlQld4RW9IT0tIcmFkNFNlVlE9PSJ9LHsiaWQiOiJkZTAyZjA3Zi1hMDk4LTRlZTAtYjU1Ni05MDdjMGQxN2ZiYmMiLCJlbmNyeXB0ZWRfa2V5IjoicG9lbmNTN0dnbWVHRmVvSjZQRUFUUT09In0seyJpZCI6IjkxNGU2OWY0LTBhYjMtNDUzNC05ZTlmLTk4NTM2MTVlMjZmNiIsImVuY3J5cHRlZF9rZXkiOiJlaUkvTXNsbHJRNHdDbFJUL0xObUNBPT0ifSx7ImlkIjoiZGE0NDQ1YzItZGI1ZS00OGVmLWIwOTYtM2VmMzQ3YjE2YzdmIiwiZW5jcnlwdGVkX2tleSI6IjJ3K3pkdnFycERWM3hSMGJKeTR1Z3c9PSJ9LHsiaWQiOiIyOWYwNWU4Zi1hMWFlLTQ2ZTQtODBlOS0yMmRjZDQ0Y2Q3YTEiLCJlbmNyeXB0ZWRfa2V5IjoiL3hsU0hweHdxdTNnby9nbHBtU2dhUT09In0seyJpZCI6IjY5ZmU3MDc3LWRhZGQtNGI1NS05NmNkLWMzZWRiMzk5MTg1MyIsImVuY3J5cHRlZF9rZXkiOiJ6dTZpdXpOMnBzaTBaU3hRaUFUa1JRPT0ifV19fQ.BXr93Et1krYMVs-CUnf7F3ywJWFRtxYdkR7Qn4w3-to" - } - }, - "com.microsoft.playready": { - "serverURL": "https://drm-playready-licensing.axtest.net/AcquireLicense", - "httpRequestHeaders": { - "X-AxDRM-Message": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiYjMzNjRlYjUtNTFmNi00YWUzLThjOTgtMzNjZWQ1ZTMxYzc4IiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImtleXMiOlt7ImlkIjoiMDg3Mjc4NmUtZjllNy00NjVmLWEzYTItNGU1YjBlZjhmYTQ1IiwiZW5jcnlwdGVkX2tleSI6IlB3NitlRVlOY3ZqWWJmc2gzWDNmbWc9PSJ9LHsiaWQiOiJjMTRmMDcwOS1mMmI5LTQ0MjctOTE2Yi02MWI1MjU4NjUwNmEiLCJlbmNyeXB0ZWRfa2V5IjoiLzErZk5paDM4bXFSdjR5Y1l6bnQvdz09In0seyJpZCI6IjhiMDI5ZTUxLWQ1NmEtNDRiZC05MTBmLWQ0YjVmZDkwZmJhMiIsImVuY3J5cHRlZF9rZXkiOiJrcTBKdVpFanBGTjhzYVRtdDU2ME9nPT0ifSx7ImlkIjoiMmQ2ZTkzODctNjBjYS00MTQ1LWFlYzItYzQwODM3YjRiMDI2IiwiZW5jcnlwdGVkX2tleSI6IlRjUlFlQld4RW9IT0tIcmFkNFNlVlE9PSJ9LHsiaWQiOiJkZTAyZjA3Zi1hMDk4LTRlZTAtYjU1Ni05MDdjMGQxN2ZiYmMiLCJlbmNyeXB0ZWRfa2V5IjoicG9lbmNTN0dnbWVHRmVvSjZQRUFUUT09In0seyJpZCI6IjkxNGU2OWY0LTBhYjMtNDUzNC05ZTlmLTk4NTM2MTVlMjZmNiIsImVuY3J5cHRlZF9rZXkiOiJlaUkvTXNsbHJRNHdDbFJUL0xObUNBPT0ifSx7ImlkIjoiZGE0NDQ1YzItZGI1ZS00OGVmLWIwOTYtM2VmMzQ3YjE2YzdmIiwiZW5jcnlwdGVkX2tleSI6IjJ3K3pkdnFycERWM3hSMGJKeTR1Z3c9PSJ9LHsiaWQiOiIyOWYwNWU4Zi1hMWFlLTQ2ZTQtODBlOS0yMmRjZDQ0Y2Q3YTEiLCJlbmNyeXB0ZWRfa2V5IjoiL3hsU0hweHdxdTNnby9nbHBtU2dhUT09In0seyJpZCI6IjY5ZmU3MDc3LWRhZGQtNGI1NS05NmNkLWMzZWRiMzk5MTg1MyIsImVuY3J5cHRlZF9rZXkiOiJ6dTZpdXpOMnBzaTBaU3hRaUFUa1JRPT0ifV19fQ.BXr93Et1krYMVs-CUnf7F3ywJWFRtxYdkR7Qn4w3-to" - } - } - }, - "moreInfo": "https://github.com/Axinom/dash-test-vectors" - }, - { - "name": "Multi-period 2160p with W3C Clear Key, multiple keys", - "url": "https://media.axprod.net/TestVectors/v7-MultiDRM-MultiKey-MultiPeriod/Manifest_ClearKey.mpd", - "protData": { - "org.w3.clearkey": { - "clearkeys": { - "gDmb9YohQBSAU-J-dI6YwA": "3aHppzZ2g3Y3wK1uNnUXmg", - "kJU-CWyySaOiYHpf7-rUmQ": "zsmKW7Mq9Unz5R7oUGeF8w", - "Dk2pK9DoSmaMP8Jal-tlMg": "UmYYfGb7znuoFAQM79ayHw", - "WF8jPzByRvGfpG3CLGagFA": "jayKpC3tmPq4YKXkapa8FA", - "QiK9eLxFQb-2Pm-BTcOR3w": "GAMi9v92b9ca5yBwaptN-Q" - } - } - }, - "moreInfo": "https://github.com/Axinom/dash-test-vectors" - }, - { - "name": "Multi-period 2160p without encryption", - "url": "https://media.axprod.net/TestVectors/v7-Clear/Manifest_MultiPeriod.mpd", - "moreInfo": "https://github.com/Axinom/dash-test-vectors" - }, - { - "name": "Multi-period audio with PlayReady and Widevine DRM, multiple keys", - "url": "https://media.axprod.net/TestVectors/v7-MultiDRM-MultiKey-MultiPeriod/Manifest_AudioOnly.mpd", - "protData": { - "com.widevine.alpha": { - "serverURL": "https://drm-widevine-licensing.axtest.net/AcquireLicense", - "httpRequestHeaders": { - "X-AxDRM-Message": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiYjMzNjRlYjUtNTFmNi00YWUzLThjOTgtMzNjZWQ1ZTMxYzc4IiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImtleXMiOlt7ImlkIjoiMDg3Mjc4NmUtZjllNy00NjVmLWEzYTItNGU1YjBlZjhmYTQ1IiwiZW5jcnlwdGVkX2tleSI6IlB3NitlRVlOY3ZqWWJmc2gzWDNmbWc9PSJ9LHsiaWQiOiJjMTRmMDcwOS1mMmI5LTQ0MjctOTE2Yi02MWI1MjU4NjUwNmEiLCJlbmNyeXB0ZWRfa2V5IjoiLzErZk5paDM4bXFSdjR5Y1l6bnQvdz09In0seyJpZCI6IjhiMDI5ZTUxLWQ1NmEtNDRiZC05MTBmLWQ0YjVmZDkwZmJhMiIsImVuY3J5cHRlZF9rZXkiOiJrcTBKdVpFanBGTjhzYVRtdDU2ME9nPT0ifSx7ImlkIjoiMmQ2ZTkzODctNjBjYS00MTQ1LWFlYzItYzQwODM3YjRiMDI2IiwiZW5jcnlwdGVkX2tleSI6IlRjUlFlQld4RW9IT0tIcmFkNFNlVlE9PSJ9LHsiaWQiOiJkZTAyZjA3Zi1hMDk4LTRlZTAtYjU1Ni05MDdjMGQxN2ZiYmMiLCJlbmNyeXB0ZWRfa2V5IjoicG9lbmNTN0dnbWVHRmVvSjZQRUFUUT09In0seyJpZCI6IjkxNGU2OWY0LTBhYjMtNDUzNC05ZTlmLTk4NTM2MTVlMjZmNiIsImVuY3J5cHRlZF9rZXkiOiJlaUkvTXNsbHJRNHdDbFJUL0xObUNBPT0ifSx7ImlkIjoiZGE0NDQ1YzItZGI1ZS00OGVmLWIwOTYtM2VmMzQ3YjE2YzdmIiwiZW5jcnlwdGVkX2tleSI6IjJ3K3pkdnFycERWM3hSMGJKeTR1Z3c9PSJ9LHsiaWQiOiIyOWYwNWU4Zi1hMWFlLTQ2ZTQtODBlOS0yMmRjZDQ0Y2Q3YTEiLCJlbmNyeXB0ZWRfa2V5IjoiL3hsU0hweHdxdTNnby9nbHBtU2dhUT09In0seyJpZCI6IjY5ZmU3MDc3LWRhZGQtNGI1NS05NmNkLWMzZWRiMzk5MTg1MyIsImVuY3J5cHRlZF9rZXkiOiJ6dTZpdXpOMnBzaTBaU3hRaUFUa1JRPT0ifV19fQ.BXr93Et1krYMVs-CUnf7F3ywJWFRtxYdkR7Qn4w3-to" - } - }, - "com.microsoft.playready": { - "serverURL": "https://drm-playready-licensing.axtest.net/AcquireLicense", - "httpRequestHeaders": { - "X-AxDRM-Message": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiYjMzNjRlYjUtNTFmNi00YWUzLThjOTgtMzNjZWQ1ZTMxYzc4IiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImtleXMiOlt7ImlkIjoiMDg3Mjc4NmUtZjllNy00NjVmLWEzYTItNGU1YjBlZjhmYTQ1IiwiZW5jcnlwdGVkX2tleSI6IlB3NitlRVlOY3ZqWWJmc2gzWDNmbWc9PSJ9LHsiaWQiOiJjMTRmMDcwOS1mMmI5LTQ0MjctOTE2Yi02MWI1MjU4NjUwNmEiLCJlbmNyeXB0ZWRfa2V5IjoiLzErZk5paDM4bXFSdjR5Y1l6bnQvdz09In0seyJpZCI6IjhiMDI5ZTUxLWQ1NmEtNDRiZC05MTBmLWQ0YjVmZDkwZmJhMiIsImVuY3J5cHRlZF9rZXkiOiJrcTBKdVpFanBGTjhzYVRtdDU2ME9nPT0ifSx7ImlkIjoiMmQ2ZTkzODctNjBjYS00MTQ1LWFlYzItYzQwODM3YjRiMDI2IiwiZW5jcnlwdGVkX2tleSI6IlRjUlFlQld4RW9IT0tIcmFkNFNlVlE9PSJ9LHsiaWQiOiJkZTAyZjA3Zi1hMDk4LTRlZTAtYjU1Ni05MDdjMGQxN2ZiYmMiLCJlbmNyeXB0ZWRfa2V5IjoicG9lbmNTN0dnbWVHRmVvSjZQRUFUUT09In0seyJpZCI6IjkxNGU2OWY0LTBhYjMtNDUzNC05ZTlmLTk4NTM2MTVlMjZmNiIsImVuY3J5cHRlZF9rZXkiOiJlaUkvTXNsbHJRNHdDbFJUL0xObUNBPT0ifSx7ImlkIjoiZGE0NDQ1YzItZGI1ZS00OGVmLWIwOTYtM2VmMzQ3YjE2YzdmIiwiZW5jcnlwdGVkX2tleSI6IjJ3K3pkdnFycERWM3hSMGJKeTR1Z3c9PSJ9LHsiaWQiOiIyOWYwNWU4Zi1hMWFlLTQ2ZTQtODBlOS0yMmRjZDQ0Y2Q3YTEiLCJlbmNyeXB0ZWRfa2V5IjoiL3hsU0hweHdxdTNnby9nbHBtU2dhUT09In0seyJpZCI6IjY5ZmU3MDc3LWRhZGQtNGI1NS05NmNkLWMzZWRiMzk5MTg1MyIsImVuY3J5cHRlZF9rZXkiOiJ6dTZpdXpOMnBzaTBaU3hRaUFUa1JRPT0ifV19fQ.BXr93Et1krYMVs-CUnf7F3ywJWFRtxYdkR7Qn4w3-to" - } - } - }, - "moreInfo": "https://github.com/Axinom/dash-test-vectors" - }, - { - "name": "Multi-period audio with W3C Clear Key, multiple keys", - "url": "https://media.axprod.net/TestVectors/v7-MultiDRM-MultiKey-MultiPeriod/Manifest_AudioOnly_ClearKey.mpd", - "moreInfo": "https://github.com/Axinom/dash-test-vectors" - }, - { - "name": "Multi-period audio without encryption", - "url": "https://media.axprod.net/TestVectors/v7-Clear/Manifest_MultiPeriod_AudioOnly.mpd", - "moreInfo": "https://github.com/Axinom/dash-test-vectors" - }, - { - "name": "Complex multi-period with different content, encrypted", - "url": "https://media.axprod.net/TestVectors/v8-MultiContent/Encrypted/Manifest.mpd", - "moreInfo": "https://github.com/Axinom/dash-test-vectors", - "protData": { - "com.widevine.alpha": { - "serverURL": "https://drm-widevine-licensing.axtest.net/AcquireLicense", - "httpRequestHeaders": { - "X-AxDRM-Message": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtZXNzYWdlIjp7InBsYXlyZWFkeSI6eyJtaW5fYXBwX3NlY3VyaXR5X2xldmVsIjoxNTAsInBsYXlfZW5hYmxlcnMiOlsiNzg2NjI3RDgtQzJBNi00NEJFLThGODgtMDhBRTI1NUIwMUE3Il19LCJrZXlzIjpbeyJlbmNyeXB0ZWRfa2V5IjoiN1hIS21uL3NmdnVQTFd0UHRHVFpEUT09IiwiaWQiOiIxZWIzMzJiMi03NDM3LTQ5YWUtYmYzOS1lNzAwMTBjYjYyMGIifSx7ImVuY3J5cHRlZF9rZXkiOiJzUXRGWDh6Y2o5bEVyZ282RDdjNGh3PT0iLCJpZCI6IjlhYTYwZTNhLTljOTEtNDc0ZC04OTM3LTdkOGIzMjU5Y2NjZCJ9LHsiZW5jcnlwdGVkX2tleSI6Im8wUlY0a2tuVE1KTFFkeVh1a1VlT2c9PSIsImlkIjoiNTk0Nzk3YTctNmIwMC00NjczLWIyZTEtYWVmYzU1MmIxYmJjIn0seyJlbmNyeXB0ZWRfa2V5IjoiZVl1dlIvS1BhWCtXWG43Rkw5WkNxQT09IiwiaWQiOiJhYWUyNTc1OC1lNDgxLTQ4OTUtODEzMy1iODA5NDgzMzkzZDAifSx7ImVuY3J5cHRlZF9rZXkiOiIwQ1BUWVpMWmk1SmhZZ0NiZThKTnhRPT0iLCJpZCI6IjkzMTEzZDVlLTJlYzgtNDNjMS05MDgzLTEwZjNkZTIwM2EyOSJ9LHsiZW5jcnlwdGVkX2tleSI6IlFQUlBrQ09tenNORkl1cCszSFp3WWc9PSIsImlkIjoiZTQ4NzcwMzctNDM3Ni00ZWRkLTg1ODYtMTQ1MTk0MzU4ODAzIn0seyJlbmNyeXB0ZWRfa2V5IjoiVWtrWUZ0TXJGMnlET0hvYWxKRmZSZz09IiwiaWQiOiJlOGFkNTk3Mi04ODE5LTQzMjYtYWQ2YS1mOWExNTE2OGJjYTcifSx7ImVuY3J5cHRlZF9rZXkiOiJkdWhnRVJSRkRiZlFEcnlwUWRCUUVRPT0iLCJpZCI6IjI2YTA5MzlmLTNhMGMtNDI4OS1hZDZiLWJiNWNlYzE3ZmY0MCJ9LHsiZW5jcnlwdGVkX2tleSI6IjFOUHp1Q1JLM3p4bWpYK3FZZnU1bXc9PSIsImlkIjoiYTVlZDcxNzMtMzc4MS00Yzc0LTkwYWMtZjA4MzRlZjFhMWM4In0seyJlbmNyeXB0ZWRfa2V5IjoiYXVQTEJjd2NmTnFSRTV1WFdUZ1NLUT09IiwiaWQiOiIzMjlmNTMzZS1mYTc3LTQwNzAtYjY1Yi0zOTI5ODBiYWRhMGQifSx7ImVuY3J5cHRlZF9rZXkiOiI2NkE1MnFiZEcyQlg3SUhTaml6WUpRPT0iLCJpZCI6IjE5N2Y4Yjg0LTNiZjItNDg2MC1iMjNhLTVjNTQ2MjhhZDBiMSJ9LHsiZW5jcnlwdGVkX2tleSI6IlhIUUE3WWlEZGZwTE05QWxwcklDK2c9PSIsImlkIjoiNGVjZGQ0YzctNGQyOS00M2ZmLWJkYWYtMDJiNzY5MDBmMTIzIn0seyJlbmNyeXB0ZWRfa2V5IjoiblBqNWl3N1IvZDR0WmdKZktoRFhYZz09IiwiaWQiOiJlZTc0NmQxMi1hNDg4LTQ5NzctYjFjYS03N2ExMDFiYjQ4M2MifSx7ImVuY3J5cHRlZF9rZXkiOiJ5U1Vma0Q5ZEliK0ExNmoydHNzNDV3PT0iLCJpZCI6IjQ5NGY5NmUxLTM1MzUtNGE4NC05MWMxLWZhYTI4M2IwNmE1NCJ9LHsiZW5jcnlwdGVkX2tleSI6InJlUHVsaXg0eFZNZHlsUnVpcG5FK0E9PSIsImlkIjoiNWMwN2JmZjQtYzcwYi00ZDAyLWEzNzgtMzgzMjZmOTEwMDBjIn0seyJlbmNyeXB0ZWRfa2V5Ijoialc3Z2E0aytMcDdxWTd4Zmo5dHB5Zz09IiwiaWQiOiIzMjgzYzM1ZS1hZTJjLTRmOGMtOGE0OS00YTc1MGFlZGYxNDIifSx7ImVuY3J5cHRlZF9rZXkiOiJLdHNNYlZRM0JXL1dwQlIwSlQwa2R3PT0iLCJpZCI6IjhkNzdiOWM0LTdmNmQtNDdmOS04NTYyLWE1ZTVlNGMzNTFjZSJ9LHsiZW5jcnlwdGVkX2tleSI6IlhRTGZKQUpmSjFyelFMZGNFRWM5L2c9PSIsImlkIjoiODIzMTcxZDctZGZjMS00ZDBlLTgwM2YtNDBhMWY1ZTQzODY4In0seyJlbmNyeXB0ZWRfa2V5IjoiR0hQSVNYTXZKWEJ6WktGQm1ZMXFCZz09IiwiaWQiOiJjMTYyYWM3ZC00MGQ3LTQ2YzAtYjJjZC1lOTQyN2Q0MzljMzIifSx7ImVuY3J5cHRlZF9rZXkiOiJ2bzJhamlLaWV6Yk9xY2tyNTN0U3B3PT0iLCJpZCI6ImZhYTZkNmY1LTM1MDEtNDg1MS05MmViLWM3ZGE0NDRlY2FhYyJ9LHsiZW5jcnlwdGVkX2tleSI6Ijg2QkEwUHYwYXk4UmV5Wk4zeElYa2c9PSIsImlkIjoiZmM0OWI3MTEtMWNiNi00MGE3LTk4NDAtODNjNDFiNTViOTliIn0seyJlbmNyeXB0ZWRfa2V5IjoibUhBbERaa0NYQWpCR1pLR2h0Y3Zpdz09IiwiaWQiOiI0M2QwMjIwNC04NjA5LTRkNDYtOTlhYy00MjVhNWI0ODAwOTgifSx7ImVuY3J5cHRlZF9rZXkiOiJ3bWhjREdZcG84YlZBSit0OGF4SUZnPT0iLCJpZCI6IjRkNmU0OTZhLTFmOTgtNGVlOC04Zjg3LTRiMTAzYmQzOGQwZiJ9LHsiZW5jcnlwdGVkX2tleSI6Ik92cWF3Y0JVQVE3cHM2T0xhSnZPRmc9PSIsImlkIjoiYzRlMGQ5ZjctZDQ4Mi00MWMzLThjYmItOTdiMTEyZDcyZTY2In0seyJlbmNyeXB0ZWRfa2V5IjoiM3dTMkdpemxWcGtuNDlRRExxcFBhZz09IiwiaWQiOiIxYzJkZTFlNC1lZDMwLTQ0NTItYTExNS0wOTIzYjk0MGM0ZWQifSx7ImVuY3J5cHRlZF9rZXkiOiJTNWRGQ25yRUNjREswOEVreHllY3lRPT0iLCJpZCI6ImRjZjQzODVmLTM1MDUtNGZmNS1iMDU1LTQ2MWQ1YTA3ZjBmNSJ9LHsiZW5jcnlwdGVkX2tleSI6IlBnRUhyK0Nrd3JYTStlSWFnUnl4b3c9PSIsImlkIjoiZjMyNGYwNGUtN2M3My00ZjM3LTgxMzUtYzg5ZjhjNGU2Y2Y0In0seyJlbmNyeXB0ZWRfa2V5IjoiSkx6UUZGMXp4MFpZMzZYSTdaR0VaUT09IiwiaWQiOiI1Y2I1M2RkOC0xMjk0LTRjOGUtOTY0ZS0yNTg2OWQ1M2EyNGEifSx7ImVuY3J5cHRlZF9rZXkiOiJVOHBRdW1HUmtrTGppSEg1cjlqWGhnPT0iLCJpZCI6IjA1NjgyYTI2LTg4NzctNDZkMy05NDY1LTEwNGEzYTQwMDEwYSJ9LHsiZW5jcnlwdGVkX2tleSI6IlVJTDZKNGRzZEpGNi9tQTM1dHIvVFE9PSIsImlkIjoiYmNlNTM0MTAtM2IwYy00OTE0LTg3YTMtNzIzNjNjYTE3NTMxIn0seyJlbmNyeXB0ZWRfa2V5IjoiM3pCaW1Dc2NlMTV2YkV0Mm8zNEhhUT09IiwiaWQiOiI0ZjRmOGExYy0zMjAyLTQ2YWUtODA5ZS00ZmNmOTMzZWU2NTQifSx7ImVuY3J5cHRlZF9rZXkiOiJDVHdTU3RQMnV1QjVZdStNUGpZY29RPT0iLCJpZCI6Ijg1MmNkN2Y3LTQwZTktNDgyZC04MjI1LWRjYmM4ZTA4ZGI4YiJ9LHsiZW5jcnlwdGVkX2tleSI6Im1ubXRuUWVHYm0rZUEzN2t6dFovRVE9PSIsImlkIjoiZWZkZGI4ZWUtODI3OC00NDM2LWE2OTgtNzJiODAzZDA1MGRiIn0seyJlbmNyeXB0ZWRfa2V5Ijoib3BicXltZVRiT3VWalJnYjJHMHpVdz09IiwiaWQiOiJkNWJkYmE1My02MDZmLTRkNDYtODg4ZC1hMWViNDRjZDVmNDEifSx7ImVuY3J5cHRlZF9rZXkiOiJiSWRsOFhoVmdobmc4Tis4cUZVbFRnPT0iLCJpZCI6ImFlZDQ5NjA5LTUwOTktNDExOC05YjA4LWI5NTM4ZGIwMGMwYyJ9LHsiZW5jcnlwdGVkX2tleSI6Ikp1SS9UMSt5cUtzUU95MjZEbzRuZmc9PSIsImlkIjoiN2I1YzFlOWYtZjhiOC00OTkyLWFhM2UtYTA4NWZjMzY3MzExIn0seyJlbmNyeXB0ZWRfa2V5IjoiM2ladUZxalh3bzhiN1lkamxKZUVPUT09IiwiaWQiOiI1YmU0MGViZi0yZWE0LTQ5ZmItYjZlYy1iMDlkZTVhYjYxN2YifSx7ImVuY3J5cHRlZF9rZXkiOiJoQ3gybzJxQlJKL2hiZVNqKzY5dHF3PT0iLCJpZCI6ImU1MzBkZjFiLWZmN2UtNDJhNC1iNTNhLThkNmRlNjhmMDAxMCJ9LHsiZW5jcnlwdGVkX2tleSI6IjhveWlGM0pQTmdzd0tPajVrWjVIT0E9PSIsImlkIjoiYjk0OTg3NDUtODJlYS00ZmZhLWFiMmItZDczN2VmNTRmODYzIn0seyJlbmNyeXB0ZWRfa2V5IjoiTEs4TENTY28zQmZYZXhLMlh0WUZSQT09IiwiaWQiOiI0ZjUyOTc1Yi1lOWYzLTRmZDctYmI4OS00MDNiMjgwMGU4Y2YifV0sInR5cGUiOiJlbnRpdGxlbWVudF9tZXNzYWdlIn0sImNvbV9rZXlfaWQiOiJiMzM2NGViNS01MWY2LTRhZTMtOGM5OC0zM2NlZDVlMzFjNzgiLCJ2ZXJzaW9uIjoxfQ.kuZip7wOBZ6-FjAO_VcBq0r816426dFK4fTdfm99NqE" - } - }, - "com.microsoft.playready": { - "serverURL": "https://drm-playready-licensing.axtest.net/AcquireLicense", - "httpRequestHeaders": { - "X-AxDRM-Message": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtZXNzYWdlIjp7InBsYXlyZWFkeSI6eyJtaW5fYXBwX3NlY3VyaXR5X2xldmVsIjoxNTAsInBsYXlfZW5hYmxlcnMiOlsiNzg2NjI3RDgtQzJBNi00NEJFLThGODgtMDhBRTI1NUIwMUE3Il19LCJrZXlzIjpbeyJlbmNyeXB0ZWRfa2V5IjoiN1hIS21uL3NmdnVQTFd0UHRHVFpEUT09IiwiaWQiOiIxZWIzMzJiMi03NDM3LTQ5YWUtYmYzOS1lNzAwMTBjYjYyMGIifSx7ImVuY3J5cHRlZF9rZXkiOiJzUXRGWDh6Y2o5bEVyZ282RDdjNGh3PT0iLCJpZCI6IjlhYTYwZTNhLTljOTEtNDc0ZC04OTM3LTdkOGIzMjU5Y2NjZCJ9LHsiZW5jcnlwdGVkX2tleSI6Im8wUlY0a2tuVE1KTFFkeVh1a1VlT2c9PSIsImlkIjoiNTk0Nzk3YTctNmIwMC00NjczLWIyZTEtYWVmYzU1MmIxYmJjIn0seyJlbmNyeXB0ZWRfa2V5IjoiZVl1dlIvS1BhWCtXWG43Rkw5WkNxQT09IiwiaWQiOiJhYWUyNTc1OC1lNDgxLTQ4OTUtODEzMy1iODA5NDgzMzkzZDAifSx7ImVuY3J5cHRlZF9rZXkiOiIwQ1BUWVpMWmk1SmhZZ0NiZThKTnhRPT0iLCJpZCI6IjkzMTEzZDVlLTJlYzgtNDNjMS05MDgzLTEwZjNkZTIwM2EyOSJ9LHsiZW5jcnlwdGVkX2tleSI6IlFQUlBrQ09tenNORkl1cCszSFp3WWc9PSIsImlkIjoiZTQ4NzcwMzctNDM3Ni00ZWRkLTg1ODYtMTQ1MTk0MzU4ODAzIn0seyJlbmNyeXB0ZWRfa2V5IjoiVWtrWUZ0TXJGMnlET0hvYWxKRmZSZz09IiwiaWQiOiJlOGFkNTk3Mi04ODE5LTQzMjYtYWQ2YS1mOWExNTE2OGJjYTcifSx7ImVuY3J5cHRlZF9rZXkiOiJkdWhnRVJSRkRiZlFEcnlwUWRCUUVRPT0iLCJpZCI6IjI2YTA5MzlmLTNhMGMtNDI4OS1hZDZiLWJiNWNlYzE3ZmY0MCJ9LHsiZW5jcnlwdGVkX2tleSI6IjFOUHp1Q1JLM3p4bWpYK3FZZnU1bXc9PSIsImlkIjoiYTVlZDcxNzMtMzc4MS00Yzc0LTkwYWMtZjA4MzRlZjFhMWM4In0seyJlbmNyeXB0ZWRfa2V5IjoiYXVQTEJjd2NmTnFSRTV1WFdUZ1NLUT09IiwiaWQiOiIzMjlmNTMzZS1mYTc3LTQwNzAtYjY1Yi0zOTI5ODBiYWRhMGQifSx7ImVuY3J5cHRlZF9rZXkiOiI2NkE1MnFiZEcyQlg3SUhTaml6WUpRPT0iLCJpZCI6IjE5N2Y4Yjg0LTNiZjItNDg2MC1iMjNhLTVjNTQ2MjhhZDBiMSJ9LHsiZW5jcnlwdGVkX2tleSI6IlhIUUE3WWlEZGZwTE05QWxwcklDK2c9PSIsImlkIjoiNGVjZGQ0YzctNGQyOS00M2ZmLWJkYWYtMDJiNzY5MDBmMTIzIn0seyJlbmNyeXB0ZWRfa2V5IjoiblBqNWl3N1IvZDR0WmdKZktoRFhYZz09IiwiaWQiOiJlZTc0NmQxMi1hNDg4LTQ5NzctYjFjYS03N2ExMDFiYjQ4M2MifSx7ImVuY3J5cHRlZF9rZXkiOiJ5U1Vma0Q5ZEliK0ExNmoydHNzNDV3PT0iLCJpZCI6IjQ5NGY5NmUxLTM1MzUtNGE4NC05MWMxLWZhYTI4M2IwNmE1NCJ9LHsiZW5jcnlwdGVkX2tleSI6InJlUHVsaXg0eFZNZHlsUnVpcG5FK0E9PSIsImlkIjoiNWMwN2JmZjQtYzcwYi00ZDAyLWEzNzgtMzgzMjZmOTEwMDBjIn0seyJlbmNyeXB0ZWRfa2V5Ijoialc3Z2E0aytMcDdxWTd4Zmo5dHB5Zz09IiwiaWQiOiIzMjgzYzM1ZS1hZTJjLTRmOGMtOGE0OS00YTc1MGFlZGYxNDIifSx7ImVuY3J5cHRlZF9rZXkiOiJLdHNNYlZRM0JXL1dwQlIwSlQwa2R3PT0iLCJpZCI6IjhkNzdiOWM0LTdmNmQtNDdmOS04NTYyLWE1ZTVlNGMzNTFjZSJ9LHsiZW5jcnlwdGVkX2tleSI6IlhRTGZKQUpmSjFyelFMZGNFRWM5L2c9PSIsImlkIjoiODIzMTcxZDctZGZjMS00ZDBlLTgwM2YtNDBhMWY1ZTQzODY4In0seyJlbmNyeXB0ZWRfa2V5IjoiR0hQSVNYTXZKWEJ6WktGQm1ZMXFCZz09IiwiaWQiOiJjMTYyYWM3ZC00MGQ3LTQ2YzAtYjJjZC1lOTQyN2Q0MzljMzIifSx7ImVuY3J5cHRlZF9rZXkiOiJ2bzJhamlLaWV6Yk9xY2tyNTN0U3B3PT0iLCJpZCI6ImZhYTZkNmY1LTM1MDEtNDg1MS05MmViLWM3ZGE0NDRlY2FhYyJ9LHsiZW5jcnlwdGVkX2tleSI6Ijg2QkEwUHYwYXk4UmV5Wk4zeElYa2c9PSIsImlkIjoiZmM0OWI3MTEtMWNiNi00MGE3LTk4NDAtODNjNDFiNTViOTliIn0seyJlbmNyeXB0ZWRfa2V5IjoibUhBbERaa0NYQWpCR1pLR2h0Y3Zpdz09IiwiaWQiOiI0M2QwMjIwNC04NjA5LTRkNDYtOTlhYy00MjVhNWI0ODAwOTgifSx7ImVuY3J5cHRlZF9rZXkiOiJ3bWhjREdZcG84YlZBSit0OGF4SUZnPT0iLCJpZCI6IjRkNmU0OTZhLTFmOTgtNGVlOC04Zjg3LTRiMTAzYmQzOGQwZiJ9LHsiZW5jcnlwdGVkX2tleSI6Ik92cWF3Y0JVQVE3cHM2T0xhSnZPRmc9PSIsImlkIjoiYzRlMGQ5ZjctZDQ4Mi00MWMzLThjYmItOTdiMTEyZDcyZTY2In0seyJlbmNyeXB0ZWRfa2V5IjoiM3dTMkdpemxWcGtuNDlRRExxcFBhZz09IiwiaWQiOiIxYzJkZTFlNC1lZDMwLTQ0NTItYTExNS0wOTIzYjk0MGM0ZWQifSx7ImVuY3J5cHRlZF9rZXkiOiJTNWRGQ25yRUNjREswOEVreHllY3lRPT0iLCJpZCI6ImRjZjQzODVmLTM1MDUtNGZmNS1iMDU1LTQ2MWQ1YTA3ZjBmNSJ9LHsiZW5jcnlwdGVkX2tleSI6IlBnRUhyK0Nrd3JYTStlSWFnUnl4b3c9PSIsImlkIjoiZjMyNGYwNGUtN2M3My00ZjM3LTgxMzUtYzg5ZjhjNGU2Y2Y0In0seyJlbmNyeXB0ZWRfa2V5IjoiSkx6UUZGMXp4MFpZMzZYSTdaR0VaUT09IiwiaWQiOiI1Y2I1M2RkOC0xMjk0LTRjOGUtOTY0ZS0yNTg2OWQ1M2EyNGEifSx7ImVuY3J5cHRlZF9rZXkiOiJVOHBRdW1HUmtrTGppSEg1cjlqWGhnPT0iLCJpZCI6IjA1NjgyYTI2LTg4NzctNDZkMy05NDY1LTEwNGEzYTQwMDEwYSJ9LHsiZW5jcnlwdGVkX2tleSI6IlVJTDZKNGRzZEpGNi9tQTM1dHIvVFE9PSIsImlkIjoiYmNlNTM0MTAtM2IwYy00OTE0LTg3YTMtNzIzNjNjYTE3NTMxIn0seyJlbmNyeXB0ZWRfa2V5IjoiM3pCaW1Dc2NlMTV2YkV0Mm8zNEhhUT09IiwiaWQiOiI0ZjRmOGExYy0zMjAyLTQ2YWUtODA5ZS00ZmNmOTMzZWU2NTQifSx7ImVuY3J5cHRlZF9rZXkiOiJDVHdTU3RQMnV1QjVZdStNUGpZY29RPT0iLCJpZCI6Ijg1MmNkN2Y3LTQwZTktNDgyZC04MjI1LWRjYmM4ZTA4ZGI4YiJ9LHsiZW5jcnlwdGVkX2tleSI6Im1ubXRuUWVHYm0rZUEzN2t6dFovRVE9PSIsImlkIjoiZWZkZGI4ZWUtODI3OC00NDM2LWE2OTgtNzJiODAzZDA1MGRiIn0seyJlbmNyeXB0ZWRfa2V5Ijoib3BicXltZVRiT3VWalJnYjJHMHpVdz09IiwiaWQiOiJkNWJkYmE1My02MDZmLTRkNDYtODg4ZC1hMWViNDRjZDVmNDEifSx7ImVuY3J5cHRlZF9rZXkiOiJiSWRsOFhoVmdobmc4Tis4cUZVbFRnPT0iLCJpZCI6ImFlZDQ5NjA5LTUwOTktNDExOC05YjA4LWI5NTM4ZGIwMGMwYyJ9LHsiZW5jcnlwdGVkX2tleSI6Ikp1SS9UMSt5cUtzUU95MjZEbzRuZmc9PSIsImlkIjoiN2I1YzFlOWYtZjhiOC00OTkyLWFhM2UtYTA4NWZjMzY3MzExIn0seyJlbmNyeXB0ZWRfa2V5IjoiM2ladUZxalh3bzhiN1lkamxKZUVPUT09IiwiaWQiOiI1YmU0MGViZi0yZWE0LTQ5ZmItYjZlYy1iMDlkZTVhYjYxN2YifSx7ImVuY3J5cHRlZF9rZXkiOiJoQ3gybzJxQlJKL2hiZVNqKzY5dHF3PT0iLCJpZCI6ImU1MzBkZjFiLWZmN2UtNDJhNC1iNTNhLThkNmRlNjhmMDAxMCJ9LHsiZW5jcnlwdGVkX2tleSI6IjhveWlGM0pQTmdzd0tPajVrWjVIT0E9PSIsImlkIjoiYjk0OTg3NDUtODJlYS00ZmZhLWFiMmItZDczN2VmNTRmODYzIn0seyJlbmNyeXB0ZWRfa2V5IjoiTEs4TENTY28zQmZYZXhLMlh0WUZSQT09IiwiaWQiOiI0ZjUyOTc1Yi1lOWYzLTRmZDctYmI4OS00MDNiMjgwMGU4Y2YifV0sInR5cGUiOiJlbnRpdGxlbWVudF9tZXNzYWdlIn0sImNvbV9rZXlfaWQiOiJiMzM2NGViNS01MWY2LTRhZTMtOGM5OC0zM2NlZDVlMzFjNzgiLCJ2ZXJzaW9uIjoxfQ.kuZip7wOBZ6-FjAO_VcBq0r816426dFK4fTdfm99NqE" - } - } - } - }, - { - "name": "Complex multi-period with different content, clear", - "url": "https://media.axprod.net/TestVectors/v8-MultiContent/Clear/Manifest.mpd", - "moreInfo": "https://github.com/Axinom/dash-test-vectors" - } - ] - }, - { - "name": "Axinom Test Content (conservative/legacy)", - "submenu": [ - { - "name": "1080p with PlayReady and Widevine DRM, single key", - "url": "https://media.axprod.net/TestVectors/v6.1-MultiDRM/Manifest_1080p.mpd", - "protData": { - "com.widevine.alpha": { - "serverURL": "https://drm-widevine-licensing.axtest.net/AcquireLicense", - "httpRequestHeaders": { - "X-AxDRM-Message": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiNjllNTQwODgtZTllMC00NTMwLThjMWEtMWViNmRjZDBkMTRlIiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImtleXMiOlt7ImlkIjoiNmU1YTFkMjYtMjc1Ny00N2Q3LTgwNDYtZWFhNWQxZDM0YjVhIn1dfX0.yF7PflOPv9qHnu3ZWJNZ12jgkqTabmwXbDWk_47tLNE" - }, - "audioRobustness": "SW_SECURE_CRYPTO", - "videoRobustness": "SW_SECURE_DECODE" - }, - "com.microsoft.playready": { - "serverURL": "https://drm-playready-licensing.axtest.net/AcquireLicense", - "httpRequestHeaders": { - "X-AxDRM-Message": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiNjllNTQwODgtZTllMC00NTMwLThjMWEtMWViNmRjZDBkMTRlIiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImtleXMiOlt7ImlkIjoiNmU1YTFkMjYtMjc1Ny00N2Q3LTgwNDYtZWFhNWQxZDM0YjVhIn1dfX0.yF7PflOPv9qHnu3ZWJNZ12jgkqTabmwXbDWk_47tLNE" - } - } - }, - "moreInfo": "https://github.com/Axinom/dash-test-vectors/tree/conservative" - }, - { - "name": "1080p with PlayReady and Widevine DRM, multiple keys", - "url": "https://media.axprod.net/TestVectors/v6.1-MultiDRM-MultiKey/Manifest_1080p.mpd", - "protData": { - "com.widevine.alpha": { - "serverURL": "https://drm-widevine-licensing.axtest.net/AcquireLicense", - "httpRequestHeaders": { - "X-AxDRM-Message": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiNjllNTQwODgtZTllMC00NTMwLThjMWEtMWViNmRjZDBkMTRlIiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImtleXMiOlt7ImlkIjoiMTUzMGQzYTAtNjkwNC00NDZhLTkxYTEtMzNhMTE1YWE4YzQxIn0seyJpZCI6ImM4M2ViNjM5LWU2NjQtNDNmOC1hZTk4LTQwMzliMGMxM2IyZCJ9LHsiaWQiOiIzZDhjYzc2Mi0yN2FjLTQwMGYtOTg5Zi04YWI1ZGM3ZDc3NzUifSx7ImlkIjoiYmQ4ZGFkNTgtMDMyZC00YzI1LTg5ZmEtYzdiNzEwZTgyYWMyIn1dfX0.9t18lFmZFVHMzpoZxYDyqOS0Bk_evGhTBw_F2JnAK2k" - } - }, - "com.microsoft.playready": { - "serverURL": "https://drm-playready-licensing.axtest.net/AcquireLicense", - "httpRequestHeaders": { - "X-AxDRM-Message": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiNjllNTQwODgtZTllMC00NTMwLThjMWEtMWViNmRjZDBkMTRlIiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImtleXMiOlt7ImlkIjoiMTUzMGQzYTAtNjkwNC00NDZhLTkxYTEtMzNhMTE1YWE4YzQxIn0seyJpZCI6ImM4M2ViNjM5LWU2NjQtNDNmOC1hZTk4LTQwMzliMGMxM2IyZCJ9LHsiaWQiOiIzZDhjYzc2Mi0yN2FjLTQwMGYtOTg5Zi04YWI1ZGM3ZDc3NzUifSx7ImlkIjoiYmQ4ZGFkNTgtMDMyZC00YzI1LTg5ZmEtYzdiNzEwZTgyYWMyIn1dfX0.9t18lFmZFVHMzpoZxYDyqOS0Bk_evGhTBw_F2JnAK2k" - } - } - }, - "moreInfo": "https://github.com/Axinom/dash-test-vectors/tree/conservative" - }, - { - "name": "1080p without encryption", - "url": "https://media.axprod.net/TestVectors/v6.1-Clear/Manifest_1080p.mpd", - "moreInfo": "https://github.com/Axinom/dash-test-vectors/tree/conservative" - }, - { - "name": "2160p with PlayReady and Widevine DRM, single key", - "url": "https://media.axprod.net/TestVectors/v6.1-MultiDRM/Manifest.mpd", - "protData": { - "com.widevine.alpha": { - "serverURL": "https://drm-widevine-licensing.axtest.net/AcquireLicense", - "httpRequestHeaders": { - "X-AxDRM-Message": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiNjllNTQwODgtZTllMC00NTMwLThjMWEtMWViNmRjZDBkMTRlIiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImtleXMiOlt7ImlkIjoiNmU1YTFkMjYtMjc1Ny00N2Q3LTgwNDYtZWFhNWQxZDM0YjVhIn1dfX0.yF7PflOPv9qHnu3ZWJNZ12jgkqTabmwXbDWk_47tLNE" - } - }, - "com.microsoft.playready": { - "serverURL": "https://drm-playready-licensing.axtest.net/AcquireLicense", - "httpRequestHeaders": { - "X-AxDRM-Message": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiNjllNTQwODgtZTllMC00NTMwLThjMWEtMWViNmRjZDBkMTRlIiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImtleXMiOlt7ImlkIjoiNmU1YTFkMjYtMjc1Ny00N2Q3LTgwNDYtZWFhNWQxZDM0YjVhIn1dfX0.yF7PflOPv9qHnu3ZWJNZ12jgkqTabmwXbDWk_47tLNE" - } - } - }, - "moreInfo": "https://github.com/Axinom/dash-test-vectors/tree/conservative" - }, - { - "name": "2160p with PlayReady and Widevine DRM, multiple keys", - "url": "https://media.axprod.net/TestVectors/v6.1-MultiDRM-MultiKey/Manifest.mpd", - "protData": { - "com.widevine.alpha": { - "serverURL": "https://drm-widevine-licensing.axtest.net/AcquireLicense", - "httpRequestHeaders": { - "X-AxDRM-Message": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiNjllNTQwODgtZTllMC00NTMwLThjMWEtMWViNmRjZDBkMTRlIiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImtleXMiOlt7ImlkIjoiMTUzMGQzYTAtNjkwNC00NDZhLTkxYTEtMzNhMTE1YWE4YzQxIn0seyJpZCI6ImM4M2ViNjM5LWU2NjQtNDNmOC1hZTk4LTQwMzliMGMxM2IyZCJ9LHsiaWQiOiIzZDhjYzc2Mi0yN2FjLTQwMGYtOTg5Zi04YWI1ZGM3ZDc3NzUifSx7ImlkIjoiYmQ4ZGFkNTgtMDMyZC00YzI1LTg5ZmEtYzdiNzEwZTgyYWMyIn1dfX0.9t18lFmZFVHMzpoZxYDyqOS0Bk_evGhTBw_F2JnAK2k" - } - }, - "com.microsoft.playready": { - "serverURL": "https://drm-playready-licensing.axtest.net/AcquireLicense", - "httpRequestHeaders": { - "X-AxDRM-Message": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiNjllNTQwODgtZTllMC00NTMwLThjMWEtMWViNmRjZDBkMTRlIiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImtleXMiOlt7ImlkIjoiMTUzMGQzYTAtNjkwNC00NDZhLTkxYTEtMzNhMTE1YWE4YzQxIn0seyJpZCI6ImM4M2ViNjM5LWU2NjQtNDNmOC1hZTk4LTQwMzliMGMxM2IyZCJ9LHsiaWQiOiIzZDhjYzc2Mi0yN2FjLTQwMGYtOTg5Zi04YWI1ZGM3ZDc3NzUifSx7ImlkIjoiYmQ4ZGFkNTgtMDMyZC00YzI1LTg5ZmEtYzdiNzEwZTgyYWMyIn1dfX0.9t18lFmZFVHMzpoZxYDyqOS0Bk_evGhTBw_F2JnAK2k" - } - } - }, - "moreInfo": "https://github.com/Axinom/dash-test-vectors/tree/conservative" - }, - { - "name": "2160p without encryption", - "url": "https://media.axprod.net/TestVectors/v6.1-Clear/Manifest.mpd", - "moreInfo": "https://github.com/Axinom/dash-test-vectors/tree/conservative" - }, - { - "name": "Multi-period 1080p with PlayReady and Widevine DRM, multiple keys", - "url": "https://media.axprod.net/TestVectors/v6.1-MultiDRM-MultiKey-MultiPeriod/Manifest_1080p.mpd", - "protData": { - "com.widevine.alpha": { - "serverURL": "https://drm-widevine-licensing.axtest.net/AcquireLicense", - "httpRequestHeaders": { - "X-AxDRM-Message": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiNjllNTQwODgtZTllMC00NTMwLThjMWEtMWViNmRjZDBkMTRlIiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImtleXMiOlt7ImlkIjoiNTNiZTc3NTctNzI4OC00YjZiLWIyMGEtZjA1YjY0YTRlZjc5In0seyJpZCI6IjBlZDgyMWE4LTgwZWQtNDBhYy1hODA0LTkyN2M5ZmRhZGJlOSJ9LHsiaWQiOiJlNDdkNzhjYS05NGRjLTQ1ZmItOWUzZC0yYTc3M2FlZjc0YjIifSx7ImlkIjoiMzJhMTQxZTktMjNhYi00NGZmLWE2YzctNTM0OWM4OTQ1MWNmIn0seyJpZCI6IjhkMDkxOTY2LTQ0YjUtNGNmOC04YTQ1LWVkMTJmZGIxOGQzNSJ9XX19.9YSK6QsDr4SYR7Q74ftq9mVtsT0ZkP3STE0zI-3mVIA" - } - }, - "com.microsoft.playready": { - "serverURL": "https://drm-playready-licensing.axtest.net/AcquireLicense", - "httpRequestHeaders": { - "X-AxDRM-Message": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiNjllNTQwODgtZTllMC00NTMwLThjMWEtMWViNmRjZDBkMTRlIiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImtleXMiOlt7ImlkIjoiNTNiZTc3NTctNzI4OC00YjZiLWIyMGEtZjA1YjY0YTRlZjc5In0seyJpZCI6IjBlZDgyMWE4LTgwZWQtNDBhYy1hODA0LTkyN2M5ZmRhZGJlOSJ9LHsiaWQiOiJlNDdkNzhjYS05NGRjLTQ1ZmItOWUzZC0yYTc3M2FlZjc0YjIifSx7ImlkIjoiMzJhMTQxZTktMjNhYi00NGZmLWE2YzctNTM0OWM4OTQ1MWNmIn0seyJpZCI6IjhkMDkxOTY2LTQ0YjUtNGNmOC04YTQ1LWVkMTJmZGIxOGQzNSJ9XX19.9YSK6QsDr4SYR7Q74ftq9mVtsT0ZkP3STE0zI-3mVIA" - } - } - }, - "moreInfo": "https://github.com/Axinom/dash-test-vectors/tree/conservative" - }, - { - "name": "Multi-period 1080p without encryption", - "url": "https://media.axprod.net/TestVectors/v6.1-Clear/MultiPeriod_Manifest_1080p.mpd", - "moreInfo": "https://github.com/Axinom/dash-test-vectors/tree/conservative" - }, - { - "name": "Multi-period 2160p with PlayReady and Widevine DRM, multiple keys", - "url": "https://media.axprod.net/TestVectors/v6.1-MultiDRM-MultiKey-MultiPeriod/Manifest.mpd", - "protData": { - "com.widevine.alpha": { - "serverURL": "https://drm-widevine-licensing.axtest.net/AcquireLicense", - "httpRequestHeaders": { - "X-AxDRM-Message": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiNjllNTQwODgtZTllMC00NTMwLThjMWEtMWViNmRjZDBkMTRlIiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImtleXMiOlt7ImlkIjoiNTNiZTc3NTctNzI4OC00YjZiLWIyMGEtZjA1YjY0YTRlZjc5In0seyJpZCI6IjBlZDgyMWE4LTgwZWQtNDBhYy1hODA0LTkyN2M5ZmRhZGJlOSJ9LHsiaWQiOiJlNDdkNzhjYS05NGRjLTQ1ZmItOWUzZC0yYTc3M2FlZjc0YjIifSx7ImlkIjoiMzJhMTQxZTktMjNhYi00NGZmLWE2YzctNTM0OWM4OTQ1MWNmIn0seyJpZCI6IjhkMDkxOTY2LTQ0YjUtNGNmOC04YTQ1LWVkMTJmZGIxOGQzNSJ9XX19.9YSK6QsDr4SYR7Q74ftq9mVtsT0ZkP3STE0zI-3mVIA" - } - }, - "com.microsoft.playready": { - "serverURL": "https://drm-playready-licensing.axtest.net/AcquireLicense", - "httpRequestHeaders": { - "X-AxDRM-Message": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiNjllNTQwODgtZTllMC00NTMwLThjMWEtMWViNmRjZDBkMTRlIiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImtleXMiOlt7ImlkIjoiNTNiZTc3NTctNzI4OC00YjZiLWIyMGEtZjA1YjY0YTRlZjc5In0seyJpZCI6IjBlZDgyMWE4LTgwZWQtNDBhYy1hODA0LTkyN2M5ZmRhZGJlOSJ9LHsiaWQiOiJlNDdkNzhjYS05NGRjLTQ1ZmItOWUzZC0yYTc3M2FlZjc0YjIifSx7ImlkIjoiMzJhMTQxZTktMjNhYi00NGZmLWE2YzctNTM0OWM4OTQ1MWNmIn0seyJpZCI6IjhkMDkxOTY2LTQ0YjUtNGNmOC04YTQ1LWVkMTJmZGIxOGQzNSJ9XX19.9YSK6QsDr4SYR7Q74ftq9mVtsT0ZkP3STE0zI-3mVIA" - } - } - }, - "moreInfo": "https://github.com/Axinom/dash-test-vectors/tree/conservative" - }, - { - "name": "Multi-period 2160p without encryption", - "url": "https://media.axprod.net/TestVectors/v6.1-Clear/MultiPeriod_Manifest.mpd", - "moreInfo": "https://github.com/Axinom/dash-test-vectors/tree/conservative" - } - ] - }, - { - "name": "BBC R&D Test Content", - "submenu": [ - { - "name": "BBC R&D Testcard", - "url": "http://rdmedia.bbc.co.uk/dash/ondemand/testcard/1/client_manifest-events.mpd", - "moreInfo": "http://rdmedia.bbc.co.uk/dash/ondemand/testcard/" - }, - { - "name": "BBC R&D EBU-TT-D Subtitling Test", - "url": "http://rdmedia.bbc.co.uk/dash/ondemand/elephants_dream/1/client_manifest-all.mpd", - "moreInfo": "http://rdmedia.bbc.co.uk/dash/ondemand/elephants_dream/" - } - ] - }, - { - "name": "Microsoft Test Content", - "submenu": [ - { - "name": "Microsoft AZURE MEDIA SERVICES ON DEMAND H264 AAC 4K CENC PLAYREADY 2.0", - "url": "http://profficialsite.origin.mediaservices.windows.net/c51358ea-9a5e-4322-8951-897d640fdfd7/tearsofsteel_4k.ism/manifest(format=mpd-time-csf)", - "protData": { - "com.microsoft.playready": { - "serverURL": "http://test.playready.microsoft.com/service/rightsmanager.asmx" - } - } - }, - { - "name": "Source: XBox One commercial video", - "url": "http://profficialsite.origin.mediaservices.windows.net/9cc5e871-68ec-42c2-9fc7-fda95521f17d/dayoneplayready.ism/manifest(format=mpd-time-csf)", - "protData": { - "com.microsoft.playready": { - "serverURL": "http://test.playready.microsoft.com/service/rightsmanager.asmx" - } - } - }, - { - "name": "AZURE MEDIA SERVICES LIVE PLAYREADY 2.0", - "url": "http://profficialsite.origin.mediaservices.windows.net/9cc5e871-68ec-42c2-9fc7-fda95521f17d/dayoneplayready.ism/manifest(format=mpd-time-csf)", - "protData": { - "com.microsoft.playready": { - "serverURL": "http://test.playready.microsoft.com/service/rightsmanager.asmx" - } - } - } - ] - }, - { - "name": "Wowza Test Content", - "submenu": [ - { - "name": "Clear Dynamic SegmentTimeline", - "url": "http://wowzaec2demo.streamlock.net/live/bigbuckbunny/manifest_mvtime.mpd" - }, - { - "name": "Clear Dynamic SegmentTemplate", - "url": "http://wowzaec2demo.streamlock.net/live/bigbuckbunny/manifest_mvnumber.mpd" - }, - { - "name": "Clear Dynamic SegmentList", - "url": "http://wowzaec2demo.streamlock.net/live/bigbuckbunny/manifest_mvlist.mpd" - }, - { - "name": "Clear Static SegmentTimeline", - "url": "http://wowzaec2demo.streamlock.net/vod/_definst_/ElephantsDream/smil:ElephantsDream.smil/manifest_mvtime.mpd" - }, - { - "name": "Clear Static SegmentTemplate", - "url": "http://wowzaec2demo.streamlock.net/vod/_definst_/ElephantsDream/smil:ElephantsDream.smil/manifest_mvnumber.mpd" - }, - { - "name": "Clear Static SegmentList", - "url": "http://wowzaec2demo.streamlock.net/vod/_definst_/ElephantsDream/smil:ElephantsDream.smil/manifest_mvlist.mpd" - }, - { - "name": "Widevine Dynamic SegmentTimeline", - "url": "http://wowzaec2demo.streamlock.net/live/bigbuckbunny-enc-wv.stream/manifest_mvtime.mpd", - "protData": { - "com.widevine.alpha": { - "serverURL": "http://widevine-proxy.appspot.com/proxy" - } - } - }, - { - "name": "Widevine Dynamic SegmentTemplate", - "url": "http://wowzaec2demo.streamlock.net/live/bigbuckbunny-enc-wv.stream/manifest_mvnumber.mpd", - "protData": { - "com.widevine.alpha": { - "serverURL": "http://widevine-proxy.appspot.com/proxy" - } - } - }, - { - "name": "Widevine Dynamic SegmentList", - "url": "http://wowzaec2demo.streamlock.net/live/bigbuckbunny-enc-wv.stream/manifest_mvlist.mpd", - "protData": { - "com.widevine.alpha": { - "serverURL": "http://widevine-proxy.appspot.com/proxy" - } - } - }, - { - "name": "Widevine Static SegmentTimeline", - "url": "http://wowzaec2demo.streamlock.net/vod/elephantsdream_1100kbps-enc-wv.mp4/manifest_mvtime.mpd", - "protData": { - "com.widevine.alpha": { - "serverURL": "http://widevine-proxy.appspot.com/proxy" - } - } - }, - { - "name": "Widevine Static SegmentTemplate", - "url": "http://wowzaec2demo.streamlock.net/vod/elephantsdream_1100kbps-enc-wv.mp4/manifest_mvnumber.mpd", - "protData": { - "com.widevine.alpha": { - "serverURL": "http://widevine-proxy.appspot.com/proxy" - } - } - }, - { - "name": "Widevine Static SegmentList", - "url": "http://wowzaec2demo.streamlock.net/vod/elephantsdream_1100kbps-enc-wv.mp4/manifest_mvlist.mpd ", - "protData": { - "com.widevine.alpha": { - "serverURL": "http://widevine-proxy.appspot.com/proxy" - } - } - } - ] - }, - { - "name": "D-DASH Test Content", - "submenu": [ - { - "name": "D-Dash #1", - "url": "http://www-itec.uni-klu.ac.at/dash/ddash/mpdGenerator.php?segmentlength=2&type=full" - }, - { - "name": "D-Dash #2", - "url": "http://www-itec.uni-klu.ac.at/dash/ddash/mpdGenerator.php?segmentlength=4&type=full" - }, - { - "name": "D-Dash #3", - "url": "http://www-itec.uni-klu.ac.at/dash/ddash/mpdGenerator.php?segmentlength=6&type=full" - }, - { - "name": "D-Dash #4", - "url": "http://www-itec.uni-klu.ac.at/dash/ddash/mpdGenerator.php?segmentlength=8&type=full" - }, - { - "name": "D-Dash #5", - "url": "http://www-itec.uni-klu.ac.at/dash/ddash/mpdGenerator.php?segmentlength=10&type=full" - }, - { - "name": "D-Dash #6", - "url": "http://www-itec.uni-klu.ac.at/dash/ddash/mpdGenerator.php?segmentlength=15&type=full" - } - ] - }, - { - "name": "Other samples", - "submenu": [ - { - "name": "4K", - "url": "https://dash.akamaized.net/akamai/streamroot/050714/Spring_4Ktest.mpd" - }, - { - "name": "Segment List", - "url": "http://www.digitalprimates.net/dash/streams/gpac/mp4-main-multi-mpd-AV-NBS.mpd" - }, - { - "name": "Segment Template", - "url": "http://www.digitalprimates.net/dash/streams/mp4-live-template/mp4-live-mpd-AV-BS.mpd" - }, - { - "name": "Unified Streaming - Timeline", - "url": "http://demo.unified-streaming.com/video/ateam/ateam.ism/ateam.mpd" - }, - { - "name": "Unified Streaming Live", - "url": "https://live.unified-streaming.com/smptebitc/smptebitc.isml/.mpd" - }, - { - "name": "Unified Streaming (Widevine, persistent)", - "url": "http://demo.unified-streaming.com/video/tears-of-steel/tears-of-steel-dash-widevine.ism/.mpd", - "protData": { - "com.widevine.alpha": { - "serverURL": "https://cwip-shaka-proxy.appspot.com/no_auth", - "sessionType": "persistent-license" - } - } - } - ] - }, - { - "name": "Smooth Streaming", - "submenu": [ - { - "url": "http://2is7server2.rd.francetelecom.com/hasplayer/VOD_1/VOD_1.ism/manifest", - "name": "Prince Of Persia" - }, - { - "url": "http://2is7server2.rd.francetelecom.com/hasplayer/LIVE_1.isml/manifest", - "name": "Prince Of Persia - Live", - "bufferConfig" : { - "liveDelay": 16, - "stableBufferTime": 16, - "bufferTimeAtTopQuality": 16, - "bufferTimeAtTopQualityLongForm": 16 - } - }, - { - "url": "http://2is7server1.rd.francetelecom.com/C4/C4-50_TVApp2.isml/Manifest", - "name": "Arte (subtitles)", - "bufferConfig" : { - "liveDelay": 16, - "stableBufferTime": 16, - "bufferTimeAtTopQuality": 16, - "bufferTimeAtTopQualityLongForm": 16 - } - }, - { - "url": "http://2is7server1.rd.francetelecom.com/VOD/BBB-SD/big_buck_bunny_1080p_stereo.ism/Manifest", - "name": "Big Buck Bunny" - }, - { - "url": "http://playready.directtaps.net/smoothstreaming/SSWSS720H264/SuperSpeedway_720.ism/Manifest", - "name": "Super Speedway" - }, - { - "url": "http://playready.directtaps.net/smoothstreaming/SSWSS720H264PR/SuperSpeedway_720.ism/Manifest", - "name": "Super Speedway + PlayReady DRM" - } - ] - } - ] -} diff --git a/samples/offline/index.html b/samples/offline/index.html index 33bec65085..a70c377fd5 100644 --- a/samples/offline/index.html +++ b/samples/offline/index.html @@ -313,7 +313,7 @@
-

Downloads

+

Records

No available offline streams

@@ -340,20 +340,33 @@