Självstudie: Koda en fjärrfil baserat på URL:en och strömma videon – Azure CLI

Media Services-logotyp v3


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.

Spela upp videon

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.netdet .

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".

  1. Öppna en webbläsare och gå till https://aka.ms/azuremediaplayer/.
  2. 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.
  3. 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: