Media Services v3 مع نظرة عامة على قالب ترخيص Widevine
تمكّنك Azure Media Services من تشفير المحتوى الخاص بك باستخدام Google Widevine. توفر Media Services أيضاً خدمة لتقديم تراخيص Widevine. يمكنك استخدام واجهات برمجة تطبيقات Azure Media Services لتكوين تراخيص Widevine. عندما يحاول أحد اللاعبين تشغيل المحتوى المحمي بواسطة Widevine، يتم إرسال طلب إلى خدمة تسليم الترخيص للحصول على الترخيص. إذا وافقت خدمة الترخيص على الطلب، تقوم الخدمة بإصدار الترخيص. يتم إرساله إلى العميل ويتم استخدامه لفك تشفير المحتوى المحدد وتشغيله.
ملاحظة
Widevine غير متوفر في منطقة GovCloud.
تم تنسيق طلب ترخيص Widevine كرسالة JSON.
{
"payload":"<license challenge>",
"content_id": "<content id>"
"provider": "<provider>"
"allowed_track_types":"<types>",
"content_key_specs":[
{
"track_type":"<track type 1>"
},
{
"track_type":"<track type 2>"
},
…
],
"policy_overrides":{
"can_play":<can play>,
"can persist":<can persist>,
"can_renew":<can renew>,
"rental_duration_seconds":<rental duration>,
"playback_duration_seconds":<playback duration>,
"license_duration_seconds":<license duration>,
"renewal_recovery_duration_seconds":<renewal recovery duration>,
"renewal_server_url":"<renewal server url>",
"renewal_delay_seconds":<renewal delay>,
"renewal_retry_interval_seconds":<renewal retry interval>,
"renew_with_usage":<renew with usage>
}
}
ملاحظة
يمكنك إنشاء رسالة فارغة من دون قيم، فقط "{}". ثم يتم إنشاء قالب الترخيص مع الافتراضيات. يعمل الافتراضي لمعظم الحالات. يجب أن تستخدم سيناريوهات تسليم الترخيص المستندة إلى Microsoft الإعدادات الافتراضية دائمًا. إذا كنت بحاجة إلى تعيين قيمتي "provider" و"content_id"، فيجب أن يتطابق الموفر مع بيانات اعتماد Widevine.
رسالة JSON
الاسم | القيمة | الوصف |
---|---|---|
payload | سلسلة بترميز Base64 | طلب الترخيص المرسل من قِبَل العميل. |
content_id | سلسلة بترميز Base64 | المعرف المستخدم لاشتقاق معرّف المفتاح ومفتاح المحتوى لكل content_key_specs.track_type. |
الموفر | سلسلة | تُستخدم للبحث عن مفاتيح المحتوى والنُهج. إذا تم استخدام تسليم مفتاح Microsoft لتسليم ترخيص Widevine، فسيتم تجاهل هذه المعلمة. |
policy_name | سلسلة | اسم وثيقة مسجلة سابقا. اختياري. |
allowed_track_types | enum | SD_ONLY أو SD_HD. يتحكم في تحديد مفاتيح المحتوى المضمنة في الترخيص. |
content_key_specs | صفيف من هياكل JSON، راجع قسم "المواصفات الرئيسية للمحتوى". | تحكم أدق حول مفاتيح المحتوى التي يجب إرجاعها. لمزيد من المعلومات، راجع قسم "مواصفات مفتاح المحتوى". يمكن تحديد واحد فقط من قيم allowed_track_types وcontent_key_specs. |
use_policy_overrides_exclusively | Boolean أو true أو false | استخدم سمات النهج المحددة بواسطة policy_overrides، واحذف كل النُهج المخزنة مسبقًا. |
policy_overrides | بنية JSON، راجع قسم "تجاوزات النهج" | إعدادات النهج لهذا الترخيص. في حالة وجود نهج محددة مسبقًا لهذا الأصل، يتم استخدام هذه القيم المحددة. |
session_init | بنية JSON، راجع قسم "تهيئة الجلسة". | يتم تمرير البيانات الاختيارية إلى الترخيص. |
parse_only | Boolean أو true أو false | تم تحليل طلب الترخيص، ولكن لم يتم إصدار أي ترخيص. ومع ذلك، يتم إرجاع القيم من طلب الترخيص في الاستجابة. |
المواصفات الرئيسية للمحتوى
في حالة وجود نهج موجودة مسبقاً، فلا داعي لتحديد أي من القيم في مواصفات مفتاح المحتوى. تُستخدم النهج الموجودة مسبقاً المرتبطة بهذا المحتوى لتحديد حماية المخرجات، مثل حماية المحتوى الرقمي ذي النطاق الترددي العالي (HDCP) ونظام إدارة النسخ العام (CGMS). إذا لم يتم تسجيل نهج موجودة مسبقاً في خادم ترخيص Widevine، فيمكن لموفر المحتوى إدخال القيم في طلب الترخيص.
يجب تحديد كل قيمة content_key_specs لجميع المسارات، بغض النظر عن خيار use_policy_overrides_exclusively.
الاسم | القيمة | الوصف |
---|---|---|
content_key_specs. track_type | سلسلة | اسم نوع المسار. إذا تم تحديد content_key_specs في طلب الترخيص، فتأكد من تحديد جميع أنواع المسارات بشكل صريح. يؤدي عدم القيام بذلك إلى عدم إعادة التشغيل بعد 10 ثوانٍ. |
content_key_specs security_level |
UInt32 | يحدد متطلبات متانة العميل للتشغيل. - مطلوب تشفير المربع الأبيض المستند إلى البرامج. - مطلوب تشفير برمجيات ووحدة فك ترميز مبهمة. - يجب إجراء عمليات المواد الأساسية والتشفير في بيئة تنفيذ موثوقة مدعومة بالأجهزة. - يجب إجراء تشفير المحتوى وفك تشفيره ضمن بيئة تنفيذ موثوقة مدعومة بالأجهزة. - يجب التعامل مع التشفير وفك التشفير وكل معالجات الوسائط (المضغوطة وغير المضغوطة) ضمن بيئة تنفيذ موثوقة مدعومة بالأجهزة. |
content_key_specs required_output_protection.hdc |
سلسلة، واحدة من HDCP_NONE، HDCP_V1، HDCP_V2 | يشير إلى ما إذا كان HDCP مطلوبًا. |
content_key_specs المفتاح |
Base64- سلسلة مشفرة |
مفتاح المحتوى لاستخدامه لهذا المسار. إذا تم تحديده، فإن track_type أو key_id مطلوب. يمكن لموفر المحتوى استخدام هذا الخيار لإدخال مفتاح المحتوى لهذا المسار بدلًا من السماح لخادم ترخيص Widevine بإنشاء مفتاح أو البحث عنه. |
content_key_specs.key_id | سلسلة ثنائية بترميز Base64، 16 بايت | معرّف فريد للمفتاح. |
تجاوزات النهج
الاسم | القيمة | الوصف |
---|---|---|
policy_overrides.can_play | Boolean أو true أو false | يشير إلى أن تشغيل المحتوى مسموح به. الوضع الافتراضي خطأ. |
policy_overrides.can_persist | Boolean أو true أو false | يشير إلى أن الترخيص قد يستمر في التخزين غير المتطاير للاستخدام دون اتصال. الوضع الافتراضي خطأ. |
policy_overrides.can_renew | Boolean أو true أو false | يشير إلى أن تجديد هذا الترخيص مسموح به. إذا كان هذا صحيحًا، يمكن تمديد مدة الترخيص بنبض القلب. الوضع الافتراضي خطأ. |
policy_overrides.license_duration_seconds | int64 | يشير إلى الفترة الزمنية لهذا الترخيص المحدد. تشير القيمة 0 إلى عدم وجود حد للمدة. الافتراضي هو 0. |
policy_overrides.rental_duration_seconds | int64 | يشير إلى الفترة الزمنية أثناء السماح بالتشغيل. تشير القيمة 0 إلى عدم وجود حد للمدة. الافتراضي هو 0. |
policy_overrides.playback_duration_seconds | int64 | تبدأ نافذة العرض الزمنية بعد بدء التشغيل خلال مدة الترخيص. تشير القيمة 0 إلى عدم وجود حد للمدة. الافتراضي هو 0. |
policy_overrides.renewal_server_url | سلسلة | يتم توجيه جميع طلبات Heartbeat (التجديد) لهذا الترخيص إلى عنوان URL المحدد. يستخدم هذا الحقل فقط إذا كان can_renew صحيحاً. |
policy_overrides.renewal_delay_seconds | int64 | كم ثانية بعد وقت بدء الترخيص قبل محاولة التجديد لأول مرة. يستخدم هذا الحقل فقط إذا كان can_renew صحيحًا. الافتراضي هو 0. |
policy_overrides.renewal_retry_interval_seconds | int64 | يحدد التأخير بالثواني بين طلبات تجديد الترخيص اللاحقة، في حالة الفشل. يستخدم هذا الحقل فقط إذا كان can_renew صحيحاً. |
policy_overrides.renewal_recovery_duration_seconds | int64 | الإطار الزمني الذي يمكن أن يستمر فيه التشغيل أثناء محاولة التجديد، ولكنه غير ناجح بسبب مشاكل الخلفية في خادم الترخيص. تشير القيمة 0 إلى عدم وجود حد للمدة. يستخدم هذا الحقل فقط إذا كان can_renew صحيحاً. |
policy_overrides.renew_with_usage | Boolean أو true أو false | يشير إلى إرسال الترخيص للتجديد عند بدء الاستخدام. يستخدم هذا الحقل فقط إذا كان can_renew صحيحًا. |
تهيئة الجلسة
الاسم | القيمة | الوصف |
---|---|---|
provider_session_token | سلسلة بترميز Base64 | يتم تمرير رمز الجلسة هذا مرة أخرى في الترخيص وهو موجود في عمليات التجديد اللاحقة. لا يستمر الرمز المميز للجلسة بعد الجلسات. |
provider_client_token | سلسلة بترميز Base64 | رمز العميل لإرساله مرة أخرى في استجابة الترخيص. إذا احتوى طلب الترخيص على رمز عميل، فسيتم تجاهل هذه القيمة. يستمر الرمز المميز للعميل بعد جلسات الترخيص. |
override_provider_client_token | Boolean أو true أو false | إذا كان خطأ وكان طلب الترخيص يحتوي على رمز عميل، فاستخدم الرمز المميز من الطلب حتى إذا تم تحديد رمز عميل في هذه البنية. إذا كان هذا صحيحًا، فاستخدم دائمًا الرمز المميز المحدد في هذه البنية. |
ملاحظات إضافية
- Widevine هي خدمة تقدمها شركة .Google Inc وتخضع لشروط الخدمة ونهج الخصوصية الخاصة بشركة Google، Inc.
الحصول على التعليمات والدعم
يمكنك الاتصال بخدمات الوسائط مع الأسئلة أو متابعة تحديثاتنا بإحدى الطرق التالية:
- س & أ
-
موقع Stack Overflow. وضع علامة على الأسئلة باستخدام
azure-media-services
. - @MSFTAzureMediaأو استخدم @AzureSupport لطلب الدعم.
- افتح تذكرة دعم من خلال مدخل Microsoft Azure.