#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';
Что я делаю не так? Пожалуйста, помогите.