Samouczek: kodowanie pliku zdalnego na podstawie adresu URL i przesyłanie strumieniowe wideo — interfejs wiersza polecenia platformy Azure
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.
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.net
to .
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".
- Otwórz przeglądarkę internetową i przejdź do strony https://aka.ms/azuremediaplayer/.
- 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.
- 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:
- Q & A
- Stack Overflow. Tagowanie pytań przy użyciu polecenia
azure-media-services
. - @MSFTAzureMedia lub użyj @AzureSupport , aby poprosić o pomoc techniczną.
- Otwórz bilet pomocy technicznej za pośrednictwem Azure Portal.