Självstudier: Koda en fjärrfil baserat på URL och strömma videon – REST
Letar du efter Media Services v2-dokumentation?
Med Azure Media Services kan du koda dina mediefiler till format som kan spelas upp på en mängd olika webbläsare och enheter. Du kanske vill strömma ditt innehåll i Apples HLS- eller MPEG DASH-formaten. Innan du strömmar, bör du koda dina högkvalitativa digitala mediafiler. Vägledning om kodning finns i Kodningskoncept.
I den här självstudien får du lära dig att koda en fil baserat på en URL och strömma videon med Azure Media Services med hjälp av REST.
Varning
Vi rekommenderar inte att du försöker omsluta REST API för Media Services direkt i din egen bibliotekskod. Om du gör det i produktionssyfte måste du implementera den fullständiga omprövningslogiken för Azure Resource Management och förstå hur du hanterar långvariga åtgärder i Azure Resource Management-API:er. Detta hanteras av klient-SDK:er för olika språk – .NET, Java, TypeScript, Python, Ruby osv. – automatiskt och minskar risken för att du får problem med logik för omtrering eller misslyckade API-anrop. Alla klient-SDK:er hanterar detta åt dig redan. Postman-samlingen tillhandahålls mer som ett undervisningsverktyg och för att visa dig vad klient-SDK:erna faktiskt gör på kabeln under utvecklingen med de olika klient-SDK:erna.

I den här självstudiekursen lär du dig att:
- Skapa ett Media Services-konto
- Åtkomst till Media Services-API:n
- Hämta Postman-filer
- Konfigurera Postman
- Skicka begäranden med Postman
- Testa strömnings-URL:en
- Rensa resurser
Om du inte har en Azure-prenumerationkan du skapa ett kostnads fritt konto innan du börjar.
Förutsättningar
Skapa ett Media Services konto.
Se till att komma ihåg de värden som du använde för resursgruppens namn och namnet på Media Services-kontot
Installera Postman REST-klienten för att köra REST API:er som visas i några AMS REST-självstudierna.
Vi använder Postman men ett REST-verktyg skulle vara lämpligt. Andra alternativ är: Visual Studio Code med REST-plugin-programmet eller Telerik Fiddler.
Hämta Postman-filer
Klona en GitHub-lagringsplats som innehåller Postman-samlingen och miljöfilerna.
git clone https://github.com/Azure-Samples/media-services-v3-rest-postman.git
API-åtkomst
Detaljerad information finns i Hämta autentiseringsuppgifter för åtkomst Media Services API
Konfigurera Postman
Konfigurera miljön
Öppna Postman-appen.
På höger sida om skärmen, väljer du alternativet Hantera miljö.

Från dialogrutan Hantera miljö, klickar du på Importera.
Bläddra till
Azure Media Service v3 Environment.postman_environment.json-filen som hämtades när du klonadehttps://github.com/Azure-Samples/media-services-v3-rest-postman.git.Miljön Azure Media Service v3-miljö läggs till.
Anteckning
Uppdatera åtkomstvariablerna med värden som du fick från avsnittet Åtkomst till Media Services API ovan.
Dubbelklicka på den valda filen och ange värden som du har fått genom att följa stegen i åtkomst till API.
Stäng dialogrutan.
Välj miljön Azure Media Service v3-miljö från listmenyn.

Konfigurera samlingen
Klicka på Importera för att importera samlingsfilen.
Bläddra till
Media Services v3.postman_collection.json-filen som hämtades när du klonadehttps://github.com/Azure-Samples/media-services-v3-rest-postman.gitVälj filen Media Services v3.postman_collection.json.

Skicka begäranden med Postman
I det här avsnittet skickar vi begäranden som är relevanta för att koda och skapa webbadresser, så att du kan direktuppspela en fil. Mer specifikt skickas följande begäranden:
- Hämta Azure AD-token för autentisering för tjänstens huvudnamn
- Starta en slutpunkt för direktuppspelning
- Skapa en utdatatillgång
- Skapa en transformering
- Skapa ett jobb
- Skapa en positionerare för direktuppspelning
- Lista sökvägar för positioneraren för direktuppspelning
Anteckning
Den här kursen förutsätter att du skapar alla resurser med unika namn.
Hämta Azure AD-token
I det vänstra fönstret i Postman-appen väljer du "Steg 1: Hämta AAD Auth-token".
Välj sedan Hämta Azure AD-token för autentisering för tjänstens huvudnamn.
Tryck på Skicka.
Följande POST-åtgärd skickas.
https://login.microsoftonline.com/:aadTenantDomain/oauth2/tokenSvaret kommer tillbaka med token och anger miljövariabeln AccessToken till token-värdet. Om du vill se koden som anger AccessToken, klickar du på fliken Tester.

Starta en slutpunkt för direktuppspelning
Om du vill aktivera direktuppspelning måste du först starta den slutpunkt för direktuppspelning som du vill strömma videon från.
Anteckning
Du debiteras bara när slutpunkten för direktuppspelning är i körningstillstånd.
I det vänstra fönstret i Postman-appen väljer du "Streaming and Live".
Välj sedan "Starta StreamingEndpoint".
Tryck på Skicka.
Följande POST-åtgärd skickas:
https://management.azure.com/subscriptions/:subscriptionId/resourceGroups/:resourceGroupName/providers/Microsoft.Media/mediaservices/:accountName/streamingEndpoints/:streamingEndpointName/start?api-version={{api-version}}Om begäran lyckas
Status: 202 Acceptedreturneras .Denna status innebär att begäran har godkänts för bearbetning. Bearbetningen har dock inte slutförts. Du kan fråga efter åtgärdsstatus baserat på värdet i
Azure-AsyncOperationsvarshuvudet.Följande GET-åtgärd returnerar till exempel status för åtgärden:
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-01Artikeln spåra asynkrona Azure-åtgärder förklarar i detalj hur du spårar status för asynkrona Azure-åtgärder via värden som returneras i svaret.
Skapa en utdatatillgång
Utdatatillgången lagrar resultatet av kodningsjobbet.
I det vänstra fönstret i Postman-appen väljer du Tillgångar.
Välj därefter Skapa eller uppdatera en tillgång.
Tryck på Skicka.
Följande PUT-åtgärd skickas:
https://management.azure.com/subscriptions/:subscriptionId/resourceGroups/:resourceGroupName/providers/Microsoft.Media/mediaServices/:accountName/assets/:assetName?api-version={{api-version}}Åtgärden har följande text:
{ "properties": { "description": "My Asset", "alternateId" : "some GUID", "storageAccountName": "<replace from environment file>", "container": "<supply any valid container name of your choosing>" } }
Anteckning
Se till att ersätta lagringskontot och containernamnen med antingen de från miljöfilen eller ange dina egna.
När du slutför stegen som beskrivs i resten av den här artikeln ser du till att ange giltiga parametrar i begärandekropparna.
Skapa en transformering
När kodningen eller bearbetningen av innehåll i Media Services görs, konfigureras vanligtvis kodningsinställningarna som ett recept. Du skickar sedan ett Jobb som tillämpar receptet på en video. Genom att skicka nya jobb för varje ny video tillämpar du receptet på alla videor i biblioteket. Ett recept i Media Services kallas för en Transformering. Mer information finns i Transformeringar och jobb. Det exempel som beskrivs i självstudien definierar ett recept som kodar videon för att strömma den till olika iOS- och Android-enheter.
När du skapar en ny instans för en Transformering, måste du ange vilken utdata du vill att den ska skapa. Den obligatoriska parametern är ett TransformOutput-objekt. Varje TransformOutput innehåller en Förinställning. I Förinställning finns stegvisa anvisningar för den video- och/eller ljudbearbetning som ska användas för att generera önskad TransformOutput. Det exempel som beskrivs i artikeln använder en inbyggd förinställning som kallas AdaptiveStreaming. Förinställningen kodar indatavideon i en automatiskt genererad bithastighetsstege (par för bithastighetsupplösning) som baseras på indatans upplösning och bithastighet, samt producerar ISO MP4-filer med H.264-video och AAC-ljud som motsvarar varje par för bithastighetsupplösningen. Information om denna förinställning finns i Automatisk generering av bithastighetsstege.
Du kan använda en inbyggd EncoderNamedPreset eller anpassade förinställningar.
Anteckning
När du skapar en Transformering bör du först kontrollera om det redan finns en med Get-metoden. Den här kursen förutsätter att du skapar transformeringen med ett unikt namn.
I det vänstra fönstret i Postman-appen väljer du "Encoding and Analysis" (Kodning och analys).
Välj sedan Skapa transformering.
Tryck på Skicka.
Följande PUT-åtgärd skickas.
https://management.azure.com/subscriptions/:subscriptionId/resourceGroups/:resourceGroupName/providers/Microsoft.Media/mediaServices/:accountName/transforms/:transformName?api-version={{api-version}}Åtgärden har följande text:
{ "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" } } ] } }
Skapa ett jobb
Ett Jobb är den faktiska begäran till Media Services om att tillämpa den skapade Transformeringen på en given indatavideo eller ett ljudinnehåll. Jobb anger information som platsen för indatavideon och platsen för utdatan.
I det här exemplet baseras jobbets indata på en HTTPS-URL ("https: / /nimbuscdn-nimbuspm.streaming.mediaservices.windows.net/2b533311-b215-4409-80af-529c3e853622/").
I det vänstra fönstret i Postman-appen väljer du "Encoding and Analysis" (Kodning och analys).
Välj därefter Skapa eller uppdatera jobbet.
Tryck på Skicka.
Följande PUT-åtgärd skickas.
https://management.azure.com/subscriptions/:subscriptionId/resourceGroups/:resourceGroupName/providers/Microsoft.Media/mediaServices/:accountName/transforms/:transformName/jobs/:jobName?api-version={{api-version}}Åtgärden har följande text:
{ "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" } ] } }
Jobbet tar en stund att slutföra och du meddelas när detta sker. Om du vill se förloppet för jobbet rekommenderar vi att du använder Event Grid. Det är utformat för hög tillgänglighet, konsekvent prestanda och dynamisk skalning. Med Event Grid kan dina appar lyssna efter och reagera på händelser från i princip alla Azure-tjänster, samt även från anpassade källor. Med enkel och HTTP-baserad reaktiv händelsehantering blir det lättare att skapa effektiva lösningar med hjälp av intelligent filtrering och dirigering av händelser. Se Dirigera händelser till en anpassad webbslutpunkt.
Jobb har vanligtvis följande tillstånd: Schemalagd, I kö, Bearbetas, Slutförd (slutlig status). Om jobbet har påträffat ett fel visas tillståndet Fel. Om jobbet avbryts visas Avbryter och Avbruten när det är klart.
Jobbfelkoder
Se Felkoder.
Skapa en positionerare för direktuppspelning
När kodningsjobbet är klart, är nästa steg att göra videon i utdatatillgången tillgänglig för uppspelning av klienter. Du kan göra detta i två steg: Först skapar du en StreamingLocator och därefter skapar du de strömmande URL:er som klienterna ska använda.
Processen att skapa en positionerare för direktuppspelning kallas för publicering. Som standard är positioneraren för direktuppspelning giltig omedelbart efter att du har gjort API-anropen och varar tills den tas bort, såvida du inte konfigurerar valfria start- och sluttider.
När du skapar en StreamingLocator behöver du ange önskat StreamingPolicyName. I det här exemplet kommer du att strömma okrypterat (eller icke-krypterat) innehåll, så den fördefinierade rensade direktuppspelningsprincipen "Predefined_ClearStreamingOnly" används.
Viktigt
Om du använder en anpassad StreamingPolicy bör du skapa en begränsad uppsättning av sådana principer för ditt Media Service-konto, och återanvända dem för dina StreamingLocators när samma krypterings- och protokollalternativ krävs.
Media Service-kontot har en kvot för antalet strömningsprincipposter. Du bör inte skapa en ny direktuppspelningsprincip för varje positionerare för direktuppspelning.
I det vänstra fönstret i Postman-appen väljer du "Direktuppspelningsprinciper och positionerare".
Välj sedan "Skapa en positionerare för direktuppspelning (rensa)".
Tryck på Skicka.
Följande PUT-åtgärd skickas.
https://management.azure.com/subscriptions/:subscriptionId/resourceGroups/:resourceGroupName/providers/Microsoft.Media/mediaServices/:accountName/streamingLocators/:streamingLocatorName?api-version={{api-version}}Åtgärden har följande text:
{ "properties": { "streamingPolicyName": "Predefined_ClearStreamingOnly", "assetName": "testAsset1", "contentKeys": [], "filters": [] } }
Lista sökvägar och skapa URL:er för strömning
Lista sökvägar
Nu när positioneraren för direktuppspelning har skapats kan du hämta direktuppspelningswebbadresserna
I det vänstra fönstret i Postman-appen väljer du "Direktuppspelningsprinciper".
Välj sedan Lista sökvägar.
Tryck på Skicka.
Följande POST-åtgärd skickas.
https://management.azure.com/subscriptions/:subscriptionId/resourceGroups/:resourceGroupName/providers/Microsoft.Media/mediaServices/:accountName/streamingLocators/:streamingLocatorName/listPaths?api-version={{api-version}}Den här åtgärden har inget innehåll:
Notera en av sökvägarna du vill använda för strömning, du använder den i nästa avsnitt. I det här fallet returnerades följande sökvägar:
"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" ] } ]
Skapa strömnings-URL:erna
I det här avsnittet ska vi skapa en HLS-strömnings-URL. URL:er består av följande värden:
Protokollet som data skickas över. I det här fallet https.
Anteckning
Om en spelare finns på en HTTPS-webbplats uppdaterar du URL:en till ”HTTPS”.
Värdnamnet för StreamingEndpoint. I det här fallet är namnet amsaccount-usw22.streaming.media.azure.net.
Du kan använda följande hämtningsåtgärd för att hämta värdnamnet:
https://management.azure.com/subscriptions/00000000-0000-0000-0000-0000000000000/resourceGroups/:resourceGroupName/providers/Microsoft.Media/mediaservices/:accountName/streamingEndpoints/default?api-version={{api-version}}och se till att du anger
resourceGroupNameparametrarnaaccountNameoch så att de matchar miljöfilen.En sökväg som du fick i föregående avsnitt (listsökvägar).
Därmed skapades följande HLS-URL
https://amsaccount-usw22.streaming.media.azure.net/cdb80234-1d94-42a9-b056-0eefa78e5c63/Ignite-short.ism/manifest(format=m3u8-aapl)
Testa strömnings-URL:en
Anteckning
Kontrollera att slutpunkten för direktuppspelning som du vill strömma från körs.
I den här artikeln används Azure Media Player till att testa strömningen.
- Öppna en webbläsare och gå till https://aka.ms/azuremediaplayer/ .
- I URL:-rutan klistrar du in den URL som du skapat.
- Tryck på Uppdatera spelare.
Azure Media Player kan användas vid testning, men bör inte användas i en produktionsmiljö.
Rensa resurser på ditt Media Services-konto
Vanligtvis bör du rensa bort allt utom objekt som du tänker återanvända (om du t.ex. återanvänder transformeringar behåller du positionerare för direktuppspelning osv.). Om du vill att ditt konto ska vara rensat efter experimentet, bör du ta bort de resurser som du inte tänker återanvända.
Om du vill ta bort en resurs, väljer du åtgärden Ta bort... under den resurs som du vill ta bort.
Rensa resurser
Om du inte längre behöver någon av resurserna i resursgruppen, inklusive Media Services och de lagringskonton som du skapade för självstudien, tar du bort resursgruppen som du skapade tidigare.
Kör följande CLI-kommando:
az group delete --name amsResourceGroup
Ställ frågor, ge feedback och få uppdateringar
Ta en Azure Media Services community-artikel för att se olika sätt att ställa frågor, ge feedback och få uppdateringar om Media Services.
Nästa steg
Nu när du vet hur du ska ladda upp, koda och strömma videon kan du läsa följande artikel: