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:
- Q & A
-
Stack Overflow. Tag vragen met
azure-media-services
. - @MSFTAzureMedia of gebruik @AzureSupport om ondersteuning aan te vragen.
- Open een ondersteuningsticket via de Azure Portal.