Gambaran umum templat lisensi Media Services v3 Widevine
Azure Media Services memungkinkan Anda mengenkripsi konten Anda dengan Google Widevine. Media Services juga menyediakan layanan untuk memberikan lisensi Widevine. Anda dapat menggunakan API Azure Media Services untuk mengonfigurasi lisensi Widevine. Saat pemutar mencoba memutar konten yang dilindungi Widevine, permintaan dikirim ke layanan pengiriman lisensi untuk mendapatkan lisensi. Jika layanan lisensi menyetujui permintaan tersebut, layanan akan mengeluarkan lisensi. Lisensi dikirim ke klien dan digunakan untuk mendekripsi dan memutar konten yang ditentukan.
Catatan
Widevine tidak tersedia di wilayah GovCloud.
Permintaan lisensi Widevine diformat sebagai pesan JSON.
{
"payload":"<license challenge>",
"content_id": "<content id>"
"provider": "<provider>"
"allowed_track_types":"<types>",
"content_key_specs":[
{
"track_type":"<track type 1>"
},
{
"track_type":"<track type 2>"
},
…
],
"policy_overrides":{
"can_play":<can play>,
"can persist":<can persist>,
"can_renew":<can renew>,
"rental_duration_seconds":<rental duration>,
"playback_duration_seconds":<playback duration>,
"license_duration_seconds":<license duration>,
"renewal_recovery_duration_seconds":<renewal recovery duration>,
"renewal_server_url":"<renewal server url>",
"renewal_delay_seconds":<renewal delay>,
"renewal_retry_interval_seconds":<renewal retry interval>,
"renew_with_usage":<renew with usage>
}
}
Catatan
Anda dapat membuat pesan kosong tanpa nilai, hanya "{}". Kemudian templat lisensi dibuat secara default. Fungsi defaultnya berfungsi untuk sebagian besar kasus. Skenario pengiriman lisensi berbasis Microsoft harus selalu menggunakan default. Jika Anda perlu mengatur nilai "penyedia" dan "content_id", penyedia harus mencocokkan info masuk Widevine.
Pesan JSON
Nama | Nilai | Deskripsi |
---|---|---|
payload | String Base64-encoded | Permintaan lisensi dikirim oleh klien. |
content_id | String Base64-encoded | Pengidentifikasi digunakan untuk memperoleh ID kunci dan kunci konten untuk setiap content_key_specs.track_type. |
penyedia | string | Digunakan untuk mencari kunci konten dan kebijakan. Jika pengiriman kunci Microsoft digunakan untuk pengiriman lisensi Widevine, parameter ini diabaikan. |
policy_name | string | Nama kebijakan yang terdaftar sebelumnya. Opsional. |
allowed_track_types | enum | SD_ONLY atau SD_HD. Mengontrol kunci konten mana yang disertakan dalam lisensi. |
content_key_specs | Array struktur JSON, lihat bagian "Spesifikasi kunci konten." | Kontrol yang lebih halus untuk menentukan kunci konten yang dimunculkan. Untuk informasi selengkapnya, lihat bagian "Spesifikasi kunci konten." Hanya salah satu nilai allowed_track_types and content_key_specs yang dapat ditentukan. |
use_policy_overrides_exclusively | Boolean, benar atau salah | Gunakan atribut kebijakan yang ditentukan oleh policy_overrides, dan hilangkan semua kebijakan yang disimpan sebelumnya. |
policy_overrides | Struktur JSON, lihat bagian "Pengambil alih kebijakan." | Pengaturan kebijakan untuk lisensi ini. Jika aset ini memiliki kebijakan yang telah ditentukan sebelumnya, nilai yang ditentukan tersebut digunakan. |
session_init | Struktur JSON, lihat bagian "Inisialisasi sesi." | Data opsional diteruskan ke lisensi. |
parse_only | Boolean, benar atau salah | Permintaan lisensi diuraikan, tetapi tidak ada lisensi yang dikeluarkan. Namun, nilai dari permintaan lisensi dikembalikan dalam respons. |
Spesifikasi kunci konten
Jika sudah ada kebijakan sebelumnya, tidak perlu menentukan nilai apa pun dalam spesifikasi kunci konten. Kebijakan yang sudah ada sebelumnya yang terkait dengan konten ini digunakan untuk menentukan perlindungan output, seperti Perlindungan Konten Digital Bandwidth Tinggi (HDCP) dan Sistem Manajemen Umum Salinan (CGMS). Jika kebijakan yang sudah ada sebelumnya tidak terdaftar di server lisensi Widevine, penyedia konten dapat memasukkan nilai ke dalam permintaan lisensi.
Setiap nilai content_key_specs harus ditentukan untuk semua trek, terlepas dari opsi use_policy_overrides_exclusively.
Nama | Nilai | Deskripsi |
---|---|---|
content_key_specs. track_type | string | Nama jenis trek. Jika content_key_specs ditentukan dalam permintaan lisensi, pastikan untuk menentukan semua jenis trek secara eksplisit. Jika tidak, akan berakibat kegagalan untuk memutar setelah lebih dari 10 detik. |
content_key_specs security_level |
uint32 | Menentukan persyaratan ketahanan klien untuk pemutaran. - Diperlukan kriptografi kotak putih berbasis perangkat lunak. - Diperlukan kriptografi perangkat lunak dan dekoder yang dikaburkan. - Operasi material dan kriptografi utama harus dilakukan dalam lingkungan eksekusi tepercaya yang didukung perangkat keras. - Kriptografi dan penguraian kode konten harus dilakukan dalam lingkungan eksekusi tepercaya yang didukung perangkat keras. - Kriptografi, penguraian kode, dan semua penanganan media (terkompresi dan tidak terkompresi) harus ditangani dalam lingkungan eksekusi tepercaya yang didukung perangkat keras. |
content_key_specs required_output_protection.hdc |
string, salah satu dari HDCP_NONE, HDCP_V1, HDCP_V2 | Menunjukkan apakah HDCP diperlukan. |
content_key_specs kunci |
Base64- untai (karakter) yang dikodekan |
Kunci konten yang digunakan untuk trek ini. Jika ditentukan, diperlukan track_type atau key_id. Penyedia konten dapat menggunakan opsi ini untuk memasukkan kunci konten untuk trek ini dan bukan membiarkan server lisensi Widevine membuat atau mencari kunci. |
content_key_specs.key_id | untai (karakter) yang dikodekan Base64 biner, 16 byte | Pengidentifikasi unik untuk kunci. |
Pengambil alihan kebijakan
Nama | Nilai | Deskripsi |
---|---|---|
policy_overrides.can_play | Boolean, benar atau salah | Menunjukkan bahwa pemutaran konten diperbolehkan. Defaultnya adalah false. |
policy_overrides.can_persist | Boolean, benar atau salah | Menunjukkan bahwa lisensi mungkin bertahan pada penyimpanan yang tidak mudah berubah untuk penggunaan offline. Defaultnya adalah false. |
policy_overrides.can_renew | Boolean, benar atau salah | Menunjukkan bahwa pembaruan lisensi ini diperbolehkan. Jika benar, durasi lisensi dapat diperpanjang oleh heartbeat. Defaultnya adalah false. |
policy_overrides.license_duration_seconds | int64 | Menunjukkan rentang waktu untuk lisensi ini. Nilai 0 menunjukkan bahwa tidak ada batasan untuk durasi. Defaultnya adalah 0. |
policy_overrides.rental_duration_seconds | int64 | Menunjukkan rentang waktu saat pemutaran diizinkan. Nilai 0 menunjukkan bahwa tidak ada batasan untuk durasi. Defaultnya adalah 0. |
policy_overrides.playback_duration_seconds | int64 | Tampilan rentang waktu setelah pemutaran dimulai dalam durasi lisensi. Nilai 0 menunjukkan bahwa tidak ada batasan untuk durasi. Defaultnya adalah 0. |
policy_overrides.renewal_server_url | string | Semua permintaan heartbeat (pembaruan) untuk lisensi ini diarahkan ke URL yang ditentukan. Bidang ini hanya digunakan jika can_renew benar. |
policy_overrides.renewal_delay_seconds | int64 | Berapa detik setelah license_start_time sebelum pembaruan pertama kali dicoba. Bidang ini hanya digunakan jika can_renew benar. Defaultnya adalah 0. |
policy_overrides.renewal_retry_interval_seconds | int64 | Menentukan penundaan dalam detik antara permintaan pembaruan lisensi berikutnya, jika terjadi kegagalan. Bidang ini hanya digunakan jika can_renew benar. |
policy_overrides.renewal_recovery_duration_seconds | int64 | Rentang waktu ketika pemutaran dapat dilanjutkan selagi pembaruan dicoba, namun tidak berhasil karena masalah ujung belakang dengan server lisensi. Nilai 0 menunjukkan bahwa tidak ada batasan untuk durasi. Bidang ini hanya digunakan jika can_renew benar. |
policy_overrides.renew_with_usage | Boolean, benar atau salah | Menunjukkan bahwa lisensi dikirim untuk pembaruan saat penggunaan dimulai. Bidang ini hanya digunakan jika can_renew benar. |
Inisialisasi sesi
Nama | Nilai | Deskripsi |
---|---|---|
provider_session_token | String Base64-encoded | Token sesi ini diteruskan kembali dalam lisensi dan ada dalam pembaruan berikutnya. Token sesi tidak bertahan di luar sesi. |
provider_client_token | String Base64-encoded | Token klien untuk mengirim kembali respons lisensi. Jika permintaan lisensi berisi token klien, nilai ini diabaikan. Token klien bertahan di luar sesi lisensi. |
override_provider_client_token | Boolean, benar atau salah | Jika salah dan permintaan lisensi berisi token klien, gunakan token dari permintaan tersebut meskipun token klien sudah ditentukan dalam struktur ini. Jika benar, selalu gunakan token yang ditentukan dalam struktur ini. |
Catatan tambahan
- Widevine adalah layanan yang disediakan oleh Google Inc. dan tunduk pada ketentuan layanan dan Kebijakan Privasi Google, Inc.
Dapatkan bantuan dan dukungan
Anda dapat menghubungi Media Services dengan pertanyaan atau mengikuti pembaruan kami dengan salah satu metode berikut:
- T & A
- Stack Overflow. Beri tag pertanyaan dengan
azure-media-services
. - @MSFTAzureMedia atau gunakan @AzureSupport untuk meminta dukungan.
- Buka tiket dukungan melalui portal Azure.