Samouczek: kodowanie pliku zdalnego na podstawie adresu URL i przesyłanie strumieniowe wideo — interfejs wiersza polecenia platformy Azure

Logo usługi Media Services w wersji 3


Ostrzeżenie

Usługa Azure Media Services zostanie wycofana 30 czerwca 2024 r. Aby uzyskać więcej informacji, zobacz Przewodnik po wycofaniu usługi AMS.

W tym samouczku pokazano, jak łatwo kodować i przesyłać strumieniowo filmy wideo w różnych przeglądarkach i urządzeniach przy użyciu usługi Azure Media Services i interfejsu wiersza polecenia platformy Azure. Zawartość wejściową można określić przy użyciu adresów URL protokołu HTTPS lub sygnatur dostępu współdzielonego lub ścieżek do plików w usłudze Azure Blob Storage.

Przykład w tym artykule koduje zawartość, którą udostępniasz za pośrednictwem adresu URL PROTOKOŁU HTTPS. Usługa Media Services w wersji 3 nie obsługuje obecnie kodowania fragmentowanego transferu za pośrednictwem adresów URL PROTOKOŁU HTTPS.

Po ukończeniu tego samouczka będziesz mieć możliwość strumieniowego przesyłania wideo.

Odtwarzanie wideo

Tworzenie konta usługi Media Services

Aby można było szyfrować, kodować, analizować i przesyłać strumieniowo zawartość multimediów na platformie Azure, musisz utworzyć konto usługi Media Services. To konto musi być skojarzone z co najmniej jednym kontem magazynu.

Twoje konto usługi Media Services i wszystkie skojarzone konta magazynu muszą znajdować się w tej samej subskrypcji platformy Azure. Zalecamy używanie kont magazynu, które znajdują się w tym samym miejscu co konto usługi Media Services, aby ograniczyć opóźnienia i koszty ruchu wychodzącego danych.

Tworzenie grupy zasobów

az group create -n amsResourceGroup -l westus2

Tworzenie konta usługi Azure Storage

W tym przykładzie utworzymy konto LRS w wersji General-Purpose w wersji 2 w warstwie Standardowa.

Jeśli chcesz poeksperymentować z kontami magazynu, użyj parametru --sku Standard_LRS. Podczas wybierania jednostki SKU dla środowiska produkcyjnego należy rozważyć użycie elementu --sku Standard_RAGRS, który zapewnia replikację geograficzną na potrzeby ciągłości działania. Aby uzyskać więcej informacji, zobacz temat Konta magazynu.

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

Tworzenie konta usługi Azure Media Services

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

Otrzymasz odpowiedź podobną do następującej:

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

Uruchamianie punktu końcowego przesyłania strumieniowego

Następujące polecenie interfejsu wiersza polecenia platformy Azure uruchamia domyślny punkt końcowy przesyłania strumieniowego.

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

Otrzymasz odpowiedź podobną do następującej:

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

Jeśli punkt końcowy przesyłania strumieniowego jest już uruchomiony, zostanie wyświetlony następujący komunikat:

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

Tworzenie przekształcenia na potrzeby kodowania z adaptacyjną szybkością transmisji bitów

Utwórz transformację w celu skonfigurowania typowych zadań związanych z kodowaniem lub analizowaniem wideo. W tym przykładzie kodujemy adaptacyjną szybkość transmisji bitów. Następnie przesyłamy zadanie w ramach utworzonej transformacji. Zadanie to żądanie do usługi Media Services, aby zastosować przekształcenie do danych wejściowych zawartości wideo lub audio.

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

Otrzymasz odpowiedź podobną do następującej:

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

Tworzenie zasobu wyjściowego

Utwórz element zawartości wyjściowej, który będzie używany jako dane wyjściowe zadania kodowania.

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

Otrzymasz odpowiedź podobną do następującej:

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

Uruchamianie zadania przy użyciu danych wejściowych HTTPS

Podczas przesyłania zadań do przetwarzania filmów wideo należy poinformować usługę Media Services, gdzie można znaleźć wejściowe wideo. Jedną z opcji jest określenie adresu URL HTTPS jako danych wejściowych zadania, jak pokazano w tym przykładzie.

Po uruchomieniu polecenia az ams job start można ustawić etykietę dla danych wyjściowych zadania. Następnie możesz użyć etykiety, aby zidentyfikować element zawartości wyjściowej.

  • Jeśli przypiszesz wartość do etykiety, ustaw wartość "--output-assets" na "assetname=label".

  • Jeśli nie przypiszesz wartości do etykiety, ustaw wartość "--output-assets" na "assetname=".

    Zwróć uwagę, że dodamy element "=" do elementu 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

Otrzymasz odpowiedź podobną do następującej:

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

Sprawdzanie stanu

W ciągu pięciu minut sprawdź stan zadania. Powinna to być wartość "Zakończono". Nie zostało to zakończone, zaewidencjonuj ponownie za kilka minut. Po zakończeniu przejdź do następnego kroku i utwórz lokalizator przesyłania strumieniowego.

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

Tworzenie lokalizatora przesyłania strumieniowego i pobieranie ścieżki

Po zakończeniu kodowania następnym krokiem jest udostępnienie klientom w wyjściowym elemencie zawartości wideo, które można odtwarzać. W tym celu najpierw utwórz lokalizator przesyłania strumieniowego. Następnie utwórz adresy URL przesyłania strumieniowego, których mogą używać klienci.

Tworzenie lokalizatora przesyłania strumieniowego

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

Otrzymasz odpowiedź podobną do następującej:

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

Pobieranie ścieżek lokalizatora przesyłania strumieniowego

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

Otrzymasz odpowiedź podobną do następującej:

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

Skopiuj ścieżkę HTTP transmisji strumieniowej na żywo (HLS). W tym przypadku jest /e01b2be1-5ea4-42ca-ae5d-7fe704a5962f/ignite.ism/manifest(format=m3u8-aapl)to .

Kompilowanie adresu URL

Pobieranie nazwy hosta punktu końcowego przesyłania strumieniowego

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

Skopiuj wartość hostName. W tym przypadku jest amsaccount-usw22.streaming.media.azure.netto .

Zmontuj adres URL

"https:// " + <wartość nazwy> hosta + <wartość ścieżki Hls>

Oto przykład:

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

Testowanie odtwarzania przy użyciu usługi Azure Media Player

Uwaga

Jeśli odtwarzacz jest hostowany w witrynie HTTPS, upewnij się, że adres URL został uruchomiony przy użyciu ciągu "https".

  1. Otwórz przeglądarkę internetową i przejdź do strony https://aka.ms/azuremediaplayer/.
  2. W polu Adres URL wklej adres URL utworzony w poprzedniej sekcji. Adres URL można wkleić w formacie HLS, Dash lub Smooth. Usługa Azure Media Player automatycznie użyje odpowiedniego protokołu przesyłania strumieniowego do odtwarzania na urządzeniu.
  3. Wybierz pozycję Aktualizuj odtwarzacz.

Uwaga

Usługi Azure Media Player można użyć do testowania, ale nie należy jej używać w środowisku produkcyjnym.

Czyszczenie zasobów

Jeśli nie potrzebujesz już żadnych zasobów w grupie zasobów, w tym kont usługi Media Services i magazynu utworzonych na potrzeby tego samouczka, usuń grupę zasobów.

Uruchom następujące polecenie interfejsu wiersza polecenia platformy Azure:

az group delete --name amsResourceGroup

Uzyskiwanie pomocy i obsługi technicznej

Możesz skontaktować się z usługą Media Services z pytaniami lub postępować zgodnie z naszymi aktualizacjami, korzystając z jednej z następujących metod: