Zelfstudie: Extern bestand coderen op basis van URL en video streamen - Azure CLI
Waarschuwing
Azure Media Services wordt op 30 juni 2024 buiten gebruik gesteld. Zie de handleiding voor buitengebruikstelling van AMS voor meer informatie.
Deze zelfstudie laat zien hoe u met Azure Media Services en de Azure CLI eenvoudig video's kunt coderen en streamen naar verschillende browsers en apparaten. U kunt invoerinhoud opgeven met HTTPS-URL's, SAS-URL's of paden naar bestanden in Azure Blob-opslag.
Met het voorbeeld in dit artikel wordt inhoud gecodeerd die u toegankelijk maakt via een HTTPS-URL. Op dit moment biedt Media Services v3 geen ondersteuning voor gesegmenteerde overdrachtscodering via HTTPS-URL's.
Als u deze zelfstudie hebt voltooid, weet u hoe u een video kunt streamen.
Een Media Services-account kunt maken
Voordat u media-inhoud in Azure kunt opslaan, coderen, analyseren, versleutelen, beheren en streamen, moet u een Media Services-account maken. Dat account moet worden gekoppeld aan een of meer opslagaccounts.
Uw Media Services-account en alle gekoppelde opslagaccounts moeten zich in hetzelfde Azure-abonnement bevinden. We raden u aan om opslagaccounts te gebruiken die zich op dezelfde locatie bevinden als het Media Services-account om de latentie en kosten voor gegevensuitvoer te beperken.
Een resourcegroep maken
az group create -n amsResourceGroup -l westus2
Een Azure-opslagaccount maken
In dit voorbeeld maakt u een Standard LRS-account voor algemeen gebruik (v2).
Als u wilt experimenteren met opslagaccounts, gebruikt u --sku Standard_LRS
. Als u een SKU voor productie selecteert, kunt u overwegen om --sku Standard_RAGRS
te gebruiken. Deze biedt geografische replicatie voor bedrijfscontinuïteit. Zie Opslagaccounts voor meer informatie.
az storage account create -n amsstorageaccount --kind StorageV2 --sku Standard_LRS -l westus2 -g amsResourceGroup
Een Azure Media Services-account maken
az ams account create --n amsaccount -g amsResourceGroup --storage-account amsstorageaccount -l westus2
U krijgt een antwoord zoals dit:
{
"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"
}
Het streaming-eindpunt starten
Met de volgende Azure CLI-opdracht wordt het standaard-streaming-eindpunt gestart.
az ams streaming-endpoint start -n default -a amsaccount -g amsResourceGroup
U krijgt een antwoord zoals dit:
{
"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"
}
Als het streaming-eindpunt al wordt uitgevoerd, wordt dit bericht weergegeven:
(InvalidOperation) The server cannot execute the operation in its current state.
Een transformatie maken voor adaptieve bitratecodering
Maak een Transformatie om veelvoorkomende taken voor het coderen of analyseren van video's te configureren. In dit voorbeeld gaan we een adaptieve bitratecodering uitvoeren. Vervolgens verzenden we een taak onder de transformatie die we hebben gemaakt. De taak is de aanvraag aan Media Services om de transformatie toe te passen op de inhoud van de gegeven invoervideo of -audio.
az ams transform create --name testEncodingTransform --preset AdaptiveStreaming --description 'a simple Transform for Adaptive Bitrate Encoding' -g amsResourceGroup -a amsaccount
U krijgt een antwoord zoals dit:
{
"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"
}
Een uitvoeractivum maken
Maak een uitvoerasset die wordt gebruikt als uitvoer van de coderingstaak.
az ams asset create -n testOutputAssetName -a amsaccount -g amsResourceGroup
U krijgt een antwoord zoals dit:
{
"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"
}
Een taak starten met behulp van HTTPS-invoer
Wanneer u taken verzendt voor het verwerken van video's, moet u aan Media Services de locatie van de invoervideo doorgeven. Een optie is dat u een HTTPS-URL als taakinvoer opgeeft, zoals in dit voorbeeld.
Wanneer u az ams job start
uitvoert, kunt u een label instellen op de uitvoer van de taak. U kunt vervolgens het label gebruiken om aan te geven waarvoor het uitvoeractivum bedoeld is.
Als u een waarde aan het label toewijst, stelt u '--output-assets' in op 'assetname=label'.
Als u geen waarde aan het label toewijst, stelt u '--output-assets' in op 'assetname='.
Merk op dat we '=' toevoegen aan
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
U krijgt een antwoord zoals dit:
{
"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"
}
Status controleren
Controleer na ongeveer vijf minuten de status van de taak. De naam moet 'Voltooid' zijn. Het is niet voltooid, controleer over een paar minuten opnieuw. Als deze 'Voltooid' is, gaat u naar de volgende stap en maakt u een streaming-locator.
az ams job show -a amsaccount -g amsResourceGroup -t testEncodingTransform -n testJob001
Een streaming-locator maken en een pad verkrijgen
Wanneer de codering is voltooid, bestaat de volgende stap eruit om de video in de uitvoerasset beschikbaar te maken voor weergave door clients. Hiertoe maakt u eerst een streaming-locator. Vervolgens bouwt u streaming-URL's die clients kunnen gebruiken.
Een streaming-locator te maken
az ams streaming-locator create -n testStreamingLocator --asset-name testOutputAssetName --streaming-policy-name Predefined_ClearStreamingOnly -g amsResourceGroup -a amsaccount
U krijgt een antwoord zoals dit:
{
"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"
}
Streaming-locatorpaden verkrijgen
az ams streaming-locator get-paths -a amsaccount -g amsResourceGroup -n testStreamingLocator
U krijgt een antwoord zoals dit:
{
"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"
}
]
}
Kopieer het HLS-pad (HTTP Live Streaming). In dit geval is dat /e01b2be1-5ea4-42ca-ae5d-7fe704a5962f/ignite.ism/manifest(format=m3u8-aapl)
.
De URL bouwen
De hostnaam van het streaming-eindpunt ophalen
az ams streaming-endpoint list -a amsaccount -g amsResourceGroup -n default
Kopieer de waarde van hostName
. In dit geval is dat amsaccount-usw22.streaming.media.azure.net
.
De URL samenstellen
"https:// " + <hostName-waarde> + <Hls-padwaarde>
Hier volgt een voorbeeld:
https://amsaccount-usw22.streaming.media.azure.net/7f19e783-927b-4e0a-a1c0-8a140c49856c/ignite.ism/manifest(format=m3u8-aapl)
Afspelen testen met behulp van Azure Media Player
Notitie
Als een speler wordt gehost op een HTTPS-site, moet de URL beginnen met 'https'.
- Open een webbrowser en ga naar https://aka.ms/azuremediaplayer/.
- Plak in het vak URL de URL die u in de vorige sectie hebt samengesteld. U kunt de URL plakken in de indeling HLS, Dash of Smooth. In Azure Media Player wordt automatisch een geschikt streaming-protocol gebruikt voor uw apparaat.
- Selecteer Speler bijwerken.
Notitie
Azure Media Player kan worden gebruikt voor testdoeleinden, maar mag niet worden gebruikt in een productieomgeving.
Resources opschonen
Als u de resources in de resourcegroep niet meer nodig hebt, met inbegrip van het Media Services-account en de opslagaccounts die u hebt gemaakt voor deze zelfstudie, verwijdert u de resourcegroep.
Voer deze Azure CLI-opdracht uit:
az group delete --name amsResourceGroup
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.