Översikt över Media Services v3 med Widevine-licensmall
Med Azure Media Services kan du kryptera ditt innehåll med Google Widevine. Media Services tillhandahåller också en tjänst för att leverera Widevine-licenser. Du kan använda Azure Media Services-API:er för att konfigurera Widevine-licenser. När en spelare försöker spela upp ditt Widevine-skyddade innehåll skickas en begäran till licensleveranstjänsten för att hämta licensen. Om licenstjänsten godkänner begäran utfärdar tjänsten licensen. Den skickas till klienten och används för att dekryptera och spela upp det angivna innehållet.
Anteckning
Widevine är inte tillgängligt i GovCloud-regionen.
En Widevine-licensbegäran formateras som ett JSON-meddelande.
{
"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>
}
}
Anteckning
Du kan skapa ett tomt meddelande utan värden, bara "{}". Sedan skapas en licensmall med standardvärden. Standardvärdet fungerar för de flesta fall. Microsoft-baserade scenarier för licensleverans bör alltid använda standardinställningarna. Om du behöver ange värdena "provider" och "content_id" måste en provider matcha Widevine-autentiseringsuppgifter.
JSON-meddelande
Name | Värde | Beskrivning |
---|---|---|
payload | Base64-kodad sträng | Licensbegäran som skickas av en klient. |
content_id | Base64-kodad sträng | Identifierare som används för att härleda nyckel-ID och innehållsnyckel för varje content_key_specs.track_type. |
Leverantör | sträng | Används för att söka efter innehållsnycklar och principer. Om Microsoft-nyckelleverans används för Widevine-licensleverans ignoreras den här parametern. |
policy_name | sträng | Namnet på en tidigare registrerad princip. Valfritt. |
allowed_track_types | Enum | SD_ONLY eller SD_HD. Styr vilka innehållsnycklar som ingår i en licens. |
content_key_specs | Matris med JSON-strukturer finns i avsnittet "Innehållsnyckelspecifikationer". | En finare kontroll över vilka innehållsnycklar som ska returneras. Mer information finns i avsnittet "Innehållsnyckelspecifikationer". Endast ett av allowed_track_types- och content_key_specs-värdena kan anges. |
use_policy_overrides_exclusively | Booleskt, sant eller falskt | Använd principattribut som anges av policy_overrides och utelämna alla tidigare lagrade principer. |
policy_overrides | JSON-struktur, se avsnittet "Princip åsidosättningar". | Principinställningar för den här licensen. Om den här tillgången har en fördefinierad princip används dessa angivna värden. |
session_init | JSON-struktur, se avsnittet "Sessionsinitiering". | Valfria data skickas till licensen. |
parse_only | Booleskt, sant eller falskt | Licensbegäran parsas, men ingen licens utfärdas. Värden från licensbegäran returneras dock i svaret. |
Innehållsnyckelspecifikationer
Om det finns en befintlig princip behöver du inte ange något av värdena i innehållsnyckelspecifikationen. Den befintliga principen som är associerad med det här innehållet används för att fastställa utdataskyddet, till exempel HDCP (High-Bandwidth Digital Content Protection) och CGMS (Copy General Management System). Om en befintlig princip inte är registrerad på Widevine-licensservern kan innehållsprovidern mata in värdena i licensbegäran.
Varje content_key_specs värde måste anges för alla spår, oavsett use_policy_overrides_exclusively alternativ.
Name | Värde | Beskrivning |
---|---|---|
content_key_specs. track_type | sträng | Ett namn på spårtyp. Om content_key_specs anges i licensbegäran måste du uttryckligen ange alla spårtyper. Om du inte gör det går det inte att spela upp de senaste 10 sekunderna. |
content_key_specs security_level |
uint32 | Definierar kraven på klientens robusthet för uppspelning. – Programvarubaserad white box-kryptografi krävs. – Kryptering av programvara och en obfuscated decoder krävs. – Nyckelmaterial- och kryptografiåtgärderna måste utföras i en maskinvarustödd betrodd körningsmiljö. – Kryptografi och avkodning av innehåll måste utföras i en maskinvarustödd betrodd körningsmiljö. – Kryptografi, avkodning och all hantering av mediet (komprimerad och okomprimerad) måste hanteras i en maskinvarustödd betrodd körningsmiljö. |
content_key_specs required_output_protection.hdc |
sträng, en av HDCP_NONE, HDCP_V1, HDCP_V2 | Anger om HDCP krävs. |
content_key_specs key |
Base64- kodad sträng |
Innehållsnyckel som ska användas för det här spåret. Om det anges krävs track_type eller key_id. Innehållsprovidern kan använda det här alternativet för att mata in innehållsnyckeln för det här spåret i stället för att låta Widevine-licensservern generera eller leta upp en nyckel. |
content_key_specs.key_id | Base64-kodad sträng binär, 16 byte | Unik identifierare för nyckeln. |
Princip åsidosättningar
Name | Värde | Beskrivning |
---|---|---|
policy_overrides.can_play | Booleskt, sant eller falskt | Anger att uppspelning av innehållet tillåts. Standardvärdet är false. |
policy_overrides.can_persist | Booleskt, sant eller falskt | Anger att licensen kan sparas till icke-flexibelt lagringsutrymme för offlineanvändning. Standardvärdet är false. |
policy_overrides.can_renew | Booleskt, sant eller falskt | Anger att förnyelse av den här licensen är tillåten. Om det är sant kan licensens varaktighet förlängas med pulsslag. Standardvärdet är false. |
policy_overrides.license_duration_seconds | int64 | Anger tidsfönstret för den här specifika licensen. Värdet 0 anger att det inte finns någon gräns för varaktigheten. Standardvärdet är 0. |
policy_overrides.rental_duration_seconds | int64 | Anger tidsfönstret när uppspelning tillåts. Värdet 0 anger att det inte finns någon gräns för varaktigheten. Standardvärdet är 0. |
policy_overrides.playback_duration_seconds | int64 | Visningsfönstret efter uppspelningen startar inom licensens varaktighet. Värdet 0 anger att det inte finns någon gräns för varaktigheten. Standardvärdet är 0. |
policy_overrides.renewal_server_url | sträng | Alla pulsslagsbegäranden (förnyelse) för den här licensen dirigeras till den angivna URL:en. Det här fältet används endast om can_renew är sant. |
policy_overrides.renewal_delay_seconds | int64 | Hur många sekunder efter license_start_time före förnyelsen görs först. Det här fältet används endast om can_renew är sant. Standardvärdet är 0. |
policy_overrides.renewal_retry_interval_seconds | int64 | Anger fördröjningen i sekunder mellan efterföljande begäranden om licensförnyelse vid fel. Det här fältet används endast om can_renew är sant. |
policy_overrides.renewal_recovery_duration_seconds | int64 | Tidsperioden då uppspelningen kan fortsätta medan förnyelsen görs, men misslyckas på grund av serverdelsproblem med licensservern. Värdet 0 anger att det inte finns någon gräns för varaktigheten. Det här fältet används endast om can_renew är sant. |
policy_overrides.renew_with_usage | Booleskt, sant eller falskt | Anger att licensen skickas för förnyelse när användningen startar. Det här fältet används endast om can_renew är sant. |
Sessionsinitiering
Name | Värde | Beskrivning |
---|---|---|
provider_session_token | Base64-kodad sträng | Den här sessionstoken skickas tillbaka i licensen och finns i efterföljande förnyelser. Sessionstoken bevaras inte utöver sessioner. |
provider_client_token | Base64-kodad sträng | Klienttoken som ska skickas tillbaka i licenssvaret. Om licensbegäran innehåller en klienttoken ignoreras det här värdet. Klienttoken finns kvar utöver licenssessioner. |
override_provider_client_token | Booleskt, sant eller falskt | Om false och licensbegäran innehåller en klienttoken använder du token från begäran även om en klienttoken har angetts i den här strukturen. Om det är sant använder du alltid den token som anges i den här strukturen. |
Ytterligare information
- Widevine är en tjänst som tillhandahålls av Google Inc. och som omfattas av användarvillkoren och sekretesspolicyn för Google, Inc.
Få hjälp och support
Du kan kontakta Media Services med frågor eller följa våra uppdateringar med någon av följande metoder:
- Q & A
-
Stack Overflow. Tagga frågor med
azure-media-services
. - @MSFTAzureMedia eller använd @AzureSupport för att begära support.
- Öppna en supportbegäran via Azure Portal.