Zelfstudie: Extern bestand coderen op basis van URL en video streamen - REST
Zoekt u Media Services v2-documentatie?
Met Azure Media Services kunt u mediabestanden coderen in indelingen die kunnen worden afgespeeld met een groot aantal verschillende browsers en apparaten. Zo kunt u bijvoorbeeld inhoud streamen in de indelingen Apple HLS of MPEG DASH. Voordat u gaat streamen, moet u uw digitale mediabestand van hoge kwaliteit coderen. Zie Encoding voor richtlijnen voor codering.
In deze zelfstudie leert u hoe u met behulp van REST een bestand kunt coderen en de video kunt streamen met Azure Media Services.
Waarschuwing
Het is niet raadzaam om de REST API voor Media Services rechtstreeks in uw eigen bibliotheekcode te verpakken. Als u dit voor productiedoeleinden goed doet, moet u de volledige logica voor opnieuw proberen van Azure Resource Management implementeren en inzicht krijgen in het beheren van langlopende bewerkingen in Azure Resource Management-API's. Dit wordt automatisch afgehandeld door de client-SDK's voor verschillende talen ( .NET, Java, TypeScript, Python, Ruby, enzovoort) en vermindert de kans dat u problemen hebt met rety-logica of mislukte API-aanroepen. De client-SDK's verwerken dit allemaal al voor u. De Postman-verzameling wordt meer aangeboden als een onderwijshulpprogramma en om u te laten zien wat de client-SDK's daadwerkelijk op de kabel doen tijdens de ontwikkeling met de verschillende client-SDK's.

In deze zelfstudie ontdekt u hoe u:
- Een Media Services-account kunt maken
- Toegang kunt krijgen tot de Media Services API
- Postman-bestanden downloaden
- Postman configureren
- Aanvragen verzenden met behulp van Postman
- De streaming-URL testen
- Resources opschonen
Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.
Vereisten
Een Azure Media Services-account maken.
Vergeet niet welke waarden u hebt gebruikt voor de namen van de resourcegroep en het Media Services-account
Installeer de Postman REST-client als u de REST-API's wilt uitvoeren die in een aantal AMS REST-zelfstudies worden weergegeven.
We gebruiken Postman maar elk ander REST-hulpprogramma is hiervoor geschikt. Enkele andere alternatieven: Visual Studio Code met de REST-invoegtoepassing of Telerik Fiddler.
Postman-bestanden downloaden
Kloon een GitHub-opslagplaats die de Postman verzameling en -omgevingsbestanden bevat.
git clone https://github.com/Azure-Samples/media-services-v3-rest-postman.git
Toegang tot API
Zie Referenties ophalen voor toegang tot de Media Services API voor meer informatie
Postman configureren
De omgeving configureren
Open de Postman-app.
Selecteer rechts van het scherm de optie Manage environment.

Klik in het dialoogvenster Manage environment op Import.
Blader naar het bestand
Azure Media Service v3 Environment.postman_environment.jsondat is gedownload toen uhttps://github.com/Azure-Samples/media-services-v3-rest-postman.gitkloonde.De omgeving Azure Media Service v3 Environment is toegevoegd.
Notitie
Werk de toegangsvariabelen bij met waarden die u hebt gekregen in de sectie Toegang krijgen tot de Media Services API hierboven.
Dubbelklik op het geselecteerde bestand en voer de waarden in die u hebt verkregen door de stappen voor het verkrijgen van toegang tot API's te volgen.
Sluit het dialoogvenster.
Selecteer de omgeving Azure Media Service v3 Environment in de vervolgkeuzelijst.

De collectie configureren
Klik op Import om het verzamelingbestand te importeren.
Blader naar het bestand
Media Services v3.postman_collection.jsondat is gedownload toen uhttps://github.com/Azure-Samples/media-services-v3-rest-postman.gitkloondeKies het bestand Media Services v3.postman_collection.json.

Aanvragen verzenden met behulp van Postman
In deze sectie verzenden we aanvragen die relevant zijn voor het coderen en maken van URL's zodat uw bestand kan worden gestreamd. In het bijzonder worden de volgende aanvragen verzonden:
- Azure AD-token verkrijgen voor service-principal-verificatie
- Een streaming-eindpunt starten
- Een uitvoeractivum maken
- Een transformatie maken
- Een taak maken
- Een streaming-locator maken
- De paden van de streaming-locator weergeven
Notitie
In deze zelfstudie wordt ervan uitgegaan dat u alle resources maakt met unieke namen.
Azure AD-token verkrijgen
Selecteer 'Stap 1' in het linkervenster van de Postman-app: Get AAD Auth token'.
Selecteer vervolgens Get Azure AD Token for Service Principal Authentication.
Druk op Verzenden.
De volgende POST-bewerking wordt verzonden.
https://login.microsoftonline.com/:aadTenantDomain/oauth2/tokenHet antwoord bevat de token en stelt de omgevingsvariabele AccessToken in op de tokenwaarde. Klik op het tabblad Tests voor de code waarmee AccessToken wordt ingesteld.

Een streaming-eindpunt starten
Als u streaming wilt inschakelen, moet u eerst het streaming-eindpunt starten op de locatie van waaruit u de video wilt streamen.
Notitie
U wordt alleen gefactureerd wanneer uw streaming-eindpunt actief is.
Selecteer 'Streaming en live' in het linkervenster van de Postman-app.
Selecteer vervolgens 'Streaming-eindpunt starten'.
Druk op Verzenden.
De volgende POST-bewerking wordt verzonden:
https://management.azure.com/subscriptions/:subscriptionId/resourceGroups/:resourceGroupName/providers/Microsoft.Media/mediaservices/:accountName/streamingEndpoints/:streamingEndpointName/start?api-version={{api-version}}Als de aanvraag is geaccepteerd, wordt
Status: 202 Acceptedgeretourneerd.Deze status betekent dat de aanvraag is geaccepteerd voor verwerking. De verwerking is echter niet voltooid. U kunt de bewerkingsstatus opvragen op basis van de waarde in de
Azure-AsyncOperation-antwoordheader.Met de volgende GET-bewerking wordt bijvoorbeeld de status van uw bewerking geretourneerd:
https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/<resourceGroupName>/providers/Microsoft.Media/mediaservices/<accountName>/streamingendpointoperations/1be71957-4edc-4f3c-a29d-5c2777136a2e?api-version=2018-07-01In het artikel Asynchrone Azure-bewerkingen volgen wordt uitvoerig beschreven hoe de status van asynchrone Azure-bewerkingen wordt gevolgd aan de hand van waarden die zijn geretourneerd in het antwoord.
Een uitvoeractivum maken
In de uitvoerasset wordt het resultaat van de coderingstaak opgeslagen.
Selecteer 'Assets' in het linkervenster van de Postman-app.
Selecteer vervolgens Create or update an Asset.
Druk op Verzenden.
De volgende PUT-bewerking wordt verzonden:
https://management.azure.com/subscriptions/:subscriptionId/resourceGroups/:resourceGroupName/providers/Microsoft.Media/mediaServices/:accountName/assets/:assetName?api-version={{api-version}}De bewerking heeft de volgende hoofdtekst:
{ "properties": { "description": "My Asset", "alternateId" : "some GUID", "storageAccountName": "<replace from environment file>", "container": "<supply any valid container name of your choosing>" } }
Notitie
Zorg ervoor dat u de namen van het opslagaccount en de container vervangt door de namen uit het omgevingsbestand, of geef zelf namen op.
Wanneer u de stappen uit de rest van het artikel hebt uitgevoerd, zorgt u ervoor dat u geldige parameters opgeeft in de hoofdtekst van de aanvragen.
Een transformatie maken
Bij het coderen of verwerken van inhoud in Media Services is het een gangbaar patroon om de coderingsinstellingen als recept in te stellen. U dient vervolgens een taak in te dienen om het recept toe te passen op een video. Door voor elke nieuwe video nieuwe taken in te dienen, past u dat recept toe op alle video's in de bibliotheek. Een recept in Media Services wordt aangeroepen als een transformatie. Zie Transformaties en taken voor meer informatie. Het voorbeeld dat wordt beschreven in deze zelfstudie definieert een recept dat de video codeert om het te streamen naar tal van iOS- en Android-apparaten.
Bij het maken van een nieuw transformatie-exemplaar, moet u opgeven wat u als uitvoer wilt maken. De vereiste parameter is een TransformOutput-object. Elke transformatie-uitvoer bevat een voorinstelling. Voorinstelling bevat de stapsgewijze instructies van de video- en/of audioverwerkingen die moeten worden gebruikt voor het genereren van de gewenste TransformOutput. Het voorbeeld dat in dit artikel wordt beschreven, maakt gebruik van een ingebouwde voorinstelling genaamd AdaptiveStreaming . De voorinstelling codeert de invoervideo in een automatisch gegenereerde bitrate-ladder (bitrate-resolutieparen) op basis van de invoerresolutie en bitsnelheid en produceert ISO MP4-bestanden met H.264-video en AAC-audio die overeenkomen met elk bitrate-resolutiepaar. Zie een bitrate-ladder automatisch genereren voor meer informatie over deze voorinstelling.
U kunt een ingebouwde EncoderNamedPreset gebruiken of aangepaste voorinstellingen gebruiken.
Notitie
Bij het maken van een transformatie moet u met de methode Get eerst controleren of er al een bestaat. In deze zelfstudie wordt ervan uitgegaan dat u alle transformaties maakt met een unieke naam.
Selecteer 'Codering en analyse' in het linkervenster van de Postman-app.
Selecteer daarna Create Transform.
Druk op Verzenden.
De volgende PUT-bewerking wordt verzonden.
https://management.azure.com/subscriptions/:subscriptionId/resourceGroups/:resourceGroupName/providers/Microsoft.Media/mediaServices/:accountName/transforms/:transformName?api-version={{api-version}}De bewerking heeft de volgende hoofdtekst:
{ "properties": { "description": "Standard Transform using an Adaptive Streaming encoding preset from the library of built-in Standard Encoder presets", "outputs": [ { "onError": "StopProcessingJob", "relativePriority": "Normal", "preset": { "@odata.type": "#Microsoft.Media.BuiltInStandardEncoderPreset", "presetName": "AdaptiveStreaming" } } ] } }
Een taak maken
Een taak is de eigenlijke aanvraag aan Media Services om de gemaakte transformatie toe te passen op een bepaalde invoervideo of audio-inhoud. De taak bevat informatie zoals de locatie van de invoervideo en de locatie voor de uitvoer.
In dit voorbeeld is de invoer van de taak gebaseerd op een HTTPS-URL (https://nimbuscdn-nimbuspm.streaming.mediaservices.windows.net/2b533311-b215-4409-80af-529c3e853622/).
Selecteer 'Codering en analyse' in het linkervenster van de Postman-app.
Selecteer vervolgens Create or Update Job.
Druk op Verzenden.
De volgende PUT-bewerking wordt verzonden.
https://management.azure.com/subscriptions/:subscriptionId/resourceGroups/:resourceGroupName/providers/Microsoft.Media/mediaServices/:accountName/transforms/:transformName/jobs/:jobName?api-version={{api-version}}De bewerking heeft de volgende hoofdtekst:
{ "properties": { "input": { "@odata.type": "#Microsoft.Media.JobInputHttp", "baseUri": "https://nimbuscdn-nimbuspm.streaming.mediaservices.windows.net/2b533311-b215-4409-80af-529c3e853622/", "files": [ "Ignite-short.mp4" ] }, "outputs": [ { "@odata.type": "#Microsoft.Media.JobOutputAsset", "assetName": "testAsset1" } ] } }
De taak neemt enige tijd in beslag en wanneer deze is voltooid, wordt u hiervan op de hoogte gesteld. Als u de voortgang van de taak wilt zien, kunt u het best Event Grid gebruiken. Dit is ontworpen voor hoge beschikbaarheid, consistente prestaties en dynamische schaalbaarheid. Met Event Grid kunnen uw apps luisteren naar en reageren op gebeurtenissen uit vrijwel alle Azure-services, evenals aangepaste bronnen. Eenvoudige, op HTTP gebaseerde reactieve gebeurtenisafhandeling maakt het mogelijk om efficiƫnte oplossingen te bouwen met intelligente filtering en routering van gebeurtenissen. Zie Gebeurtenissen routeren naar een aangepast eindpunt.
De taak doorloopt meestal de volgende statussen: Gepland, In de wachtrij geplaatst, Verwerken, Voltooid (de eindstatus). Als bij de taak een fout is opgetreden is, krijgt u de status Fout. Als de taak momenteel wordt geannuleerd, krijgt u de melding Wordt geannuleerd en Geannuleerd wanneer het annuleren is voltooid.
Foutcodes in taak
Zie Foutcodes.
Een streaming-locator te maken
Wanneer de coderingstaak is voltooid, gaat u in de volgende stap de video in de uitvoer asset beschikbaar maken voor weergave door clients. U kunt dit doen in twee stappen: maak eerst een StreamingLocator en bouw vervolgens de streaming-URL's die clients kunnen gebruiken.
Het maken van een streaming-locator wordt publiceren genoemd. De streaming-locator is standaard onmiddellijk geldig nadat u de API-aanroepen hebt uitgevoerd en totdat deze wordt verwijderd, tenzij u de optionele start- en eindtijden configureert.
Bij het maken van een StreamingLocator moet u de gewenste StreamingPolicyName opgeven. In dit voorbeeld streamt u niet-versleutelde inhoud, zodat het vooraf gedefinieerde beleid voor het streamen van niet-versleutelde inhoud, Predefined_ClearStreamingOnly, wordt gebruikt.
Belangrijk
Wanneer u een aangepast streamingbeleid gebruikt, moet u een beperkte set met dergelijke beleidsregels ontwerpen voor uw Media Service-account, en deze opnieuw gebruiken voor de StreamingLocators wanneer dezelfde versleutelingsopties en protocollen nodig zijn.
Uw Media Service-account heeft een quotum voor het aantal streaming-beleidsvermeldingen. U hoeft geen nieuw streamingbeleid te maken voor elke streaming-locator.
Selecteer 'Streamingbeleid en locators' in het linkervenster van de Postman-app.
Selecteer vervolgens 'Een streaming-locator maken (voor niet-versleutelde inhoud)'.
Druk op Verzenden.
De volgende PUT-bewerking wordt verzonden.
https://management.azure.com/subscriptions/:subscriptionId/resourceGroups/:resourceGroupName/providers/Microsoft.Media/mediaServices/:accountName/streamingLocators/:streamingLocatorName?api-version={{api-version}}De bewerking heeft de volgende hoofdtekst:
{ "properties": { "streamingPolicyName": "Predefined_ClearStreamingOnly", "assetName": "testAsset1", "contentKeys": [], "filters": [] } }
Paden weergeven en streaming-URL's maken
Paden weergeven
Nu de streaming-locator is gemaakt, kunt u de streaming-URL's ophalen
Selecteer 'Streamingbeleid' in het linkervenster van de Postman-app.
Selecteer vervolgens List Paths.
Druk op Verzenden.
De volgende POST-bewerking wordt verzonden.
https://management.azure.com/subscriptions/:subscriptionId/resourceGroups/:resourceGroupName/providers/Microsoft.Media/mediaServices/:accountName/streamingLocators/:streamingLocatorName/listPaths?api-version={{api-version}}De bewerking heeft geen hoofdtekst:
Noteer een van de paden die u voor streaming wilt gebruiken. U hebt deze nodig in de volgende sectie. In dit geval worden de volgende paden geretourneerd:
"streamingPaths": [ { "streamingProtocol": "Hls", "encryptionScheme": "NoEncryption", "paths": [ "/cdb80234-1d94-42a9-b056-0eefa78e5c63/Ignite-short.ism/manifest(format=m3u8-aapl)" ] }, { "streamingProtocol": "Dash", "encryptionScheme": "NoEncryption", "paths": [ "/cdb80234-1d94-42a9-b056-0eefa78e5c63/Ignite-short.ism/manifest(format=mpd-time-csf)" ] }, { "streamingProtocol": "SmoothStreaming", "encryptionScheme": "NoEncryption", "paths": [ "/cdb80234-1d94-42a9-b056-0eefa78e5c63/Ignite-short.ism/manifest" ] } ]
De streaming-URL's maken
In deze sectie gaat u een URL voor HLS-streaming maken. URL's bestaan uit de volgende waarden:
Het protocol waarmee gegevens worden verzonden. In dit geval 'https'.
Notitie
Als een speler wordt gehost op een https-site, moet u de URL bijwerken naar 'https'.
De hostnaam van het StreamingEndpoint. In dit geval is de naam 'amsaccount-usw22.streaming.media.azure.net'.
U kunt de volgende GET-bewerking gebruiken om de hostnaam op te halen:
https://management.azure.com/subscriptions/00000000-0000-0000-0000-0000000000000/resourceGroups/:resourceGroupName/providers/Microsoft.Media/mediaservices/:accountName/streamingEndpoints/default?api-version={{api-version}}en zorg ervoor dat u de parameters
resourceGroupNameenaccountNamezo instelt dat ze overeenkomen met het omgevingsbestand.Een pad dat u in de vorige sectie (Paden weergeven) hebt verkregen.
Als resultaat wordt de volgende HLS-URL gemaakt
https://amsaccount-usw22.streaming.media.azure.net/cdb80234-1d94-42a9-b056-0eefa78e5c63/Ignite-short.ism/manifest(format=m3u8-aapl)
De streaming-URL testen
Notitie
Controleer of het streaming-eindpunt vanwaar u wilt streamen, wordt uitgevoerd.
In dit artikel gebruiken we Azure Media Player om de stream te testen.
- Open een browser en ga naar https://aka.ms/azuremediaplayer/.
- Plak in de gemaakte URL in het vak URL: .
- Klik op Update Player.
Azure Media Player kan worden gebruikt voor testdoeleinden, maar mag niet worden gebruikt in een productieomgeving.
Resources in uw Media Services-account opschonen
Over het algemeen moet u alles opschonen, behalve objecten die u van plan bent te hergebruiken (meestal gebruikt u transformaties opnieuw en behoudt u streaming-locators, enzovoort). Als u wilt dat uw account na het experiment is opgeschoond, moet u de resources verwijderen die u niet van plan bent te hergebruiken.
Als u een resource wilt verwijderen, selecteert u de Delete-bewerking onder de resource die u wilt verwijderen.
Resources opschonen
Als u de resources van de resourcegroep niet meer nodig hebt, met inbegrip van de Media Services en opslagaccounts die u hebt gemaakt voor deze zelfstudie, verwijdert u de resourcegroep die u eerder hebt gemaakt.
Voer de volgende CLI-opdracht uit:
az group delete --name amsResourceGroup
Vragen stellen, feedback geven, updates ophalen
Ga naar het artikel van de Azure Media Services-community voor verschillende manieren om vragen te stellen, feedback te geven en updates voor Media Services op te halen.
Volgende stappen
Nu u weet hoe u uw video kunt uploaden, coderen en streamen, kunt u doorgaan naar het volgende artikel: