videojs / videojs-contrib-dash

Video.js plugin for supporting the MPEG-DASH playback through a video.js player
https://videojs.github.io/videojs-contrib-dash/
Apache License 2.0
294 stars 129 forks source link

Drm playback failure on Samsung Tizen 2018 TV model #376

Open krackjack234 opened 2 years ago

krackjack234 commented 2 years ago

Description

We are trying to play Dash+Widevine contents on Samsung Tizen 2018 TV model. Here the playback is failing randomly with the ProtectionContoller module throwing Access Denied error.

Steps to reproduce

Explain in detail the exact steps necessary to reproduce the issue.

  1. Play a Dash + Widevine content

Results

Expected

Content should Play

Actual

Content plays for a few secs and then a Drm error is thrown

Error output

[1412][Stream] DRM: KeySystem Access Denied! -- Error selecting key system! -- Error selecting keys system (com.widevine.alpha)! Could not create MediaKeys -- TODO

Additional Information

Please include any additional information necessary here. Including the following:

versions

videojs

Dash.js version:4.4.0

browsers

Samsung Tizen

OSes

Tizen

plugins

VideoJS Contrib Dash: 2.11.0

logs

logixvideoplayerlib.js:156861 initDrmEngine --
logixvideoplayerlib.js:165395 license ++++++++++ https://test.com/wvproxy?videoid=2000553617&vootid=1390338&isVoot…SWdUV0Z1WTJobGMzUmxjakVKSU8ifQ.FPcE0ljUS4iY4g3fKqEA4zVlXvFhCEGLCAnWAtD8dgk
logixvideoplayerlib.js:156781 DRM Engine Initalize plugin success => success
(anonymous) @ logixvideoplayerlib.js:156781
logixvideoplayerlib.js:158921 keySystems  [{"uuid":"9a04f079-9840-4286-ab92-e65be0885f95","schemeIdURI":"urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95","systemString":"com.microsoft.playready"},{"uuid":"edef8ba9-79d6-4ace-a3c8-27dcd51d21ed","schemeIdURI":"urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed","systemString":"com.widevine.alpha"},{"uuid":"e2719d58-a985-b3c9-781a-b030af78d30e","schemeIdURI":"urn:uuid:e2719d58-a985-b3c9-781a-b030af78d30e","systemString":"org.w3.clearkey"},{"uuid":"1077efec-c0b2-4d02-ace3-3c1e52e2fb4b","schemeIdURI":"urn:uuid:1077efec-c0b2-4d02-ace3-3c1e52e2fb4b","systemString":"org.w3.clearkey"}]
logixvideoplayerlib.js:158926 filtered keySystem : [{"uuid":"9a04f079-9840-4286-ab92-e65be0885f95","schemeIdURI":"urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95","systemString":"com.microsoft.playready"},{"uuid":"edef8ba9-79d6-4ace-a3c8-27dcd51d21ed","schemeIdURI":"urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed","systemString":"com.widevine.alpha"},{"uuid":"e2719d58-a985-b3c9-781a-b030af78d30e","schemeIdURI":"urn:uuid:e2719d58-a985-b3c9-781a-b030af78d30e","systemString":"org.w3.clearkey"},{"uuid":"1077efec-c0b2-4d02-ace3-3c1e52e2fb4b","schemeIdURI":"urn:uuid:1077efec-c0b2-4d02-ace3-3c1e52e2fb4b","systemString":"org.w3.clearkey"}]
logixvideoplayerlib.js:158935 set keysytem:  [{"uuid":"edef8ba9-79d6-4ace-a3c8-27dcd51d21ed","schemeIdURI":"urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed","systemString":"com.widevine.alpha"}]
logixvideoplayerlib.js:83943 Settings parameter streaming.flushBufferAtTrackSwitch is not supported
logixvideoplayerlib.js:83943 Settings parameter streaming.reuseExistingSourceBuffers is not supported
logixvideoplayerlib.js:82484 [35] Stopping the gap controller 
logixvideoplayerlib.js:82484 [47][MediaPlayer] [dash.js 4.4.0] MediaPlayer has been initialized 
logixvideoplayerlib.js:82484 [52][MediaPlayer] Streaming Initialized 
logixvideoplayerlib.js:82484 [61][EventController] Start Event Controller 
logixvideoplayerlib.js:82484 [74][MediaPlayer] Playback Initialized 
logixvideoplayerlib.js:82484 [183][DashParser] Parsing complete: ( xml2json: 32.5ms, objectiron: 1.17ms, total: 0.0337s) 
logixvideoplayerlib.js:82484 [188][StreamController] Manifest updated... updating data system wide. 
logixvideoplayerlib.js:82484 [196][ManifestUpdater] Manifest has been refreshed at Fri Nov 04 2022 11:54:47 GMT+0530 (IST)[1667543087.293]  
logixvideoplayerlib.js:82484 [209][GapController] Starting the gap controller 
logixvideoplayerlib.js:82484 [210][StreamController] Switch to stream 0. Seektime is 0, current playback time is null. Seamless period switch is set to false 
logixvideoplayerlib.js:82484 [214][StreamController] MediaSource attached to element.  Waiting on open... 
logixvideoplayerlib.js:82484 [400][StreamController] MediaSource is open! 
logixvideoplayerlib.js:82484 [402][MediaSourceController] Set MediaSource duration:3882.49609375 
logixvideoplayerlib.js:82484 [415][DOMStorage] Last saved bitrate for video was 92258 
logixvideoplayerlib.js:82484 [423][SegmentBaseLoader] Perform SIDX load for type video : https://test.akamaized.net/content/entry/wvdata/90/55/5a4b5d00596911edb3e2d30fb91f7d73_248_v.mp4 with range 1110 - 5809 
logixvideoplayerlib.js:82484 [433][SegmentBaseLoader] Perform SIDX load for type video : https://test.akamaized.net/content/entry/wvdata/90/55/5a4b5d00596911edb3e2d30fb91f7d73_464_v.mp4 with range 1110 - 5809 
logixvideoplayerlib.js:82484 [441][SegmentBaseLoader] Perform SIDX load for type video : https://test.akamaized.net/content/entry/wvdata/90/55/5a4b5d00596911edb3e2d30fb91f7d73_696_v.mp4 with range 1110 - 5809 
logixvideoplayerlib.js:82484 [449][SegmentBaseLoader] Perform SIDX load for type video : https://test.akamaized.net/content/entry/wvdata/90/55/5a4b5d00596911edb3e2d30fb91f7d73_896_v.mp4 with range 1146 - 5845 
logixvideoplayerlib.js:82484 [456][SegmentBaseLoader] Perform SIDX load for type video : https://test.akamaized.net/content/entry/wvdata/90/55/5a4b5d00596911edb3e2d30fb91f7d73_1328_v.mp4 with range 1112 - 5811 
logixvideoplayerlib.js:82484 [465][SegmentBaseLoader] Perform SIDX load for type video : https://test.akamaized.net/content/entry/wvdata/90/55/5a4b5d00596911edb3e2d30fb91f7d73_2492_v.mp4 with range 1114 - 5813 
logixvideoplayerlib.js:82484 [472][SegmentBaseLoader] Perform SIDX load for type video : https://test.akamaized.net/content/entry/wvdata/90/55/5a4b5d00596911edb3e2d30fb91f7d73_4192_v.mp4 with range 1116 - 5815 
logixvideoplayerlib.js:82484 [486][SegmentBaseLoader] Perform SIDX load for type audio : https://test.akamaized.net/content/entry/wvdata/90/55/5a4b5d00596911edb3e2d30fb91f7d73_464_a.mp4 with range 942 - 5641 
logixvideoplayerlib.js:82484 [491][Stream] No text data. 
logixvideoplayerlib.js:82484 [494][Stream] No muxed data. 
logixvideoplayerlib.js:82484 [496][Stream] No image data. 
logixvideoplayerlib.js:82484 [502][SourceBufferSink][video] Updated append window for video. Set start to 0 and end to 3882.5060900000003 
logixvideoplayerlib.js:82484 [515][SourceBufferSink][audio] Updated append window for audio. Set start to 0 and end to 3882.5060900000003 
logixvideoplayerlib.js:82484 [560][SegmentBaseLoader] Parsing segments from SIDX. representation video - id: 6 for range : 1110 - 5809 
logixvideoplayerlib.js:82484 [589][SegmentBaseLoader] Parsing segments from SIDX. representation video - id: 2 for range : 1110 - 5809 
logixvideoplayerlib.js:82484 [631][SegmentBaseLoader] Parsing segments from SIDX. representation video - id: 8 for range : 1146 - 5845 
logixvideoplayerlib.js:82484 [650][SegmentBaseLoader] Parsing segments from SIDX. representation video - id: 4 for range : 1110 - 5809 
logixvideoplayerlib.js:82484 [678][SegmentBaseLoader] Parsing segments from SIDX. representation video - id: 10 for range : 1112 - 5811 
logixvideoplayerlib.js:82484 [722][SegmentBaseLoader] Parsing segments from SIDX. representation video - id: 14 for range : 1116 - 5815 
logixvideoplayerlib.js:82484 [736][SegmentBaseLoader] Parsing segments from SIDX. representation video - id: 12 for range : 1114 - 5813 
logixvideoplayerlib.js:82484 [744][AbrController] Stream ID: 0 [video] switch from 0 to 2/6 (buffer: 0) . 
logixvideoplayerlib.js:82484 [747][StreamProcessor][video] Preparing quality switch for type video 
logixvideoplayerlib.js:82484 [750][FragmentModel][video] abort requests 
logixvideoplayerlib.js:82484 [780][SegmentBaseLoader] Parsing segments from SIDX. representation audio - id: 5 for range : 942 - 5641 
logixvideoplayerlib.js:82484 [801][ScheduleController][video] Quality has changed, get init request for representationid = 6 
logixvideoplayerlib.js:82484 [875][BufferController][video] Append Init fragment video  with representationId: 6  and quality: 2 , data size: 1110 
logixvideoplayerlib.js:82484 [878][StreamProcessor][video] OnFragmentLoadingCompleted for stream id 0 and media type video - Url: https://test.akamaized.net/content/entry/wvdata/90/55/5a4b5d00596911edb3e2d30fb91f7d73_696_v.mp4 , Range:0-1109 
logixvideoplayerlib.js:82484 [884][ProtectionController] DRM: onNeedKey 
logixvideoplayerlib.js:82484 [885][ProtectionController] DRM: initData: ���-pssh����íï�©yÖJΣÈ'ÜÕ�!í���
"� �U6�HãÜ��� 
logixvideoplayerlib.js:82484 [888][ProtectionModel_21Jan2015] Requesting key system access for system string com.widevine.alpha 
logixvideoplayerlib.js:121254 It is recommended that a robustness level be specified. Not specifying the robustness level could result in unexpected behavior in the future, potentially including failure to play.
logixvideoplayerlib.js:82484 [895][ProtectionController] DRM: KeySystem Access Granted for system string (com.widevine.alpha)!  Selecting key system... 
logixvideoplayerlib.js:82484 [897][ScheduleController][video] Appended bytes for video and stream id 0 
logixvideoplayerlib.js:82484 [899][ScheduleController][video] [video] lastInitializedRepresentationInfo changed to 2 
logixvideoplayerlib.js:82484 [913][ScheduleController][video] Top quality video index has changed from NaN to 6 
logixvideoplayerlib.js:82484 [914][ScheduleController][video] Media segment needed for video and stream id 0 
logixvideoplayerlib.js:82484 [916][DashHandler][video] Index for time 0 is 0 
logixvideoplayerlib.js:82484 [918][StreamProcessor][video] Next fragment request url for stream id 0 and media type video is https://test.akamaized.net/content/entry/wvdata/90/55/5a4b5d00596911edb3e2d30fb91f7d73_696_v.mp4 
logixvideoplayerlib.js:155518 this.dashError :  Object {error: DashJSError, type: "error"}
logixvideoplayerlib.js:82484 [1412][Stream] DRM: KeySystem Access Denied! -- Error selecting key system! -- Error selecting keys system (com.widevine.alpha)! Could not create MediaKeys -- TODO 
AkashYadav00 commented 1 year ago

Hi any update on this? Were you able to make it work?

damanV5 commented 1 year ago

Any update ?

JESUSMHG commented 3 months ago

Hi,

I have similar issue. Dash.js try to load playready drm but we need to use widevine DRM system.

[XHR] POST http://override.in.client/ 0 () DRM: licenser error! --com.microsoft.playready update, XHR error. status is "" (0), readyState is 4

Our DRM configuration is the following key system configuration:


"com.widevine.alpha": {
                      "serverURL": widevine.licenseServerUrl,
                      "httpRequestHeaders": {
                          "nv-authorizations": DRMController.getAuthToken()
                      }
                  }   

In addition, this configuration works in Chrome devices but not in chromium.

Thanks, Jesús Martínez