Öğretici: URL 'yi temel alarak uzak bir dosyayı kodlama ve videoyu akışa oluşturma-Azure CLı

media services logosu v3


v2 Media Services mı arayabilirsiniz?

Bu öğreticide, Azure Media Services ve Azure CLı kullanarak çeşitli tarayıcılarda ve cihazlarda videoların kolayca nasıl kodlanacağı ve akış akışının nasıl yapılacağı gösterilmektedir. HTTPS veya SAS URL 'Leri ya da Azure Blob depolama alanındaki dosyalara yollar kullanarak giriş içeriği belirtebilirsiniz.

Bu makaledeki örnek, bir HTTPS URL 'SI aracılığıyla erişilebilir hale getirmek istediğiniz içeriği kodluyor. Media Services v3 Şu anda HTTPS URL 'Leri üzerinden öbekli aktarım kodlamasını desteklememektedir.

Bu öğreticinin sonuna kadar video akışı sağlayabileceksiniz.

Videoyu yürütme

Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.

Media Services hesabı oluşturma

Azure 'da medya içeriğini şifrelemeden, kodlamadan, çözümleyebilmeniz, yönetebilmeniz ve akışınızdan önce 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 tüm ilişkili depolama hesaplarınız aynı Azure aboneliğinde olmalıdır. Gecikme ve veri çıkış maliyetlerini sınırlamak için Media Services hesabıyla aynı yerde olan depolama hesaplarını kullanmanızı öneririz.

Kaynak grubu oluşturma

az group create -n amsResourceGroup -l westus2

Azure depolama hesabı oluşturma

Bu örnekte, General-Purpose v2 standart LRS hesabı oluşturacağız.

Depolama hesaplarıyla denemek istiyorsanız kullanın --sku Standard_LRS . Üretim için bir SKU seçerken --sku Standard_RAGRS , iş sürekliliği için coğrafi çoğaltma sağlayan kullanmayı 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

Aşağıdakine 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 CLı komutu varsayılan akış uç noktasını başlatır.

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

Aşağıdakine 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.

Uyarlamalı bit hızı kodlaması için bir dönüşüm oluşturun

Videoları kodlamak veya analiz etmek için ortak görevleri yapılandırmak üzere bir dönüşüm oluşturun. Bu örnekte, uyarlamalı bit hızı kodlaması yapacağız. Sonra, oluşturduğumuz dönüşümün altına bir iş gönderiyoruz. İş, verilen videoya veya ses içeriği girişine dönüştürmeyi uygulamak için Media Services isteğidir.

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

Aşağıdakine 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 çıkışı olarak kullanılacak bir çıktı varlığı oluşturun.

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

Aşağıdakine 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şi kullanarak bir işi başlatma

İşleri işlem videolarına gönderdiğinizde, Media Services Giriş videosunu nerede bulacağınızı söylemeniz gerekir. Bir seçenek, bu örnekte gösterildiği gibi, iş girişi olarak bir HTTPS URL 'SI belirtmektir.

Çalıştırdığınızda az ams job start , iş çıktısında bir etiket ayarlayabilirsiniz. Daha sonra, çıktı varlığının ne için olduğunu tanımlamak için etiketini kullanabilirsiniz.

  • Etikete bir değer atarsanız, '--output-varlıklar ' öğesini "assetname = Label" olarak ayarlayın.

  • Etikete bir değer atamadıysanız, '--output-varlıklar ' öğesini "assetname =" olarak ayarlayın.

    ' A "=" eklediğimiz konusunda dikkat edin 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

Aşağıdakine 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 kontrol edin. "Tamamlandı" olmalıdır. Tamamlanmadı, birkaç dakika sonra yeniden denetleyin. İşiniz bittiğinde sonraki adıma gidin 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 çıktı kıymetindeki videonun kayıttan yürütmeye yönelik olarak kullanılabilmesini sağlar. Bunu yapmak için ilk olarak 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 

Aşağıdakine 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ı al

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

Aşağıdakine 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, /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

Değeri kopyalayın hostName . Bu durumda, amsaccount-usw22.streaming.media.azure.net .

URL 'YI birleştirme

"https://" + < hostname değer > + < 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ı HTTPS sitesinde barındırılıyorsa, URL 'YI "https" ile başlattığınızdan emin olun.

  1. Bir Web tarayıcısı açın ve adresine gidin https://aka.ms/azuremediaplayer/ .
  2. URL kutusunda, önceki bölümde oluşturduğunuz URL 'yi yapıştırın. URL 'yi HLS, Dash veya düz biçimde yapıştırabilirsiniz. Azure Media Player, cihazınızda kayıttan yürütmek için otomatik olarak uygun bir akış protokolü kullanacaktır.
  3. 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

Kaynak grubunuzda, bu öğretici için oluşturduğunuz Media Services ve depolama hesapları da dahil olmak üzere herhangi bir kaynağa ihtiyacınız yoksa, kaynak grubunu silin.

Şu Azure CLı komutunu çalıştırın:

az group delete --name amsResourceGroup

Sonraki adımlar

Media Services genel bakış