Share via


Esercitazione: Codificare un file remoto basato su URL ed eseguire lo streaming del video - Interfaccia della riga di comando di Azure

Logo di Servizi multimediali v3


Avviso

Servizi multimediali di Azure verrà ritirato il 30 giugno 2024. Per altre informazioni, vedere la Guida al ritiro di AMS.

Questa esercitazione illustra come codificare ed eseguire lo streaming di video su un'ampia gamma di browser e dispositivi con la massima semplicità tramite Servizi multimediali di Azure e l'interfaccia della riga di comando di Azure. È possibile specificare il contenuto di input usando URL HTTPS, URL di firma di accesso condiviso o percorsi a file che si trovano nell'archivio BLOB di Azure.

L'esempio in questo articolo codifica contenuti resi accessibili tramite un URL HTTPS. Attualmente Servizi multimediali v3 non supporta la codifica di trasferimenti in blocchi su URL HTTPS.

Al termine di questa esercitazione, sarà possibile eseguire lo streaming di un video.

Riprodurre il video

Creare un account di Servizi multimediali

Prima che sia possibile avviare operazioni di crittografia, codifica, gestione, analisi e streaming dei contenuti multimediali in Azure, è necessario creare un account di Servizi multimediali. L'account deve essere associato a uno o più account di archiviazione.

L'account di Servizi multimediali e tutti gli account di archiviazione associati devono far parte della stessa sottoscrizione di Azure. È consigliabile usare account di archiviazione situati nella stessa posizione dell'account di Servizi multimediali, per limitare la latenza e i costi relativi al traffico in uscita.

Creare un gruppo di risorse

az group create -n amsResourceGroup -l westus2

Creare un account di archiviazione di Azure

In questo esempio viene creato un account di archiviazione con ridondanza locale Standard per utilizzo generico v2.

Se si vogliono provare gli account di archiviazione, usare --sku Standard_LRS. Quando si sceglie uno SKU per la produzione è consigliabile usare --sku Standard_RAGRS, che offre la replica geografica per la continuità aziendale. Per altre informazioni, vedere account di archiviazione.

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

Creare un account di Servizi multimediali di Azure

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

Si ottiene una risposta simile alla seguente:

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

Avviare l'endpoint di streaming

Il comando seguente dell'interfaccia della riga di comando di Azure avvia l'endpoint di streaming predefinito.

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

Si ottiene una risposta simile alla seguente:

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

Se l'endpoint di streaming è già in esecuzione, viene visualizzato questo messaggio:

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

Creare una trasformazione per la codifica con bitrate adattivo

Creare una trasformazione per configurare attività comuni per la codifica o l'analisi di video. In questo esempio si esegue una codifica con bitrate adattivo. Quindi, si invia un processo nella trasformazione creata. Il processo è la richiesta inviata a Servizi multimediali per applicare la trasformazione a determinati contenuti audio o video di input.

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

Si ottiene una risposta simile alla seguente:

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

Creare un asset di output

Crea un asset di output da usare come output del processo di codifica.

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

Si ottiene una risposta simile alla seguente:

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

Avviare un processo usando input HTTPS

Quando si inviano processi per elaborare i video, è necessario indicare a Servizi multimediali dove trovare il video di input. Una delle opzioni consiste nello specificare un URL HTTPS come input del processo, come illustrato in questo esempio.

Quando si esegue az ams job start, è possibile impostare un'etichetta per l'output del processo. L'etichetta può essere usata successivamente per identificare a cosa serve l'asset di output.

  • Se si assegna un valore all'etichetta, impostare '--output-assets' su "assetname=label".

  • Se non si assegna un valore all'etichetta, impostare '--output-assets' su "assetname=".

    Si noti che si aggiunge "=" a 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

Si ottiene una risposta simile alla seguente:

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

Controlla stato

Controllare lo stato del processo dopo cinque minuti. Dovrebbe essere "Completato". Non è finito, controllare di nuovo in pochi minuti. Dopo il completamento del processo, andare al passaggio successivo e creare un localizzatore di streaming.

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

Creare un localizzatore di streaming e ottenere un percorso

Al termine della codifica, il passaggio successivo consiste nel rendere disponibile ai client il video nell'asset di output per la riproduzione. A questo scopo, prima di tutto creare un localizzatore di streaming. Successivamente, creare gli URL di streaming che i client possono usare.

Creare un localizzatore di streaming

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

Si ottiene una risposta simile alla seguente:

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

Ottenere i percorsi del localizzatore di streaming

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

Si ottiene una risposta simile alla seguente:

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

Copiare il percorso HLS (HTTP Live Streaming). In questo caso, è /e01b2be1-5ea4-42ca-ae5d-7fe704a5962f/ignite.ism/manifest(format=m3u8-aapl).

Compilare l'URL

Ottenere il nome host dell'endpoint di streaming

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

Copiare il valore hostName. In questo caso, è amsaccount-usw22.streaming.media.azure.net.

Assemblare l'URL

"https:// " + <valore> hostName + <valore percorso Hls>

Ad esempio:

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

Testare la riproduzione usando Azure Media Player

Nota

Se un lettore è ospitato in un sito HTTPS, assicurarsi che l'URL inizi con "https".

  1. Aprire un Web browser e passare a https://aka.ms/azuremediaplayer/.
  2. Nella casella URL incollare l'URL compilato nella sezione precedente. È possibile incollare l'URL in formato HLS, Dash o Smooth. Azure Media Player userà automaticamente un protocollo di streaming appropriato per la riproduzione sul dispositivo.
  3. Selezionare Update Player (Aggiorna il lettore).

Nota

Azure Media Player può essere usato a scopo di test ma non deve essere usato in un ambiente di produzione.

Pulire le risorse

Se l'intero contenuto del gruppo di risorse non è più necessario, compresi gli account di archiviazione e di Servizi multimediali creati per questa esercitazione, eliminare il gruppo di risorse.

Eseguire questo comando dell'interfaccia della riga di comando di Azure:

az group delete --name amsResourceGroup

Guida e supporto tecnico

È possibile contattare Servizi multimediali con domande o seguire gli aggiornamenti tramite uno dei metodi seguenti: