Tutorial: Mengodekan file jarak jauh didasarkan pada URL dan streaming video - Azure CLI

Logo Azure Media Services v3


Peringatan

Azure Media Services akan dihentikan pada 30 Juni 2024. Untuk informasi selengkapnya, lihat Panduan Penghentian AMS.

Tutorial ini menunjukkan cara mudah mengodekan dan melakukan streaming video di berbagai browser dan perangkat dengan menggunakan Azure Media Services dan Azure CLI. Anda dapat menentukan konten input dengan menggunakan URL HTTPS atau SAS atau jalur ke file di penyimpanan Azure Blob.

Sampel dalam artikel ini mengodekan konten yang dapat diakses melalui URL HTTPS. Azure Media Services v3 saat ini tidak mendukung pengodean transfer yang dipotong melalui URL HTTPS.

Pada akhir tutorial ini, Anda akan dapat melakukan streaming video.

Memutar video

Buat Akun Azure Media Services

Sebelum dapat mengenkripsi, mengodekan, menganalisis, mengelola, dan melakukan streaming konten media di Azure, Anda perlu membuat akun Azure Media Services. Akun tersebut harus dikaitkan dengan satu atau beberapa akun penyimpanan.

Akun Azure Media Services dan semua akun penyimpanan terkait harus berada dalam langganan Azure yang sama. Sebaiknya Anda menggunakan akun penyimpanan yang berada di tempat yang sama dengan akun Azure Media Services untuk membatasi biaya latensi dan keluarnya data.

Membuat grup sumber daya

az group create -n amsResourceGroup -l westus2

Membuat akun penyimpanan Azure

Dalam contoh ini, kami membuat akun General-Purpose v2 Standard LRS.

Jika Anda ingin bereksperimen dengan akun penyimpanan, gunakan --sku Standard_LRS. Saat Anda memilih SKU untuk produksi, pertimbangkan untuk menggunakan --sku Standard_RAGRS, yang menyediakan replikasi geografis untuk kelangsungan bisnis. Untuk informasi selengkapnya, lihat akun penyimpanan.

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

Membuat akun Azure Media Services

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

Anda mendapatkan respons seperti ini:

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

Memulai titik akhir streaming

Perintah Azure CLI berikut memulai Titik Akhir Streaming default.

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

Anda mendapatkan respons seperti ini:

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

Jika titik akhir streaming sudah berjalan, Anda mendapatkan pesan ini:

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

Membuat transformasi untuk pengodean laju bit adaptif

Buat Transformasi agar mengonfigurasi tugas umum untuk pengodean atau menganalisis video. Dalam contoh ini, kami melakukan pengodean laju bit adaptif. Lalu, kami mengirimkan pekerjaan berdasarkan transformasi yang dibuat. Pekerjaan ini adalah permintaan ke Azure Media Services untuk menerapkan transformasi ke input konten video atau audio yang diberikan.

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

Anda mendapatkan respons seperti ini:

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

Membuat aset output

Buat Aset output untuk digunakan sebagai output pekerjaan pengodean.

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

Anda mendapatkan respons seperti ini:

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

Memulai pekerjaan dengan menggunakan input HTTPS

Ketika mengirimkan pekerjaan untuk memproses video, Anda harus memberi tahu Azure Media Services di mana menemukan video input. Salah satu opsinya adalah menentukan URL HTTPS sebagai input pekerjaan, seperti ditunjukkan dalam contoh ini.

Saat menjalankan az ams job start, Anda dapat mengatur label pada output pekerjaan. Lalu, Anda dapat menggunakan label untuk mengidentifikasi kegunaan aset output tersebut.

  • Jika Anda menetapkan nilai ke label, atur '--output-assets' ke "assetname=label".

  • Jika Anda tidak menetapkan nilai ke label, atur '--output-assets' ke "assetname=".

    Perhatikan bahwa kami menambah "=" ke 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

Anda mendapatkan respons seperti ini:

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

Memeriksa status

Dalam lima menit, periksa status pekerjaan. Status tersebut harus menunjukkan "Selesai." Jika bukan selesai, periksa lagi dalam beberapa menit. Setelah selesai, lanjutkan ke langkah berikutnya dan buat Pencari Lokasi Streaming.

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

Membuat pencari lokasi streaming dan mendapatkan jalur

Setelah pengodean selesai, langkah selanjutnya adalah membuat video dalam aset output tersedia untuk diputar klien. Untuk melakukan ini, pertama, buat Pencari Lokasi Streaming. Lalu, buat URL streaming yang dapat digunakan klien.

Membuat pencari lokasi streaming

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

Anda mendapatkan respons seperti ini:

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

Dapatkan jalur pencari lokasi streaming

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

Anda mendapatkan respons seperti ini:

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

Salin jalur streaming langsung (HLS) HTTP. Dalam hal ini, itu adalah /e01b2be1-5ea4-42ca-ae5d-7fe704a5962f/ignite.ism/manifest(format=m3u8-aapl).

Membuat URL

Dapatkan nama host titik akhir streaming

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

Salin nilai hostName. Dalam hal ini, itu adalah amsaccount-usw22.streaming.media.azure.net.

Merakit URL

"https:// " + <nilai hostName> + <nilai jalur Hls>

Berikut contohnya:

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

Menguji pemutaran dengan menggunakan Azure Media Player

Catatan

Jika pemutar dihosting di situs HTTPS, pastikan untuk memulai URL dengan “https”.

  1. Buka browser web dan buka https://aka.ms/azuremediaplayer/.
  2. Dalam kotak URL, tempelkan URL yang Anda buat di bagian sebelumnya. Anda dapat menempel URL dalam format HLS, Dash, atau Smooth. Azure Media Player akan secara otomatis menggunakan protokol streaming yang sesuai untuk pemutaran di perangkat Anda.
  3. Pilih Perbarui Pemutar.

Catatan

Azure Media Player dapat digunakan untuk pengujian tetapi tidak boleh digunakan di lingkungan produksi.

Bersihkan sumber daya

Jika Anda tidak lagi perlu sumber daya di grup sumber daya, termasuk Azure Media Services dan akun penyimpanan yang dibuat untuk tutorial ini, hapus grup sumber daya.

Jalankan perintah Azure CLI ini:

az group delete --name amsResourceGroup

Dapatkan bantuan dan dukungan

Anda dapat menghubungi Media Services dengan pertanyaan atau mengikuti pembaruan kami dengan salah satu metode berikut: