Oktatóanyag: Távoli fájl kódolása URL-cím alapján és a videó streamelése – Azure CLI

Media Services embléma v3


Figyelmeztetés

Az Azure Media Services 2024. június 30-án megszűnik. További információkért lásd az AMS kivezetési útmutatót.

Ez az oktatóanyag bemutatja, hogyan kódolhat és streamelhet videókat különböző böngészőkben és eszközökön az Azure Media Services és az Azure CLI használatával. A bemeneti tartalmakat HTTPS- vagy SAS-URL-címekkel, illetve az Azure Blob Storage-fájlok elérési útjaival adhatja meg.

A jelen cikkben szereplő példa olyan tartalmakat kódol, amelyeket EGY HTTPS URL-címen keresztül tesz elérhetővé. A Media Services v3 jelenleg nem támogatja az adattömbalapú átvitel kódolását HTTPS URL-címeken keresztül.

Az oktatóanyag végére képes lesz videó streamelésére.

Videó lejátszása

Media Services-fiók létrehozása

Mielőtt médiatartalmakat titkosíthat, kódolhat, elemezhet, kezelhet és streamelhet az Azure-ban, létre kell hoznia egy Media Services-fiókot. A fiókot egy vagy több tárfiókhoz kell társítani.

A Media Services-fióknak és az összes társított tárfióknak ugyanabban az Azure-előfizetésben kell lennie. Javasoljuk, hogy olyan tárfiókokat használjon, amelyek a Media Services-fiókkal azonos helyen találhatók a késés és az adatforgalom költségeinek csökkentése érdekében.

Erőforráscsoport létrehozása

az group create -n amsResourceGroup -l westus2

Azure-tárfiók létrehozása

Ebben a példában létrehozunk egy General-Purpose v2 Standard LRS-fiókot.

Ha tárfiókokkal szeretne kísérletezni, használja a következőt --sku Standard_LRS: . Amikor éles termékváltozatot választ, fontolja meg a használatát --sku Standard_RAGRS, amely földrajzi replikációt biztosít az üzletmenet folytonossága érdekében. További információ: Tárfiókok.

az storage account create -n amsstorageaccount --kind StorageV2 --sku Standard_LRS -l westus2 -g amsResourceGroup

Azure Media Services-fiók létrehozása

az ams account create --n amsaccount -g amsResourceGroup --storage-account amsstorageaccount -l westus2

A következőhöz hasonló választ kap:

{
  "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"
}

A streamvégpont elindítása

Az alábbi Azure CLI-parancs elindítja az alapértelmezett streamvégpontot.

az ams streaming-endpoint start  -n default -a amsaccount -g amsResourceGroup

A következőhöz hasonló választ kap:

{
  "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"
}

Ha a streamvégpont már fut, a következő üzenet jelenik meg:

(InvalidOperation) The server cannot execute the operation in its current state.

Átalakítás létrehozása adaptív sávszélességű kódoláshoz

Hozzon létre egy átalakítást a videók kódolásához vagy elemzéséhez szükséges gyakori feladatok konfigurálásához. Ebben a példában adaptív bitsebesség-kódolást alkalmazunk. Ezután elküldünk egy feladatot a létrehozott átalakítás alatt. A feladat a Media Services felé irányuló kérés, hogy alkalmazza az átalakítást a megadott video- vagy hangtartalom-bemenetre.

az ams transform create --name testEncodingTransform --preset AdaptiveStreaming --description 'a simple Transform for Adaptive Bitrate Encoding' -g amsResourceGroup -a amsaccount

A következőhöz hasonló választ kap:

{
  "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"
}

Kimeneti objektum létrehozása

Hozzon létre egy kimeneti objektumot , amely a kódolási feladat kimeneteként használható.

az ams asset create -n testOutputAssetName -a amsaccount -g amsResourceGroup

A következőhöz hasonló választ kap:

{
  "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"
}

Feladat indítása HTTPS-bemenettel

Amikor feladatokat küld a videók feldolgozásához, meg kell adnia a Media Servicesnek, hogy hol keresse meg a bemeneti videót. Az egyik lehetőség egy HTTPS URL-cím megadása feladatbemenetként, ahogy az ebben a példában is látható.

A futtatáskor az ams job startbeállíthat egy címkét a feladat kimenetén. Ezután a címkével azonosíthatja a kimeneti objektumot.

  • Ha értéket rendel a címkéhez, állítsa a "--output-assets" értéket az "assetname=label" értékre.

  • Ha nem rendel hozzá értéket a címkéhez, állítsa a "--output-assets" értéket "assetname=" értékre.

    Figyelje meg, hogy hozzáadjuk a "=" értéket a output-assetsfájlhoz.

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

A következőhöz hasonló választ kap:

{
  "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"
}

Állapot ellenőrzése

Öt perc múlva ellenőrizze a feladat állapotát. A "Kész" értéknek kell lennie. Még nem fejeződött be, néhány perc múlva ellenőrizze újra. Ha elkészült, lépjen a következő lépésre, és hozzon létre egy streamelési lokátort.

az ams job show -a amsaccount -g amsResourceGroup -t testEncodingTransform -n testJob001

Streamelési lokátor létrehozása és elérési út lekérése

A kódolás befejezése után a következő lépés az, hogy a kimeneti objektumban lévő videót elérhetővé tegye az ügyfelek számára lejátszás céljából. Ehhez először hozzon létre egy streamelési lokátort. Ezután hozza létre a streamelési URL-címeket, amelyeket az ügyfelek használhatnak.

Streamelési lokátor létrehozása

az ams streaming-locator create -n testStreamingLocator --asset-name testOutputAssetName --streaming-policy-name Predefined_ClearStreamingOnly  -g amsResourceGroup -a amsaccount

A következőhöz hasonló választ kap:

{
  "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"
}

Streamelési lokátor elérési útjainak lekérése

az ams streaming-locator get-paths -a amsaccount -g amsResourceGroup -n testStreamingLocator

A következőhöz hasonló választ kap:

{
  "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"
    }
  ]
}

Másolja ki a HTTP élő streamelési (HLS) elérési útját. Ebben az esetben a következő: /e01b2be1-5ea4-42ca-ae5d-7fe704a5962f/ignite.ism/manifest(format=m3u8-aapl).

Az URL-cím létrehozása

A streamvégpont gazdagépnevének lekérése

az ams streaming-endpoint list -a amsaccount -g amsResourceGroup -n default

Másolja ki az hostName értéket. Ebben az esetben a következő: amsaccount-usw22.streaming.media.azure.net.

Az URL-cím összeállítása

"https://" + <hostName érték> + <Hls elérési út értéke>

Bemutatunk egy példát:

https://amsaccount-usw22.streaming.media.azure.net/7f19e783-927b-4e0a-a1c0-8a140c49856c/ignite.ism/manifest(format=m3u8-aapl)

Lejátszás tesztelése az Azure Media Player használatával

Megjegyzés

Ha egy lejátszót HTTPS-webhelyen üzemeltetnek, győződjön meg arról, hogy az URL-címet "https" néven indítja el.

  1. Nyisson meg egy webböngészőt, és lépjen a lapra https://aka.ms/azuremediaplayer/.
  2. Az URL-cím mezőbe illessze be az előző szakaszban létrehozott URL-címet. Az URL-címet HLS, Dash vagy Smooth formátumban illessze be. Az Azure Media Player automatikusan megfelelő streamelési protokollt használ az eszközön való lejátszáshoz.
  3. Válassza a Lejátszó frissítése lehetőséget.

Megjegyzés

Az Azure Media Player használható tesztelésre, az éles környezetben való használata azonban nem ajánlott.

Az erőforrások eltávolítása

Ha már nincs szüksége az erőforráscsoportban található erőforrásokra, beleértve az oktatóanyaghoz létrehozott Media Services- és tárfiókokat, törölje az erőforráscsoportot.

Futtassa ezt az Azure CLI-parancsot:

az group delete --name amsResourceGroup

Súgó és támogatás

Kérdéseket tehet fel a Media Serviceshez, vagy kövesse a frissítéseket az alábbi módszerek egyikével: