Oktatóanyag: Távoli fájl kódolása URL-cím alapján és a videó streamelése – Azure CLI
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.
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 start
beá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-assets
fá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.
- Nyisson meg egy webböngészőt, és lépjen a lapra https://aka.ms/azuremediaplayer/.
- 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.
- 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:
- Q & A
- Stack Overflow. Kérdések címkézése a következővel:
azure-media-services
. - @MSFTAzureMediavagy @AzureSupport használatával kérjen támogatást.
- Nyisson meg egy támogatási jegyet a Azure Portal keresztül.