Delen via


Overzicht van Media Services v3 met Widevine-licentiesjabloon

Met Azure Media Services kunt u uw inhoud versleutelen met Google Widevine. Media Services biedt ook een service voor het leveren van Widevine-licenties. U kunt Azure Media Services-API's gebruiken om Widevine-licenties te configureren. Wanneer een speler probeert uw met Widevine beveiligde inhoud af te spelen, wordt er een aanvraag verzonden naar de service voor het leveren van licenties om de licentie te verkrijgen. Als de licentieservice de aanvraag goedkeurt, geeft de service de licentie uit. Het wordt verzonden naar de client en wordt gebruikt om de opgegeven inhoud te ontsleutelen en af te spelen.

Notitie

Widevine is niet beschikbaar in de GovCloud-regio.

Een Widevine-licentieaanvraag is opgemaakt als een JSON-bericht.

{
    "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>
    }
}

Notitie

U kunt een leeg bericht zonder waarden maken, alleen '{}'. Vervolgens wordt er een licentiesjabloon gemaakt met standaardwaarden. De standaardinstellingen zijn in de meeste gevallen prima. Scenario's voor het leveren van licenties op basis van Microsoft moeten altijd de standaardwaarden gebruiken. Als u de waarden 'provider' en 'content_id' moet instellen, moet een provider overeenkomen met widevine-referenties.

JSON-bericht

Naam Waarde Beschrijving
nettolading Base64-gecodeerde tekenreeks De licentieaanvraag die door een client is verzonden.
content_id Base64-gecodeerde tekenreeks Id die wordt gebruikt om de sleutel-id en inhoudssleutel af te leiden voor elke content_key_specs.track_type.
Provider tekenreeks Wordt gebruikt om inhoudssleutels en beleidsregels op te zoeken. Als microsoft-sleutellevering wordt gebruikt voor de levering van Widevine-licenties, wordt deze parameter genegeerd.
policy_name tekenreeks Naam van een eerder geregistreerd beleid. Optioneel.
allowed_track_types Enum SD_ONLY of SD_HD. Hiermee bepaalt u welke inhoudssleutels worden opgenomen in een licentie.
content_key_specs Matrix van JSON-structuren, zie de sectie 'Specificaties van inhoudssleutels'. Een nauwkeuriger besturingselement voor welke inhoudssleutels moeten worden geretourneerd. Zie de sectie Inhoudssleutelspecificaties voor meer informatie. Er kan slechts een van de waarden voor allowed_track_types en content_key_specs worden opgegeven.
use_policy_overrides_exclusively Booleaanse waarde, waar of onwaar Gebruik beleidskenmerken die zijn opgegeven door policy_overrides en laat alle eerder opgeslagen beleidsregels weg.
policy_overrides JSON-structuur, zie de sectie 'Beleidsoverschrijvingen'. Beleidsinstellingen voor deze licentie. Als deze asset een vooraf gedefinieerd beleid heeft, worden deze opgegeven waarden gebruikt.
session_init JSON-structuur, zie de sectie Sessie-initialisatie. Optionele gegevens worden doorgegeven aan de licentie.
parse_only Booleaanse waarde, waar of onwaar De licentieaanvraag wordt geparseerd, maar er wordt geen licentie uitgegeven. Waarden van de licentieaanvraag worden echter geretourneerd in het antwoord.

Specificaties van inhoudssleutels

Als er al een bestaand beleid bestaat, hoeft u geen waarden in de inhoudssleutelspecificatie op te geven. Het bestaande beleid dat aan deze inhoud is gekoppeld, wordt gebruikt om de uitvoerbeveiliging te bepalen, zoals HDCP (High-bandwidth Digital Content Protection) en het Copy General Management System (CGMS). Als een bestaand beleid niet is geregistreerd bij de Widevine-licentieserver, kan de inhoudsprovider de waarden in de licentieaanvraag injecteren.

Elke content_key_specs waarde moet worden opgegeven voor alle sporen, ongeacht de optie use_policy_overrides_exclusively.

Naam Waarde Beschrijving
content_key_specs. track_type tekenreeks Een tracktypenaam. Als content_key_specs is opgegeven in de licentieaanvraag, moet u alle tracktypen expliciet opgeven. Als u dit niet doet, wordt de afgelopen 10 seconden niet afgespeeld.
content_key_specs
security_level
uint32 Definieert de vereisten voor de robuustheid van de client voor afspelen.
- Op software gebaseerde white-box cryptografie is vereist.
- Softwarecryptografie en een verborgen decoder zijn vereist.
- Het sleutelmateriaal en de cryptografiebewerkingen moeten worden uitgevoerd binnen een vertrouwde uitvoeringsomgeving met hardware-ondersteuning.
- De cryptografie en decodering van inhoud moeten worden uitgevoerd binnen een vertrouwde uitvoeringsomgeving met hardware-ondersteuning.
- De cryptografie, decodering en alle verwerking van de media (gecomprimeerd en niet-gecomprimeerd) moeten worden verwerkt in een vertrouwde uitvoeringsomgeving met hardware-ondersteuning.
content_key_specs
required_output_protection.hdc
tekenreeks, een van HDCP_NONE, HDCP_V1, HDCP_V2 Geeft aan of HDCP vereist is.
content_key_specs
sleutel
Basis64-
gecodeerde tekenreeks
Inhoudssleutel die moet worden gebruikt voor dit nummer. Indien opgegeven, is de track_type of key_id vereist. De inhoudsprovider kan deze optie gebruiken om de inhoudssleutel voor dit nummer in te voeren in plaats van de Widevine-licentieserver een sleutel te laten genereren of opzoeken.
content_key_specs.key_id Met Base64 gecodeerd binair tekenreeks, 16 bytes Unieke id voor de sleutel.

Beleidsoverschrijvingen

Naam Waarde Beschrijving
policy_overrides.can_play Booleaanse waarde, waar of onwaar Geeft aan dat het afspelen van de inhoud is toegestaan. De standaardinstelling is onwaar.
policy_overrides.can_persist Booleaanse waarde, waar of onwaar Hiermee wordt aangegeven dat de licentie kan worden bewaard in niet-volatile opslag voor offline gebruik. De standaardinstelling is onwaar.
policy_overrides.can_renew Booleaanse waarde, waar of onwaar Geeft aan dat verlenging van deze licentie is toegestaan. Indien waar, kan de duur van de licentie worden verlengd met heartbeat. De standaardinstelling is onwaar.
policy_overrides.license_duration_seconds int64 Geeft het tijdvenster voor deze specifieke licentie aan. Een waarde van 0 geeft aan dat er geen limiet is voor de duur. De standaardwaarde is 0.
policy_overrides.rental_duration_seconds int64 Geeft het tijdvenster aan terwijl afspelen is toegestaan. Een waarde van 0 geeft aan dat er geen limiet is voor de duur. De standaardwaarde is 0.
policy_overrides.playback_duration_seconds int64 Het weergavevenster na het afspelen begint binnen de licentieduur. Een waarde van 0 geeft aan dat er geen limiet is voor de duur. De standaardwaarde is 0.
policy_overrides.renewal_server_url tekenreeks Alle heartbeataanvragen (verlenging) voor deze licentie worden omgeleid naar de opgegeven URL. Dit veld wordt alleen gebruikt als can_renew waar is.
policy_overrides.renewal_delay_seconds int64 Hoeveel seconden na license_start_time voordat de verlenging voor het eerst wordt geprobeerd. Dit veld wordt alleen gebruikt als can_renew waar is. De standaardwaarde is 0.
policy_overrides.renewal_retry_interval_seconds int64 Hiermee geeft u de vertraging in seconden tussen volgende aanvragen voor licentieverlenging, in geval van een fout. Dit veld wordt alleen gebruikt als can_renew waar is.
policy_overrides.renewal_recovery_duration_seconds int64 Het tijdvenster waarin het afspelen kan worden voortgezet terwijl verlenging wordt geprobeerd, maar mislukt vanwege back-endproblemen met de licentieserver. Een waarde van 0 geeft aan dat er geen limiet is voor de duur. Dit veld wordt alleen gebruikt als can_renew waar is.
policy_overrides.renew_with_usage Booleaanse waarde, waar of onwaar Geeft aan dat de licentie wordt verzonden voor verlenging wanneer het gebruik begint. Dit veld wordt alleen gebruikt als can_renew waar is.

Sessie-initialisatie

Naam Waarde Beschrijving
provider_session_token Base64-gecodeerde tekenreeks Dit sessietoken wordt teruggegeven in de licentie en bestaat in volgende verlengingen. Het sessietoken blijft niet langer bestaan dan sessies.
provider_client_token Base64-gecodeerde tekenreeks Clienttoken dat moet worden teruggestuurd in het licentieantwoord. Als de licentieaanvraag een clienttoken bevat, wordt deze waarde genegeerd. Het clienttoken blijft behouden na licentiesessies.
override_provider_client_token Booleaanse waarde, waar of onwaar Als onwaar is en de licentieaanvraag een clienttoken bevat, gebruikt u het token van de aanvraag, zelfs als een clienttoken in deze structuur is opgegeven. Als dit waar is, gebruikt u altijd het token dat in deze structuur is opgegeven.

Aanvullende opmerkingen

  • Widevine is een service van Google Inc. en is onderworpen aan de servicevoorwaarden en het privacybeleid van Google Inc.

Help en ondersteuning

U kunt contact opnemen met Media Services als u vragen hebt of onze updates op een van de volgende manieren volgen: