Öğretici: URL'ye göre uzak bir dosyayı kodlama ve video akışı - Azure CLI
Uyarı
Azure Media Services 30 Haziran 2024'de kullanımdan kaldırılacaktır. Daha fazla bilgi için bkz. AMS Kullanımdan Kaldırma Kılavuzu.
Bu öğreticide, Azure Media Services ve Azure CLI kullanarak çeşitli tarayıcılarda ve cihazlarda videoları kolayca kodlama ve akışla kaydetme adımları gösterilmektedir. Giriş içeriğini HTTPS veya SAS URL'lerini veya Azure Blob depolamadaki dosyaların yollarını kullanarak belirtebilirsiniz.
Bu makaledeki örnek, HTTPS URL'si aracılığıyla erişilebilir hale getirdiğiniz içeriği kodlar. Media Services v3 şu anda HTTPS URL'leri üzerinden öbekli aktarım kodlamayı desteklemez.
Bu öğreticinin sonunda video akışı yapabileceksiniz.
Media Services hesabı oluşturma
Azure'da medya içeriğini şifrelemek, kodlamak, çözümlemek, yönetmek ve akışla aktarmak için bir Media Services hesabı oluşturmanız gerekir. Bu hesabın bir veya daha fazla depolama hesabıyla ilişkilendirilmesi gerekir.
Media Services hesabınız ve ilişkili tüm depolama hesaplarınız aynı Azure aboneliğinde olmalıdır. Gecikme süresini ve veri çıkış maliyetlerini sınırlamak için Media Services hesabıyla aynı yerde bulunan depolama hesaplarını kullanmanızı öneririz.
Kaynak grubu oluşturma
az group create -n amsResourceGroup -l westus2
Azure depolama hesabı oluşturma
Bu örnekte bir General-Purpose v2 Standart LRS hesabı oluşturacağız.
Depolama hesaplarıyla denemeler yapmak istiyorsanız kullanın --sku Standard_LRS
. Üretim için bir SKU seçerken, iş sürekliliği için coğrafi çoğaltma sağlayan 'ı kullanmayı --sku Standard_RAGRS
göz önünde bulundurun. Daha fazla bilgi için bkz. depolama hesapları.
az storage account create -n amsstorageaccount --kind StorageV2 --sku Standard_LRS -l westus2 -g amsResourceGroup
Azure Media Services hesabı oluşturma
az ams account create --n amsaccount -g amsResourceGroup --storage-account amsstorageaccount -l westus2
Şuna benzer bir yanıt alırsınız:
{
"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"
}
Akış uç noktasını başlatma
Aşağıdaki Azure CLI komutu varsayılan Akış Uç Noktasını başlatır.
az ams streaming-endpoint start -n default -a amsaccount -g amsResourceGroup
Şuna benzer bir yanıt alırsınız:
{
"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"
}
Akış uç noktası zaten çalışıyorsa şu iletiyi alırsınız:
(InvalidOperation) The server cannot execute the operation in its current state.
Bit hızı uyarlamalı kodlama için dönüşüm oluşturma
Videoları kodlamaya veya analiz etmeye yönelik yaygın görevleri yapılandırmak için bir Dönüşüm oluşturun. Bu örnekte bit hızı uyarlamalı kodlama yapıyoruz. Ardından oluşturduğumuz dönüşüm altında bir iş göndeririz. İş, dönüştürmeyi verilen video veya ses içeriği girişine uygulamak için Media Services'e yapılan istektir.
az ams transform create --name testEncodingTransform --preset AdaptiveStreaming --description 'a simple Transform for Adaptive Bitrate Encoding' -g amsResourceGroup -a amsaccount
Şuna benzer bir yanıt alırsınız:
{
"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"
}
Çıktı varlığı oluşturma
Kodlama işinin çıktısı olarak kullanılacak bir çıkış Varlığı oluşturun.
az ams asset create -n testOutputAssetName -a amsaccount -g amsResourceGroup
Şuna benzer bir yanıt alırsınız:
{
"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"
}
HTTPS girişini kullanarak iş başlatma
Videoları işlemek için iş gönderdiğinizde, Media Services'e giriş videosunu nerede bulacağını söylemeniz gerekir. Bir seçenek, bu örnekte gösterildiği gibi iş girişi olarak bir HTTPS URL'si belirtmektir.
komutunu çalıştırdığınızda az ams job start
, işin çıkışında bir etiket ayarlayabilirsiniz. Ardından etiketi kullanarak çıkış varlığının ne için olduğunu belirleyebilirsiniz.
Etikete bir değer atarsanız , '--output-assets' değerini "assetname=label" olarak ayarlayın.
Etikete değer atamazsanız , '--output-assets' değerini "assetname=" olarak ayarlayın.
öğesine "=" eklediğimize
output-assets
dikkat edin.
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
Şuna benzer bir yanıt alırsınız:
{
"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"
}
Durumu kontrol etme
Beş dakika içinde işin durumunu denetleyin. "Bitti" olmalıdır. Henüz bitmedi, birkaç dakika içinde yeniden kontrol edin. tamamlandığında bir sonraki adıma geçin ve bir Akış Bulucu oluşturun.
az ams job show -a amsaccount -g amsResourceGroup -t testEncodingTransform -n testJob001
Akış bulucu oluşturma ve yol alma
Kodlama tamamlandıktan sonra, bir sonraki adım çıkış varlığındaki videoyu istemcilerin kayıttan yürütme için kullanılabilir hale getirmektir. Bunu yapmak için önce bir Akış Bulucu oluşturun. Ardından istemcilerin kullanabileceği akış URL'leri oluşturun.
Akış bulucusu oluşturma
az ams streaming-locator create -n testStreamingLocator --asset-name testOutputAssetName --streaming-policy-name Predefined_ClearStreamingOnly -g amsResourceGroup -a amsaccount
Şuna benzer bir yanıt alırsınız:
{
"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"
}
Akış bulucu yollarını alma
az ams streaming-locator get-paths -a amsaccount -g amsResourceGroup -n testStreamingLocator
Şuna benzer bir yanıt alırsınız:
{
"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"
}
]
}
HTTP canlı akış (HLS) yolunu kopyalayın. Bu durumda, şeklindedir /e01b2be1-5ea4-42ca-ae5d-7fe704a5962f/ignite.ism/manifest(format=m3u8-aapl)
.
URL'yi oluşturma
Akış uç noktası ana bilgisayar adını alma
az ams streaming-endpoint list -a amsaccount -g amsResourceGroup -n default
hostName
Değeri kopyalayın. Bu durumda, şeklindedir amsaccount-usw22.streaming.media.azure.net
.
URL'yi derleme
"https:// " + <hostName değeri> + <Hls yol değeri>
Aşağıda bir örnek verilmiştir:
https://amsaccount-usw22.streaming.media.azure.net/7f19e783-927b-4e0a-a1c0-8a140c49856c/ignite.ism/manifest(format=m3u8-aapl)
Azure Media Player kullanarak kayıttan yürütmeyi test etme
Not
Bir oynatıcı bir HTTPS sitesinde barındırılıyorsa URL'yi "https" ile başlattığınızdan emin olun.
- Bir web tarayıcısı açın ve adresine https://aka.ms/azuremediaplayer/gidin.
- URL kutusuna, önceki bölümde oluşturduğunuz URL'yi yapıştırın. URL'yi HLS, Tire veya Düzleştirme biçiminde yapıştırabilirsiniz. Azure Media Player, cihazınızda kayıttan yürütme için otomatik olarak uygun bir akış protokolü kullanır.
- Oynatıcıyı Güncelleştir'i seçin.
Not
Azure Media Player, test için kullanılabilir, ancak üretim ortamında kullanılmamalıdır.
Kaynakları temizleme
Bu öğretici için oluşturduğunuz Media Services ve depolama hesapları da dahil olmak üzere kaynak grubunuzdaki kaynaklardan herhangi birine artık ihtiyacınız yoksa kaynak grubunu silin.
Şu Azure CLI komutunu çalıştırın:
az group delete --name amsResourceGroup
Yardım ve destek alma
Aşağıdaki yöntemlerden birini kullanarak Media Services ile iletişime geçebilir veya güncelleştirmelerimizi izleyebilirsiniz:
- Q & A
- Stack Overflow. soruları ile etiketleyin
azure-media-services
. - Destek istemek için @AzureSupport @MSFTAzureMedia veya kullanın.
- Azure portal üzerinden bir destek bileti açın.