Samsung Smart TV транслирует MPEG DASH с функцией воспроизведения

#video-streaming #samsung-smart-tv #drm #mpeg-dash #playready

#потоковое видео #samsung-smart-tv #drm #mpeg-dash #готовность к воспроизведению

Вопрос:

Я пытаюсь воспроизвести потоковую передачу (MPEG-DASH с PlayReady) на телевизоре Orsay (Samsung TV до Tizen). Незашифрованный DASH работает нормально. Я пытаюсь приобрести лицензию строго в соответствии с руководством DRM Today (это мой поставщик DRM), но воспроизведение не запускается, и через некоторое время я получаю ошибку рендеринга или поток вообще отсутствует. Пользовательские данные генерируются в соответствии со спецификацией поставщика DRM и работают на других платформах и устройствах. Из-за руководства поставщика DRM base64 хэшируется в customDataBase64.

 <object id="pluginPlayerSef" classid="clsid:SAMSUNG-INFOLINK-SEF" style="border:none; width:0px;height:0px;"></object>
<object id="pluginDRM" classid="clsid:SAMSUNG-INFOLINK-SEF"></object>

var playerPlugin = document.getElementById("pluginPlayerSef");
var streamUrl = '...'   '|COMPONENT=HAS';
var laUrl = 'https://.../RightsManager.asmx';
var customData = {'userId': '...', 'sessionId': '...', 'merchant': '...'};
var customDataBase64 = 'eyJ1c2...';

var xmlData = '<?xml version='1.0' encoding='utf-8'?>'  
'<PlayReadyInitiator xmlns='http://schemas.microsoft.com/DRM/2007/03/protocols/'>'  
    '<LicenseServerUriOverride>'  
        '<LA_URL>'   laUrl   '</LA_URL>'  
    '</LicenseServerUriOverride>'  
    '<SetCustomData>'  
        '<CustomData>'   customDataBase64   '</CustomData>'  
    '</SetCustomData>'  
'</PlayReadyInitiator>';

playerPlugin.Execute("InitPlayer", streamUrl);
playerPlugin.Execute("SetPlayerProperty", 3, customDataBase64, customDataBase64.length);
playerPlugin.Execute("SetPlayerProperty", 4, laUrl, laUrl.length);
playerPlugin.Execute('StartPlayback', 0);                  
  

И я попробовал также другой способ реализовать это:

 var pluginDRM = document.getElementById("pluginDRM");
pluginDRM.Open("PlayReadyDrm", "1.000", "PlayReadyDrm");
pluginDRM.Execute("ProcessInitiatorsFromXml", xmlData, xmlData.length);
pluginDRM.Execute("Start", streamUrl);  
playerPlugin.Execute("InitPlayer", streamUrl);
playerPlugin.Execute('StartPlayback', 0);
  

Я пробовал приведенный выше код с подключаемым модулем line pluginDRM и без него.Выполнить («Пуск», streamUrl)

Что касается компонентов, приведенных выше, я перепробовал все эти:

 var streamUrl = '...'   '|COMPONENT=HAS';
var streamUrl = '...'   '|COMPONENT=WMDRM';
var streamUrl = '...'   '|COMPONENT=HAS|DRM_TYPE=PLAYREADY';
var streamUrl = '...'   '|COMPONENT=HAS|DRM_TYPE=WMDRM';    
  

Что я делаю не так? Пожалуйста, помогите.