Självstudie: Koda en fjärrfil baserat på URL:en och strömma videon – Azure CLI
Varning
Azure Media Services dras tillbaka den 30 juni 2024. Mer information finns i AMS Pensionsguide.
Den här självstudien visar hur du enkelt kodar och strömmar videor på en mängd olika webbläsare och enheter med hjälp av Azure Media Services och Azure CLI. Du kan ange indatainnehåll med hjälp av HTTPS- eller SAS-URL:er eller sökvägar till filer i Azure Blob Storage.
Exemplet i den här artikeln kodar innehåll som du gör tillgängligt via en HTTPS-URL. Media Services v3 stöder för närvarande inte segmenterad överföringskodning över HTTPS-URL:er.
I slutet av den här självstudien kommer du att kunna strömma en video.
Skapa ett Media Services-konto
Innan du kan kryptera, koda, analysera, hantera och strömma medieinnehåll i Azure måste du skapa ett Media Services-konto. Kontot måste vara associerat med ett eller flera lagringskonton.
Ditt Media Services-konto och alla associerade lagringskonton måste finnas i samma Azure-prenumeration. Vi rekommenderar att du använder lagringskonton som finns på samma plats som Media Services-kontot för att begränsa kostnaderna för svarstid och utgående data.
Skapa en resursgrupp
az group create -n amsResourceGroup -l westus2
Skapa ett Azure Storage-konto
I det här exemplet skapar vi ett General-Purpose v2 Standard LRS-konto.
Om du vill experimentera med lagringskonton använder du --sku Standard_LRS
. När du väljer en SKU för produktion bör du överväga att använda --sku Standard_RAGRS
, vilket ger geografisk replikering för affärskontinuitet. Mer information finns i lagringskonton.
az storage account create -n amsstorageaccount --kind StorageV2 --sku Standard_LRS -l westus2 -g amsResourceGroup
Skapa ett Azure Media Services-konto
az ams account create --n amsaccount -g amsResourceGroup --storage-account amsstorageaccount -l westus2
Du får ett svar som liknar detta:
{
"id": "/subscriptions/<id>/resourceGroups/amsResourceGroup/providers/Microsoft.Media/mediaservices/amsaccount",
"location": "West US 2",
"mediaServiceId": "8b569c2e-d648-4fcb-9035-c7fcc3aa7ddf",
"name": "amsaccount",
"resourceGroup": "amsResourceGroupTest",
"storageAccounts": [
{
"id": "/subscriptions/<id>/resourceGroups/amsResourceGroup/providers/Microsoft.Storage/storageAccounts/amsstorageaccount",
"resourceGroup": "amsResourceGroupTest",
"type": "Primary"
}
],
"tags": null,
"type": "Microsoft.Media/mediaservices"
}
Starta slutpunkten för direktuppspelning
Följande Azure CLI-kommando startar standardslutpunkten för direktuppspelning.
az ams streaming-endpoint start -n default -a amsaccount -g amsResourceGroup
Du får ett svar som liknar detta:
{
"accessControl": null,
"availabilitySetName": null,
"cdnEnabled": true,
"cdnProfile": "AzureMediaStreamingPlatformCdnProfile-StandardVerizon",
"cdnProvider": "StandardVerizon",
"created": "2019-02-06T21:58:03.604954+00:00",
"crossSiteAccessPolicies": null,
"customHostNames": [],
"description": "",
"freeTrialEndTime": "2019-02-21T22:05:31.277936+00:00",
"hostName": "amsaccount-usw22.streaming.media.azure.net",
"id": "/subscriptions/<id>/resourceGroups/amsResourceGroup/providers/Microsoft.Media/mediaservices/amsaccount/streamingendpoints/default",
"lastModified": "2019-02-06T21:58:03.604954+00:00",
"location": "West US 2",
"maxCacheAge": null,
"name": "default",
"provisioningState": "Succeeded",
"resourceGroup": "amsResourceGroup",
"resourceState": "Running",
"scaleUnits": 0,
"tags": {},
"type": "Microsoft.Media/mediaservices/streamingEndpoints"
}
Om slutpunkten för direktuppspelning redan körs får du följande meddelande:
(InvalidOperation) The server cannot execute the operation in its current state.
Skapa en transformering för kodning av anpassningsbar bithastighet
Skapa en transformering för att konfigurera vanliga uppgifter för kodning eller analysering av videor. I det här exemplet gör vi kodning av anpassningsbar bithastighet. Sedan skickar vi ett jobb under den transformering som vi skapade. Jobbet är en begäran till Media Services om att tillämpa transformeringen på den angivna video- eller ljudinnehållsinmatningen.
az ams transform create --name testEncodingTransform --preset AdaptiveStreaming --description 'a simple Transform for Adaptive Bitrate Encoding' -g amsResourceGroup -a amsaccount
Du får ett svar som liknar detta:
{
"created": "2019-02-15T00:11:18.506019+00:00",
"description": "a simple Transform for Adaptive Bitrate Encoding",
"id": "/subscriptions/<id>/resourceGroups/amsResourceGroup/providers/Microsoft.Media/mediaservices/amsaccount/transforms/testEncodingTransform",
"lastModified": "2019-02-15T00:11:18.506019+00:00",
"name": "testEncodingTransform",
"outputs": [
{
"onError": "StopProcessingJob",
"preset": {
"odatatype": "#Microsoft.Media.BuiltInStandardEncoderPreset",
"presetName": "AdaptiveStreaming"
},
"relativePriority": "Normal"
}
],
"resourceGroup": "amsResourceGroup",
"type": "Microsoft.Media/mediaservices/transforms"
}
Skapa en utdatatillgång
Skapa en utdatatillgång som ska användas som kodningsjobbets utdata.
az ams asset create -n testOutputAssetName -a amsaccount -g amsResourceGroup
Du får ett svar som liknar detta:
{
"alternateId": null,
"assetId": "96427438-bbce-4a74-ba91-e38179b72f36",
"container": null,
"created": "2019-02-14T23:58:19.127000+00:00",
"description": null,
"id": "/subscriptions/<id>/resourceGroups/amsResourceGroup/providers/Microsoft.Media/mediaservices/amsaccount/assets/testOutputAssetName",
"lastModified": "2019-02-14T23:58:19.127000+00:00",
"name": "testOutputAssetName",
"resourceGroup": "amsResourceGroup",
"storageAccountName": "amsstorageaccount",
"storageEncryptionFormat": "None",
"type": "Microsoft.Media/mediaservices/assets"
}
Starta ett jobb med HTTPS-indata
När du skickar jobb för att bearbeta videor måste du tala om för Media Services var du hittar indatavideon. Ett alternativ är att ange en HTTPS-URL som jobbindata, som du ser i det här exemplet.
När du kör az ams job start
kan du applicera en etikett på jobbets utdata. Du kan sedan använda etiketten för att identifiera vad utdatatillgången är till för.
Om du tilldelar ett värde till etiketten anger du "--output-assets" till "assetname=label".
Om du inte tilldelar ett värde till etiketten anger du "--output-assets" till "assetname=".
Observera att vi lägger till "=" i
output-assets
.
az ams job start --name testJob001 --transform-name testEncodingTransform --base-uri 'https://nimbuscdn-nimbuspm.streaming.mediaservices.windows.net/2b533311-b215-4409-80af-529c3e853622/' --files 'Ignite-short.mp4' --output-assets testOutputAssetName= -a amsaccount -g amsResourceGroup
Du får ett svar som liknar detta:
{
"correlationData": {},
"created": "2019-02-15T05:08:26.266104+00:00",
"description": null,
"id": "/subscriptions/<id>/resourceGroups/amsResourceGroup/providers/Microsoft.Media/mediaservices/amsaccount/transforms/testEncodingTransform/jobs/testJob001",
"input": {
"baseUri": "https://nimbuscdn-nimbuspm.streaming.mediaservices.windows.net/2b533311-b215-4409-80af-529c3e853622/",
"files": [
"Ignite-short.mp4"
],
"label": null,
"odatatype": "#Microsoft.Media.JobInputHttp"
},
"lastModified": "2019-02-15T05:08:26.266104+00:00",
"name": "testJob001",
"outputs": [
{
"assetName": "testOutputAssetName",
"error": null,
"label": "",
"odatatype": "#Microsoft.Media.JobOutputAsset",
"progress": 0,
"state": "Queued"
}
],
"priority": "Normal",
"resourceGroup": "amsResourceGroup",
"state": "Queued",
"type": "Microsoft.Media/mediaservices/transforms/jobs"
}
Kontrollera status
Om fem minuter kontrollerar du jobbets status. Den bör vara "Klar". Det är inte klart, checka in igen om några minuter. När den är klar går du till nästa steg och skapar en positionerare för direktuppspelning.
az ams job show -a amsaccount -g amsResourceGroup -t testEncodingTransform -n testJob001
Skapa en positionerare för direktuppspelning och hämta en sökväg
När kodningen är klar är nästa steg att göra videon i utdatatillgången tillgänglig för uppspelning till klienterna. Det gör du genom att först skapa en positionerare för direktuppspelning. Skapa sedan strömmande URL:er som klienter kan använda.
Skapa en positionerare för direktuppspelning
az ams streaming-locator create -n testStreamingLocator --asset-name testOutputAssetName --streaming-policy-name Predefined_ClearStreamingOnly -g amsResourceGroup -a amsaccount
Du får ett svar som liknar detta:
{
"alternativeMediaId": null,
"assetName": "output-3b6d7b1dffe9419fa104b952f7f6ab76",
"contentKeys": [],
"created": "2019-02-15T04:35:46.270750+00:00",
"defaultContentKeyPolicyName": null,
"endTime": "9999-12-31T23:59:59.999999+00:00",
"id": "/subscriptions/<id>/resourceGroups/amsResourceGroup/providers/Microsoft.Media/mediaservices/amsaccount/streamingLocators/testStreamingLocator",
"name": "testStreamingLocator",
"resourceGroup": "amsResourceGroup",
"startTime": null,
"streamingLocatorId": "e01b2be1-5ea4-42ca-ae5d-7fe704a5962f",
"streamingPolicyName": "Predefined_ClearStreamingOnly",
"type": "Microsoft.Media/mediaservices/streamingLocators"
}
Hämta sökvägar för positionerare för direktuppspelning
az ams streaming-locator get-paths -a amsaccount -g amsResourceGroup -n testStreamingLocator
Du får ett svar som liknar detta:
{
"downloadPaths": [],
"streamingPaths": [
{
"encryptionScheme": "NoEncryption",
"paths": [
"/e01b2be1-5ea4-42ca-ae5d-7fe704a5962f/ignite.ism/manifest(format=m3u8-aapl)"
],
"streamingProtocol": "Hls"
},
{
"encryptionScheme": "NoEncryption",
"paths": [
"/e01b2be1-5ea4-42ca-ae5d-7fe704a5962f/ignite.ism/manifest(format=mpd-time-csf)"
],
"streamingProtocol": "Dash"
},
{
"encryptionScheme": "NoEncryption",
"paths": [
"/e01b2be1-5ea4-42ca-ae5d-7fe704a5962f/ignite.ism/manifest"
],
"streamingProtocol": "SmoothStreaming"
}
]
}
Kopiera HLS-sökvägen (HTTP live streaming). I det här fallet är /e01b2be1-5ea4-42ca-ae5d-7fe704a5962f/ignite.ism/manifest(format=m3u8-aapl)
det .
Skapa URL:en
Hämta värdnamnet för slutpunkten för direktuppspelning
az ams streaming-endpoint list -a amsaccount -g amsResourceGroup -n default
Kopiera värdet hostName
. I det här fallet är amsaccount-usw22.streaming.media.azure.net
det .
Montera URL:en
"https:// " + <hostName-värde> + <Hls-sökvägsvärde>
Här är ett exempel:
https://amsaccount-usw22.streaming.media.azure.net/7f19e783-927b-4e0a-a1c0-8a140c49856c/ignite.ism/manifest(format=m3u8-aapl)
Testa uppspelning med hjälp av Azure Media Player
Anteckning
Om en spelare finns på en HTTPS-webbplats måste du starta URL:en med "https".
- Öppna en webbläsare och gå till https://aka.ms/azuremediaplayer/.
- I rutan URL klistrar du in den URL som du skapade i föregående avsnitt. Du kan klistra in URL:en i HLS-, Dash- eller Smooth-format. Azure Media Player använder automatiskt ett lämpligt direktuppspelningsprotokoll för uppspelning på enheten.
- Välj Uppdatera spelare.
Anteckning
Azure Media Player kan användas vid testning, men bör inte användas i en produktionsmiljö.
Rensa resurser
Om du inte längre behöver några av resurserna i resursgruppen, inklusive Media Services och lagringskontona som du skapade för den här självstudien, tar du bort resursgruppen.
Kör det här Azure CLI-kommandot:
az group delete --name amsResourceGroup
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:
- Q & A
- Stack Overflow. Tagga frågor med
azure-media-services
. - @MSFTAzureMedia eller använd @AzureSupport för att begära support.
- Öppna en supportbegäran via Azure Portal.