Kurz: Kódování vzdáleného souboru na základě adresy URL a streamování videa – Azure CLI

Logo Media Services v3


Upozornění

Služba Azure Media Services bude vyřazena 30. června 2024. Další informace najdete v průvodci vyřazením AMS.

V tomto kurzu se dozvíte, jak snadno kódovat a streamovat videa v různých prohlížečích a zařízeních pomocí služeb Azure Media Services a Azure CLI. Vstupní obsah můžete zadat pomocí adres URL https nebo SAS nebo cest k souborům ve službě Azure Blob Storage.

Příklad v tomto článku kóduje obsah, který zpřístupníte prostřednictvím adresy URL protokolu HTTPS. Služba Media Services v3 v současné době nepodporuje blokované kódování přenosu přes adresy URL HTTPS.

Na konci tohoto kurzu budete moct streamovat video.

Přehrávání videa

Vytvoření účtu Media Services

Před šifrováním, kódováním, analýzou, správou a streamováním mediálního obsahu v Azure musíte vytvořit účet Media Services. Tento účet musí být přidružený k jednomu nebo několika účtům úložiště.

Váš účet Media Services a všechny přidružené účty úložiště musí být ve stejném předplatném Azure. K omezení latence a nákladů na výchozí přenos dat doporučujeme používat účty úložiště, které jsou na stejném místě jako účet Media Services.

Vytvoření skupiny prostředků

az group create -n amsResourceGroup -l westus2

Vytvoření účtu úložiště Azure

V tomto příkladu vytvoříme účet LRS General-Purpose v2 Standard.

Pokud chcete experimentovat s účty úložiště, použijte --sku Standard_LRS. Když vybíráte skladovou položku pro produkční prostředí, zvažte použití --sku Standard_RAGRS, které poskytuje geografickou replikaci pro provozní kontinuitu. Další informace najdete v tématu Účty úložiště.

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

Vytvoření účtu Azure Media Services

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

Zobrazí se odpověď podobná této:

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

Spuštění koncového bodu streamování

Následující příkaz Azure CLI spustí výchozí koncový bod streamování.

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

Zobrazí se odpověď podobná této:

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

Pokud už je koncový bod streamování spuštěný, zobrazí se tato zpráva:

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

Vytvoření transformace pro kódování s adaptivní přenosovou rychlostí

Vytvořte transformaci pro konfiguraci běžných úloh pro kódování nebo analýzu videí. V tomto příkladu provádíme kódování s adaptivní přenosovou rychlostí. Pak odešleme úlohu v rámci transformace, kterou jsme vytvořili. Úloha je požadavek služby Media Services, aby použila transformaci na daný vstup videa nebo zvukového obsahu.

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

Zobrazí se odpověď podobná této:

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

Vytvoření výstupního prostředku

Vytvořte výstupní prostředek , který se použije jako výstup úlohy kódování.

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

Zobrazí se odpověď podobná této:

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

Spuštění úlohy pomocí vstupu HTTPS

Když odesíláte úlohy ke zpracování videí, musíte službě Media Services sdělit, kde má vstupní video najít. Jednou z možností je zadat adresu URL protokolu HTTPS jako vstup úlohy, jak je znázorněno v tomto příkladu.

Při spuštění příkazu az ams job startmůžete nastavit popisek ve výstupu úlohy. Tento popisek pak můžete použít k určení, k čemu výstupní prostředek slouží.

  • Pokud popisku přiřadíte hodnotu, nastavte parametr --output-assets na assetname=label.

  • Pokud popisku nepřiřadíte hodnotu, nastavte '--output-assets' na "assetname=".

    Všimněte si, že do přidáme =.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

Zobrazí se odpověď podobná této:

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

Zkontrolování stavu

Během pěti minut zkontrolujte stav úlohy. Mělo by být dokončeno. Ještě to není hotové, zkuste to znovu za pár minut. Po dokončení přejděte k dalšímu kroku a vytvořte lokátor streamování.

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

Vytvoření lokátoru streamování a získání cesty

Po dokončení kódování je dalším krokem zpřístupnění videa ve výstupním prostředku klientům pro přehrávání. Uděláte to tak, že nejprve vytvoříte lokátor streamování. Pak vytvořte adresy URL pro streamování, které můžou klienti používat.

Vytvoření lokátoru streamování

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

Zobrazí se odpověď podobná této:

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

Získání cest lokátoru streamování

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

Zobrazí se odpověď podobná této:

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

Zkopírujte cestu k živému streamování HTTP (HLS). V tomto případě je /e01b2be1-5ea4-42ca-ae5d-7fe704a5962f/ignite.ism/manifest(format=m3u8-aapl)to .

Vytvoření adresy URL

Získání názvu hostitele koncového bodu streamování

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

Zkopírujte hostName hodnotu. V tomto případě je amsaccount-usw22.streaming.media.azure.netto .

Sestavení adresy URL

"https:// " + <hostName value> + <Hls path value>

Tady je příklad:

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

Testování přehrávání pomocí Azure Media Playeru

Poznámka

Pokud je přehrávač hostovaný na webu HTTPS, nezapomeňte adresu URL začínat řetězcem https.

  1. Otevřete webový prohlížeč a přejděte na https://aka.ms/azuremediaplayer/.
  2. Do pole Adresa URL vložte adresu URL, kterou jste vytvořili v předchozí části. Adresu URL můžete vložit ve formátu HLS, Dash nebo Smooth. Azure Media Player automaticky použije vhodný protokol streamování pro přehrávání na vašem zařízení.
  3. Vyberte Aktualizovat přehrávač.

Poznámka

Azure Media Player můžete použít pro účely testování, nesmí se ale používat v produkčním prostředí.

Vyčištění prostředků

Pokud už ve skupině prostředků nepotřebujete žádné prostředky, včetně účtů Media Services a úložiště, které jste vytvořili pro účely tohoto kurzu, odstraňte skupinu prostředků.

Spusťte tento příkaz Azure CLI:

az group delete --name amsResourceGroup

Získání nápovědy a podpory

Službu Media Services můžete kontaktovat s dotazy nebo můžete sledovat naše aktualizace jedním z následujících způsobů: