Widevine lisans şablonuyla Media Services v3'e genel bakış
Azure Media Services, içeriğinizi Google Widevine ile şifrelemenize olanak tanır. Media Services ayrıca Widevine lisansları teslim etmek için bir hizmet sağlar. Widevine lisanslarını yapılandırmak için Azure Media Services API'lerini kullanabilirsiniz. Bir oyuncu Widevine korumalı içeriğinizi oynatmaya çalıştığında, lisansı almak için lisans teslim hizmetine bir istek gönderilir. Lisans hizmeti isteği onaylarsa, hizmet lisansı sağlar. İstemciye gönderilir ve belirtilen içeriğin şifresini çözmek ve oynatmak için kullanılır.
Not
Widevine, GovCloud bölgesinde kullanılamaz.
Widevine lisans isteği JSON iletisi olarak biçimlendirilir.
{
"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>
}
}
Not
Değer içermeyen boş bir ileti oluşturabilirsiniz, yalnızca "{}." Ardından varsayılan değerlerle bir lisans şablonu oluşturulur. Varsayılan değer çoğu durumda çalışır. Microsoft tabanlı lisans teslim senaryoları her zaman varsayılan değerleri kullanmalıdır. "Sağlayıcı" ve "content_id" değerlerini ayarlamanız gerekiyorsa, bir sağlayıcı Widevine kimlik bilgileriyle eşleşmelidir.
JSON iletisi
Name | Değer | Açıklama |
---|---|---|
yük | Base64 ile kodlanmış dize | İstemci tarafından gönderilen lisans isteği. |
content_id | Base64 ile kodlanmış dize | Her content_key_specs.track_type için anahtar kimliğini ve içerik anahtarını türetmek için kullanılan tanımlayıcı. |
Sağlayıcı | string | İçerik anahtarlarını ve ilkelerini aramak için kullanılır. Widevine lisans teslimi için Microsoft anahtar teslimi kullanılıyorsa, bu parametre yoksayılır. |
policy_name | string | Daha önce kaydedilmiş bir ilkenin adı. İsteğe bağlı. |
allowed_track_types | enum | SD_ONLY veya SD_HD. Lisansa hangi içerik anahtarlarının dahil olduğunu denetler. |
content_key_specs | JSON yapıları dizisi, "İçerik anahtarı özellikleri" bölümüne bakın. | Hangi içerik anahtarlarının döndürüleceği hakkında daha ayrıntılı bir denetim. Daha fazla bilgi için "İçerik anahtarı özellikleri" bölümüne bakın. allowed_track_types ve content_key_specs değerlerinden yalnızca biri belirtilebilir. |
use_policy_overrides_exclusively | Boole, true veya false | policy_overrides tarafından belirtilen ilke özniteliklerini kullanın ve önceden depolanan tüm ilkeyi atlar. |
policy_overrides | JSON yapısı, "İlke geçersiz kılmaları" bölümüne bakın. | Bu lisans için ilke ayarları. Bu varlığın önceden tanımlanmış bir ilkesi olması durumunda, bu belirtilen değerler kullanılır. |
session_init | JSON yapısı, "Oturum başlatma" bölümüne bakın. | İsteğe bağlı veriler lisansa geçirilir. |
parse_only | Boole, true veya false | Lisans isteği ayrıştırılır, ancak lisans verilmez. Ancak, lisans isteğindeki değerler yanıtta döndürülür. |
İçerik anahtarı özellikleri
Önceden var olan bir ilke varsa, içerik anahtarı belirtimindeki değerlerden herhangi birini belirtmeniz gerekmez. Bu içerikle ilişkili önceden var olan ilke, yüksek bant genişliğine sahip Dijital İçerik Koruması (HDCP) ve Genel Yönetim Sistemini Kopyala (CGMS) gibi çıkış korumasını belirlemek için kullanılır. Önceden var olan bir ilke Widevine lisans sunucusuna kaydedilmediyse, içerik sağlayıcısı değerleri lisans isteğine ekleyebilir.
her content_key_specs değeri, use_policy_overrides_exclusively seçeneğinden bağımsız olarak tüm parçalar için belirtilmelidir.
Name | Değer | Açıklama |
---|---|---|
content_key_specs. track_type | string | İz türü adı. Lisans isteğinde content_key_specs belirtilirse, tüm izleme türlerini açıkça belirttiğinizden emin olun. Bunun yapılmaması, son 10 saniye içinde oynatılamamasına neden olur. |
content_key_specs security_level |
uint32 | Kayıttan yürütme için istemci sağlamlığı gereksinimlerini tanımlar. - Yazılım tabanlı beyaz kutu şifrelemesi gereklidir. - Yazılım şifrelemesi ve karartılmış kod çözücü gereklidir. - Anahtar malzeme ve şifreleme işlemleri donanım destekli güvenilir yürütme ortamında gerçekleştirilmelidir. - İçeriğin şifrelenmesi ve kodunun çözülmesi, donanım destekli güvenilir bir yürütme ortamında gerçekleştirilmelidir. - Şifreleme, kod çözme ve medyanın tüm işlemesi (sıkıştırılmış ve sıkıştırılmamış) donanım destekli güvenilir yürütme ortamında işlenmelidir. |
content_key_specs required_output_protection.hdc |
dize, HDCP_NONE biri, HDCP_V1 HDCP_V2 | HDCP'nin gerekli olup olmadığını gösterir. |
content_key_specs anahtar |
Base64- kodlanmış dize |
Bu parça için kullanılacak içerik anahtarı. Belirtilirse, track_type veya key_id gereklidir. İçerik sağlayıcısı, Widevine lisans sunucusunun bir anahtar oluşturmasına veya aramasına izin vermek yerine bu parçanın içerik anahtarını eklemek için bu seçeneği kullanabilir. |
content_key_specs.key_id | Base64 ile kodlanmış dize ikilisi, 16 bayt | Anahtarın benzersiz tanımlayıcısı. |
İlke geçersiz kılmaları
Name | Değer | Açıklama |
---|---|---|
policy_overrides.can_play | Boole, true veya false | İçeriğin kayıttan yürütülmesine izin verildiğini gösterir. Varsayılan değer false’tur. |
policy_overrides.can_persist | Boole, true veya false | Lisansın çevrimdışı kullanım için kalıcı olmayan depolamada kalıcı olabileceğini gösterir. Varsayılan değer false’tur. |
policy_overrides.can_renew | Boole, true veya false | Bu lisansın yenilenmesine izin verildiğini gösterir. Doğruysa, lisansın süresi sinyalle uzatılabilir. Varsayılan değer false’tur. |
policy_overrides.license_duration_seconds | int64 | Bu belirli lisansın zaman penceresini gösterir. 0 değeri, süre sınırı olmadığını gösterir. Varsayılan değer 0'dır. |
policy_overrides.rental_duration_seconds | int64 | Kayıttan yürütmeye izin verilirken zaman penceresini gösterir. 0 değeri, süre sınırı olmadığını gösterir. Varsayılan değer 0'dır. |
policy_overrides.playback_duration_seconds | int64 | Lisans süresi içinde kayıttan yürütme başlatıldıktan sonraki zaman görüntüleme penceresi. 0 değeri, süre sınırı olmadığını gösterir. Varsayılan değer 0'dır. |
policy_overrides.renewal_server_url | string | Bu lisans için tüm sinyal (yenileme) istekleri belirtilen URL'ye yönlendirilir. Bu alan yalnızca can_renew doğru olduğunda kullanılır. |
policy_overrides.renewal_delay_seconds | int64 | yenileme denenmeden önce license_start_time sonra kaç saniye. Bu alan yalnızca can_renew doğru olduğunda kullanılır. Varsayılan değer 0'dır. |
policy_overrides.renewal_retry_interval_seconds | int64 | Hata durumunda sonraki lisans yenileme istekleri arasındaki gecikmeyi saniye olarak belirtir. Bu alan yalnızca can_renew doğru olduğunda kullanılır. |
policy_overrides.renewal_recovery_duration_seconds | int64 | Yenileme denenirken kayıttan yürütmenin devam ettiği, ancak lisans sunucusundaki arka uç sorunları nedeniyle başarısız olduğu zaman penceresi. 0 değeri, süre sınırı olmadığını gösterir. Bu alan yalnızca can_renew doğru olduğunda kullanılır. |
policy_overrides.renew_with_usage | Boole, true veya false | Kullanım başladığında lisansın yenileme için gönderildiğini gösterir. Bu alan yalnızca can_renew doğru olduğunda kullanılır. |
Oturum başlatma
Name | Değer | Açıklama |
---|---|---|
provider_session_token | Base64 ile kodlanmış dize | Bu oturum belirteci lisansa geri geçirilir ve sonraki yenilemelerde bulunur. Oturum belirteci oturumların ötesinde kalıcı olmaz. |
provider_client_token | Base64 ile kodlanmış dize | Lisans yanıtını geri göndermek için istemci belirteci. Lisans isteği bir istemci belirteci içeriyorsa, bu değer yoksayılır. İstemci belirteci lisans oturumlarının ötesinde kalır. |
override_provider_client_token | Boole, true veya false | False ise ve lisans isteği bir istemci belirteci içeriyorsa, bu yapıda bir istemci belirteci belirtilmiş olsa bile istekteki belirteci kullanın. True ise, her zaman bu yapıda belirtilen belirteci kullanın. |
Ek notlar
- Widevine, Google Inc. tarafından sağlanan ve Google, Inc.'in hizmet koşullarına ve Gizlilik Politikası'na tabi olan bir hizmettir.
Yardım ve destek alma
Sorularınız için Media Services ile iletişime geçebilir veya aşağıdaki yöntemlerden birini kullanarak güncelleştirmelerimizi izleyebilirsiniz:
- Q & A
- Stack Overflow. ile soruları etiketleme
azure-media-services
. - Destek istemek için @AzureSupport @MSFTAzureMedia veya kullanın.
- Azure portal üzerinden bir destek bileti açın.