Filter dan manifes dinamis

logo layanan media


Mulai dari rilis 2.17, Media Services memungkinkan Anda menentukan filter untuk aset Anda. Filter ini merupakan aturan sisi server yang memberikan opsi bagi pelanggan untuk melakukan hal-hal seperti: memutar kembali satu bagian video (bukan memutar seluruh video), atau menentukan hanya satu subset rendisi audio dan video saja yang dapat ditangani oleh perangkat pelanggan (bukan memilih semua rendisi yang terkait dengan aset). Pemfilteran aset ini dicapai melalui Manifes Dinamis yang dibuat berdasarkan permintaan pelanggan untuk streaming video berdasarkan filter tertentu.

Topik ini membahas skenario umum di mana menggunakan filter akan bermanfaat bagi pelanggan Anda dan tautan ke topik yang menunjukkan bagaimana cara membuat filter secara terprogram.

Gambaran Umum

Saat Anda mengirimkan konten kepada pelanggan (streaming acara langsung atau video berdasarkan permintaan), tujuan Anda adalah mengirimkan video berkualitas tinggi ke berbagai perangkat dalam kondisi jaringan yang berbeda. Untuk mencapai tujuan ini, lakukanlah hal berikut:

  • kodekan streaming Anda ke aliran video laju bit-multi (laju bit adaptif) (ini akan menjaga kualitas dan kondisi jaringan) dan
  • gunakan Media Services Kemasan Dinamis untuk mengemas ulang streaming Anda secara dinamis ke dalam protokol yang berbeda (ini akan menjaga streaming di perangkat yang berbeda). Media Services mendukung pengiriman teknologi laju bit adaptif berikut: Streaming Langsung HTTP (HLS/HTTP Live Streaming), Streaming Lancar, dan MPEG DASH.

File manifes

Saat Anda mengkodekan aset untuk streaming laju bit adaptif, file manifes (daftar putar) dibuat (file berbasis teks atau berbasis XML). File manifest mencakup metadata streaming seperti: tipe trek (audio, video, atau teks), nama trek, waktu mulai dan berakhir, laju bit (kualitas), bahasa trek, jendela presentasi (jendela geser durasi tetap), dan kodek video (FourCC). File manifes ini juga menginstruksikan pemutar untuk mengambil fragmen berikutnya dengan memberikan informasi tentang fragmen video yang tersedia yang dapat diputar selanjutnya dan lokasinya. Fragmen (atau segmen) adalah "potongan" konten video yang sebenarnya.

Berikut adalah contoh file manifes:

<?xml version="1.0" encoding="UTF-8"?>    
<SmoothStreamingMedia MajorVersion="2" MinorVersion="0" Duration="330187755" TimeScale="10000000">

<StreamIndex Chunks="17" Type="video" Url="QualityLevels({bitrate})/Fragments(video={start time})" QualityLevels="8">
<QualityLevel Index="0" Bitrate="5860941" FourCC="H264" MaxWidth="1920" MaxHeight="1080" CodecPrivateData="0000000167640028AC2CA501E0089F97015202020280000003008000001931300016E360000E4E1FF8C7076850A4580000000168E9093525" />
<QualityLevel Index="1" Bitrate="4602724" FourCC="H264" MaxWidth="1920" MaxHeight="1080" CodecPrivateData="0000000167640028AC2CA501E0089F97015202020280000003008000001931100011EDC00002CD29FF8C7076850A45800000000168E9093525" />
<QualityLevel Index="2" Bitrate="3319311" FourCC="H264" MaxWidth="1280" MaxHeight="720" CodecPrivateData="000000016764001FAC2CA5014016EC054808080A00000300020000030064C0800067C28000103667F8C7076850A4580000000168E9093525" />
<QualityLevel Index="3" Bitrate="2195119" FourCC="H264" MaxWidth="960" MaxHeight="540" CodecPrivateData="000000016764001FAC2CA503C045FBC054808080A000000300200000064C1000044AA0000ABA9FE31C1DA14291600000000168E9093525" />
<QualityLevel Index="4" Bitrate="1469881" FourCC="H264" MaxWidth="960" MaxHeight="540" CodecPrivateData="000000016764001FAC2CA503C045FBC054808080A000000300200000064C04000B71A0000E4E1FF8C7076850A4580000000168E9093525" />
<QualityLevel Index="5" Bitrate="978815" FourCC="H264" MaxWidth="640" MaxHeight="360" CodecPrivateData="000000016764001EAC2CA50280BFE5C0548303032000000300200000064C08001E8480004C4B7F8C7076850A45800000000168E9093525" />
<QualityLevel Index="6" Bitrate="638374" FourCC="H264" MaxWidth="640" MaxHeight="360" CodecPrivateData="000000016764001EAC2CA50280BFE5C0548303032000000300200000064C080013D60000C65DFE31C1DA1429160000000168E9093525" />
<QualityLevel Index="7" Bitrate="388851" FourCC="H264" MaxWidth="320" MaxHeight="180" CodecPrivateData="000000016764000DAC2CA505067E7C054830303200000300020000030064C040030D40003D093F8C7076850A45800000000168E9093525" />

<c t="0" d="20000000" /><c d="20000000" /><c d="20000000" /><c d="20000000" /><c d="20000000" /><c d="20000000" /><c d="20000000" /><c d="20000000" /><c d="20000000" /><c d="20000000" /><c d="20000000" /><c d="20000000" /><c d="20000000" /><c d="20000000" /><c d="20000000" /><c d="20000000" /><c d="9600000"/>
</StreamIndex>


<StreamIndex Chunks="17" Type="audio" Url="QualityLevels({bitrate})/Fragments(AAC_und_ch2_128kbps={start time})" QualityLevels="1" Name="AAC_und_ch2_128kbps">
<QualityLevel AudioTag="255" Index="0" BitsPerSample="16" Bitrate="125658" FourCC="AACL" CodecPrivateData="1210" Channels="2" PacketSize="4" SamplingRate="44100" />

<c t="0" d="20201360" /><c d="20201361" /><c d="20201360" /><c d="20201361" /><c d="20201360" /><c d="20201361" /><c d="20201360" /><c d="20201361" /><c d="20201360" /><c d="20201361" /><c d="20201360" /><c d="20201361" /><c d="20201361" /><c d="20201360" /><c d="20201361" /><c d="20201360" /><c d="6965987" /></StreamIndex>


<StreamIndex Chunks="17" Type="audio" Url="QualityLevels({bitrate})/Fragments(AAC_und_ch2_56kbps={start time})" QualityLevels="1" Name="AAC_und_ch2_56kbps">
<QualityLevel AudioTag="255" Index="0" BitsPerSample="16" Bitrate="53655" FourCC="AACL" CodecPrivateData="1210" Channels="2" PacketSize="4" SamplingRate="44100" />

<c t="0" d="20201360" /><c d="20201361" /><c d="20201360" /><c d="20201361" /><c d="20201360" /><c d="20201361" /><c d="20201360" /><c d="20201361" /><c d="20201360" /><c d="20201361" /><c d="20201360" /><c d="20201361" /><c d="20201361" /><c d="20201360" /><c d="20201361" /><c d="20201360" /><c d="6965987" /></StreamIndex>

</SmoothStreamingMedia>

Manifes dinamis

Ada skenario ketika klien Anda membutuhkan lebih banyak fleksibilitas daripada apa yang dijelaskan dalam file manifes aset default. Contohnya:

  • Spesifik perangkat: hanya mengirimkan rendisi yang ditentukan dan/atau trek bahasa tertentu yang didukung oleh perangkat yang digunakan untuk memutar kembali konten ("pemfilteran rendisi").
  • Kurangi manifes untuk memperlihatkan sub-klip acara langsung ("pemfilteran sub-klip").
  • Pangkas bagian awal video ("memangkas video").
  • Sesuaikan Jendela Presentasi (DVR) untuk memberikan panjang terbatas jendela DVR di pemutar ("menyesuaikan jendela presentasi").

Untuk mencapai fleksibilitas ini, Media Services menawarkan Manifes Dinamis berdasarkan filter yang telah ditentukan sebelumnya. Setelah Anda menentukan filter, klien Anda dapat menggunakannya untuk melakukan streaming rendisi atau sub-klip tertentu dari video Anda. Mereka akan menentukan filter di URL streaming. Filter dapat diterapkan ke protokol streaming laju bit adaptif yang didukung oleh Kemasan Dinamis: HLS, MPEG-DASH, dan Streaming Lancar. Contohnya:

MPEG DASH URL dengan filter

http://testendpoint-testaccount.streaming.mediaservices.windows.net/fecebb23-46f6-490d-8b70-203e86b0df58/BigBuckBunny.ism/Manifest(format=mpd-time-csf,filter=MyLocalFilter)

URL Streaming Lancar dengan filter

http://testendpoint-testaccount.streaming.mediaservices.windows.net/fecebb23-46f6-490d-8b70-203e86b0df58/BigBuckBunny.ism/Manifest(filter=MyLocalFilter)

Untuk informasi selengkapnya tentang bagaimana cara mengirimkan konten dan membangun URL streaming Anda, lihat Memberikan gambaran umum konten.

Catatan

Catat bahwa Manifes Dinamis tidak mengubah aset dan manifes default untuk aset tersebut. Klien Anda dapat memilih untuk meminta streaming dengan atau tanpa filter.

Filter

Ada dua jenis filter aset:

  • Filter global (dapat diterapkan ke aset apa pun di akun Azure Media Services, memiliki akun seumur hidup) dan
  • Filter lokal (hanya dapat diterapkan ke aset dengan filter yang dikaitkan saat dibuat, memiliki aset seumur hidup).

Tipe filter global dan lokal memiliki properti yang sama persis. Perbedaan utama antara keduanya adalah untuk skenario yang mana jenis filer apa yang lebih sesuai. Filter global umumnya sesuai untuk profil perangkat (pemfilteran rendisi) di mana filter lokal dapat digunakan untuk memangkas aset tertentu.

Skenario umum

Seperti disebutkan sebelumnya, saat Anda mengirimkan konten kepada pelanggan (streaming acara langsung atau video berdasarkan permintaan), tujuan Anda adalah untuk mengirimkan video berkualitas tinggi ke berbagai perangkat dalam kondisi jaringan yang berbeda. Sebagai tambahan, Anda mungkin memiliki persyaratan lain yang melibatkan pemfilteran aset Anda dan penggunaan Manifes Dinamis. Bagian berikut ini memberikan gambaran singkat tentang skenario pemfilteran yang berbeda.

  • Tentukan hanya sebuah subset rendisi audio dan video saja yang dapat ditangani perangkat tertentu (bukan semua rendisi yang terkait dengan aset).
  • Memutar kembali hanya bagian sebuah video (bukan memutar seluruh video).
  • Sesuaikan jendela presentasi DVR.

Pemfilteran rendisi

Anda dapat memilih untuk mengkodekan aset Anda ke beberapa profil pengkodean (Acuan Dasar H.264, Tinggi H.264, AACL, AACH, Dolby Digital Plus) dan beberapa laju bit berkualitas. Namun, tidak semua perangkat klien akan mendukung semua profil dan laju bit aset Anda. Contohnya, perangkat Android yang terdahulu hanya mendukung Acuan Dasar H.264+AACL. Mengirim laju bit yang lebih tinggi ke perangkat yang tidak bisa memperoleh manfaat, membuang bandwidth dan komputasi perangkat. Perangkat semacam itu harus mendekode semua informasi yang diberikan, hanya untuk menurunkan skala untuk tampilan.

Dengan Manifes Dinamis, Anda dapat membuat profil perangkat, seperti seluler, konsol, HD/SD, dll. dan mencakup trek dan kualitas yang Anda inginkan untuk menjadi bagian dari setiap profil.

Contoh pemfilteran rendisi

Dalam contoh berikut, encoder digunakan untuk mengodekan aset mezzanine ke dalam tujuh rendisi video ISO MP4s (dari 180p hingga 1080p). Aset yang dikodekan dapat dikemas secara dinamis ke dalam protokol streaming manapun, seperti berikut: HLS, MPEG DASH, dan Lancar. Di bagian atas diagram, manifes HLS untuk aset tanpa filter ditampilkan (berisi semua tujuh rendisi). Di kiri bawah, manifes HLS dengan nama filter "ott" yang diterapkan ditampilkan. Filter "ott" menentukan untuk menghapus semua laju bit di bawah 1Mbps, yang mengakibatkan dua tingkat kualitas di bawah dilucuti dalam respons. Di kiri bawah, manifes HLS dengan nama filter "seluler" yang diterapkan ditampilkan. Filter "seluler" menentukan penghapusan rendisi di mana resolusinya lebih besar dari 720p, yang mengakibatkan dua rendisi 1080p dilucuti.

Pemfilteran rendisi

Menghapus trek bahasa

Aset Anda mungkin mencakup beberapa bahasa audio, seperti Inggris, Spanyol, Prancis, dll. Biasanya, pilihan trek audio manajer SDK Pemutar default dan trek audio yang tersedia per pilihan pengguna. Mengembangkan Player SDK menjadi menantang, ini memerlukan implementasi yang berbeda di seluruh kerangka kerja perangkat pemutar tertentu. Juga, pada beberapa platform, Player API terbatas dan tidak mencakup fitur pilihan audio di mana pengguna tidak dapat memilih atau mengubah trek audio default. Dengan filter aset, Anda dapat mengontrol perilaku dengan membuat filter yang hanya mencakup bahasa audio yang diinginkan.

Pemfilteran trek bahasa

Memangkas awal dari sebuah aset

Di sebagian besar acara streaming langsung, operator menjalankan beberapa pengujian sebelum acara sebenarnya. Contohnya, mereka mungkin mencakup slate, sebelum acara dimulai, seperti ini: "Program akan dimulai sebentar lagi". Jika program sedang diarsipkan, data pengujian dan slate juga diarsipkan dan disertakan dalam presentasi. Namun, informasi ini sebaiknya tidak ditunjukkan kepada klien. Dengan Manifes Dinamis, Anda dapat membuat filter waktu mulai dan menghapus data yang tidak diinginkan dari manifes.

Pemangkasan dimulai

Membuat subklip (tampilan) dari arsip langsung

Banyak acara langsung berjalan lama dan arsip langsung mungkin mencakup beberapa acara. Setelah siaran langsung selesai, penyiar mungkin ingin memecah arsip langsung menjadi urutan mulai dan berhenti program yang logis. Anda dapat menerbitkan program virtual ini secara terpisah tanpa memproses posting arsip langsung dan tidak membuat aset terpisah (yang tidak mendapatkan manfaat dari fragmen cache yang sudah ada di CDN). Contoh program virtual tersebut adalah perempat permainan sepak bola atau bola basket, babak dalam bisbol, atau acara individu dari program olahraga apa pun.

Dengan Manifes Dinamis, Anda dapat membuat filter menggunakan waktu mulai/selesai dan membuat tampilan virtual di atas arsip langsung Anda.

Filter subklip

Aset Terfilter:

Berski

Menyesuaikan Jendela Presentasi (DVR)

Saat ini, Azure Media Services menawarkan arsip sirkular di mana durasinya dapat dikonfigurasi antara 5 menit - 25 jam. Pemfilteran manifes dapat digunakan untuk membuat jendela DVR bergulir di atas arsip, tanpa menghapus media. Ada banyak skenario di mana penyiar ingin menyediakan jendela DVR terbatas untuk bergerak dengan tepi langsung dan pada saat bersamaan menyimpan jendela pengarsipan yang lebih besar. Penyiar mungkin ingin menggunakan data dari jendela DVR untuk menyorot klip, atau mereka mungkin ingin menyediakan jendela DVR yang berbeda untuk perangkat yang berbeda. Contohnya, sebagian besar perangkat seluler tidak menangani jendela DVR besar (Anda dapat memiliki jendela DVR 2 menit untuk perangkat seluler dan satu jam untuk klien desktop).

Jendela DVR

Menyesuaikan LiveBackoff (posisi langsung)

Pemfilteran manifes dapat digunakan untuk menghapus beberapa detik dari tepi langsung sebuah program langsung. Pemfilteran memungkinkan penyiar untuk menonton presentasi pada titik publikasi pratinjau dan membuat titik penyisipan iklan sebelum penonton menerima streaming (tertunda selama 30 detik). Penyiar kemudian dapat mendorong iklan ini ke kerangka kerja klien mereka dengan tepat waktu bagi mereka untuk menerima dan memproses informasi sebelum kesempatan pengiklanan.

Sebagai tambahan untuk dukungan iklan, pengaturan LiveBackoff dapat digunakan untuk menyesuaikan posisi penonton sehingga ketika klien melakukan penyimpangan dan mencapai tepi langsung, mereka masih dapat menerima fragmen dari server, bukan menerima eror HTTP 404 atau 412.

livebackoff_filter

Menggabungkan beberapa aturan dalam satu filter

Anda dapat menggabungkan beberapa aturan pemfilteran dalam satu filter. Sebagai contoh bahwa Anda dapat menentukan "aturan rentang" untuk menghapus slate dari arsip langsung dan juga memfilter laju bit yang tersedia. Saat Anda menerapkan beberapa aturan pemfilteran, hasil akhirnya adalah persimpangan semua aturan.

beberapa aturan

Buat filter secara terprogram

Artikel berikut ini membahas entitas Media Services yang terkait dengan filter. Artikel ini juga menunjukkan bagaimana cara membuat filter secara terprogram.

Membuat filter dengan REST API.

Menggabungkan beberapa filter (komposisi filter)

Anda juga dapat menggabungkan beberapa filter dalam satu URL.

Skenario berikut menunjukkan mengapa Anda mungkin ingin menggabungkan filter:

  1. Anda perlu untuk memfilter kualitas video Anda untuk perangkat seluler, seperti Android atau iPad (untuk membatasi kualitas video). Untuk menghapus kualitas yang tidak diinginkan, Anda harus membuat filter global yang sesuai untuk profil perangkat. Seperti disebutkan sebelumnya dalam artikel ini, filter global dapat digunakan untuk semua aset Anda dalam akun layanan media yang sama tanpa asosiasi lebih lanjut.
  2. Anda juga ingin memangkas waktu mulai dan selesai aset. Untuk mencapai hal ini, Anda akan membuat filter lokal dan mengatur waktu mulai/selesai.
  3. Anda ingin menggabungkan kedua filter ini (tanpa kombinasi, Anda perlu untuk menambahkan pemfilteran kualitas ke filter pemangkasan yang membuat penggunaan filter lebih sulit).

Untuk menggabungkan filter, Anda perlu untuk mengatur nama filter ke URL manifes/daftar putar dalam format yang dibatasi titik koma. Asumsikan Anda memiliki filter bernama MyMobileDevice yang memfilter kualitas dan Anda memiliki yang lain bernama MyStartTime untuk mengatur waktu mulai tertentu. Anda dapat menggabungkannya seperti ini:

http://teststreaming.streaming.mediaservices.windows.net/3d56a4d-b71d-489b-854f-1d67c0596966/64ff1f89-b430-43f8-87dd-56c87b7bd9e2.ism/Manifest(filter=MyMobileDevice;MyStartTime)

Anda dapat menggabungkan hingga tiga filter.

Untuk informasi lebih lanjut, lihat blog ini.

Ketahui masalah dan batasan

  • Manifes dinamis beroperasi dalam batas GOP (bingkai kunci), sehingga pemangkasan memiliki akurasi GOP.
  • Anda dapat menggunakan nama filter yang sama untuk filter lokal dan global. Filter lokal memiliki preseden yang lebih tinggi dan akan menggantikan filter global.
  • Jika Anda memperbarui filter, perlu waktu hingga 2 menit untuk titik akhir streaming refresh aturan. Jika konten disajikan menggunakan beberapa filter (dan cache dalam proksi dan cache CDN), memperbarui filter ini dapat mengakibatkan kegagalan pada pemutar. Direkomendasikan untuk menghapus cache setelah memperbarui filter. Jika opsi ini tidak memungkinkan, pertimbangkan untuk menggunakan filter lain.

Jalur pembelajaran Media Services

Media Services v3 (terbaru)

Lihat versi terbaru Azure Media Services!

Layanan Media v2 (warisan)

Berikan umpan balik

Gunakan forum User Voice untuk memberikan umpan balik dan membuat saran tentang cara meningkatkan Azure Media Services. Anda juga dapat langsung masuk ke salah satu kategori berikut:

Lihat juga

Mengirimkan Konten kepada Gambaran Umum Pelanggan