Ö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: