Time shifting memungkinkan penonton memutar ulang aliran live dari waktu mulai hingga waktu saat ini. Topik ini menjelaskan cara kerja time shifting dan cara mengirim permintaan.
Kasus penggunaan
Fitur time shifting memungkinkan penonton memutar mundur aliran live selama pemutaran. Misalnya, selama siaran olahraga langsung, penonton dapat menggunakan time shifting untuk menonton ulang bagian-bagian acara tersebut.
Cara kerja
ApsaraVideo Live memotong aliran menjadi segmen TS dan mendistribusikannya ke penonton menggunakan protokol HLS. Permintaan penonton untuk playlist M3U8 berisi daftar alamat segmen TS yang terus diperbarui. Untuk streaming live HLS standar, alamat segmen TS dan file TS-nya tidak disimpan, sehingga Anda tidak dapat memutar mundur aliran live. Saat Anda mengaktifkan time shifting, ApsaraVideo Live menyimpan informasi dan file segmen TS, memungkinkan Anda memutar mundur video dari awal aliran live hingga waktu saat ini.
Batasan
Time shifting mendukung maksimal 100.000 penonton bersamaan. Untuk mendukung lebih banyak penonton, ajukan tiket. Untuk informasi selengkapnya, lihat Hubungi kami.
Penggunaan
-
Menggunakan fitur time shifting akan dikenakan biaya time shifting. Anda dikenai biaya berdasarkan jumlah data time-shifted yang ditulis dan spesifikasi pemutaran time-shifted. Untuk informasi selengkapnya tentang aturan penagihan, lihat Biaya time shifting.
-
Untuk informasi selengkapnya tentang wilayah yang mendukung fitur time shifting, lihat Wilayah yang didukung.
Untuk menggunakan time shifting, Anda harus menyelesaikan dua langkah berikut:
-
Konfigurasikan fitur time shifting.
CatatanAnda harus mengaktifkan fitur ini untuk menyimpan konten aliran live guna time shifting.
-
Kirim permintaan dari client untuk menggunakan fitur time shifting.
Konfigurasi time shifting
Meminta pemutaran time-shifted
Setelah Anda mengonfigurasi time shifting, ApsaraVideo Live menyimpan file segmen TS dari aliran live. Client kemudian dapat mengirim permintaan pemutaran time-shifted untuk memutar ulang segmen aliran live yang telah direkam sebelumnya.
Kode berikut memberikan contoh permintaan pemutaran time-shifted:
http://<DomainName>/<AppName>/<StreamName.m3u8>?aliyunols=on&lhs_offset_unix_s_0=300&auth_key=3sdda******
Seperti yang ditunjukkan dalam contoh, permintaan time shifting mirip dengan URL streaming live untuk playlist M3U8, tetapi mencakup dua parameter tambahan. aliyunols=on adalah parameter yang diperlukan, dan lhs_offset_unix_s_0=300 menunjukkan putar mundur selama 300 detik.
-
Saat mengirim permintaan time shifting melalui jaringan pengiriman konten (CDN), Anda harus menyertakan parameter
aliyunols=on. -
Saat ini, pemutaran time-shifted hanya mendukung URL streaming live dalam format
M3U8. -
Gunakan Pemutar Video Apsara untuk memutar konten time-shifted. Untuk informasi selengkapnya tentang cara menggunakan Pemutar Video Apsara, lihat SDK Pemutar.
Dalam contoh ini, konten live diputar mundur selama 300 detik. Saat memutar konten time-shifted, Anda dapat menggunakan parameter lhs_offset_unix_s_0 untuk mengatur waktu pemutaran. Format parameternya adalah lhs_{type}_{format}_{unit}_{zone}.
Tabel berikut menjelaskan variabel dalam parameter tersebut.
|
Type |
Format |
Unit |
Zone |
|
Jenis waktu. Nilai yang valid:
|
Format waktu untuk time shifting. Nilai yang valid:
|
Unit waktu untuk time shifting. Nilai yang valid:
|
Zona waktu. Nilai yang valid: 0 hingga 9, yang menunjukkan UTC+*. 0 menunjukkan UTC, dan 8 menunjukkan Waktu Standar China. Catatan
Jika Anda mengatur format ke unix, atur zone ke 0. |
Contoh berikut menunjukkan parameter time shifting:
-
lhs_start_human_s_8=20170809200010 -
lhs_start_unix_s_0=1502280113 -
lhs_end_human_s_8=20170809200010 -
lhs_vodend_unix_s_0=1502280113 -
lhs_offset_unix_ms_0=1800000(putar mundur selama 30 menit)
-
Anda harus menentukan salah satu
lhs_startataulhs_offset. Jika Anda menentukanlhs_startdanlhs_offset,lhs_offsetlebih diutamakan. -
lhs_end/lhs_vodendadalah parameter opsional. Jika Anda tidak menentukanlhs_end/lhs_vodend, pemutaran akan berlanjut dalam mode live hingga stream ingest berakhir. -
Jika Anda menentukan
lhs_end, pemutaran akan berlanjut dalam mode live hingga waktulhs_endyang ditentukan. -
Jika Anda menentukan
lhs_vodend, pemutaran akan berlanjut dalam mode video sesuai permintaan (VOD) hingga waktulhs_vodendyang ditentukan. Dalam mode VOD, semua segmen TS dikembalikan sekaligus, dan Anda dapat menggunakan bilah progres pemutar untuk mempercepat atau memutar mundur. -
Jika Anda menentukan keduanya,
lhs_enddanlhs_vodend,lhs_vodendyang akan diprioritaskan.
Jika Anda tidak mengetahui waktu mulai dan akhir yang spesifik, Anda dapat mengkueri timeline time shifting untuk mendapatkannya.
Contoh berikut menunjukkan cara mengajukan kueri lini masa pergeseran waktu:
// Ganti nilai dalam tanda kurung sudut (<>) dengan nilai aktual Anda.
http://<DomainName>/openapi/timeline/query?aliyunols=on&app=<AppName>&stream=<StreamName>&format=ts&lhs_start_unix_s_0=<StartTime>&lhs_end_unix_s_0=<endTime>&auth_key=<auth_key>
Tabel berikut menjelaskan parameter dalam contoh tersebut.
|
Parameter |
Deskripsi |
|
Metode permintaan |
GET |
|
URL |
URL permintaan. Contoh: |
|
Parameter |
|
|
Penanganan error umum |
|
Contoh berikut menunjukkan respons sampel:
{
"retCode": 0,
"description": "success",
"content": {
"current": 1514269063,
"timeline": [
{
"start": 1514269054,
"end": 1514269058
}
]
}
}
|
Parameter |
Deskripsi |
|
current |
Waktu sistem saat ini. Pemutar dapat menggunakan bidang ini untuk menyinkronkan waktu. |
|
timeline |
Periode time shifting yang valid, yang mencakup stempel waktu UNIX mulai dan akhir. |
|
start |
Waktu mulai segmen yang valid (stempel waktu UNIX). Satuan: detik. |
|
end |
Waktu akhir segmen yang valid (stempel waktu UNIX). Satuan: detik. |
-
Umumnya, satu stream ingest menghasilkan satu objek timeline. Waktu mulai sesuai dengan waktu mulai aliran live, dan waktu akhir mendekati waktu saat ini atau waktu akhir aliran live. Namun, faktor seperti gangguan aliran, re-ingest, atau fluktuasi jaringan dapat menghasilkan beberapa objek timeline.
-
Anda dapat mengkueri volume data time shifting untuk domain tertentu di Konsol. Untuk informasi selengkapnya, lihat Kueri penggunaan.
Penggunaan lanjutan
Pemutaran time-shifted hasil transkode
Anda dapat menggunakan fitur time shifting bersama dengan fitur transkoding untuk memutar aliran hasil transkode. Untuk memutar aliran hasil transkode dengan time shifting, Anda harus terlebih dahulu mengonfigurasi transkoding. Untuk informasi selengkapnya tentang cara mengonfigurasi transkoding, lihat Transkoding aliran live.
Bagian ini mengasumsikan bahwa Anda telah menyelesaikan konfigurasi transkoding.
Saat mengonfigurasi time shifting, Anda juga harus menghasilkan data time-shifted untuk aliran hasil transkode. Contoh kode berikut menunjukkan cara melakukannya:
// Menentukan apakah akan mengabaikan aliran hasil transkode yang sesuai saat menghasilkan data time-shifted. Nilai yang valid: true dan false. Nilai default: true.
openLiveShiftRequest.setIgnoreTranscode("<false>");
Untuk mengaktifkan pemutaran time-shifted, add the time-shifting parameters ke URL aliran hasil transkode.
Contoh berikut menunjukkan URL pemutaran:
http://<DomainName>/<AppName>/<StreamName_TranscodingTemplateID.m3u8>?aliyunols=on&lhs_offset_unix_s_0=300&auth_key=3sdda******
-
Anda harus melakukan re-ingest aliran untuk memutar aliran hasil transkode dengan time shifting.
-
Untuk konfigurasi transkoding yang dipicu oleh stream pulling, memutar aliran hasil transkode dengan time shifting tidak memicu transkoding. Anda harus memutar aliran live hasil transkode terlebih dahulu untuk memicu transkoding. Anda juga dapat mengonfigurasi transkoding agar dipicu oleh stream ingest.
-
Saat ini, fitur time shifting tidak mendukung aliran hasil transkode multi-bitrate.
Pemutaran time-shifted terenkapsulasi
Anda dapat menggunakan fitur Time Shifting bersama dengan fitur Encapsulation.
Layanan encapsulation ApsaraVideo Live mengurangi latensi dengan menggunakan protokol modern seperti Low-Latency HTTP Live Streaming (LL-HLS) dan format kontainer CMAF. LL-HLS mencapai latensi end-to-end 3 hingga 5 detik dengan menggunakan segmen yang lebih pendek (0,2 hingga 1 detik) dan memblokir pemuatan playlist. Format CMAF menawarkan kompatibilitas perangkat dan browser yang lebih luas dibandingkan TS tradisional serta mendukung kodek baru seperti H.265.
Jika Anda tidak familiar dengan fitur encapsulation aliran live, lihat Encapsulation aliran live.
Bagian ini mengasumsikan bahwa Anda telah menyelesaikan konfigurasi encapsulation aliran live.
Untuk memutar aliran terenkapsulasi dengan time shifting, Anda tidak perlu mengubah konfigurasi time shifting. Anda cukup menambahkan parameter time shifting ke URL aliran terenkapsulasi.
Contoh berikut menunjukkan URL pemutaran:
http://<DomainName>/<AppName>/<StreamName-EncapsulationFormat.m3u8>?aliyunols=on&lhs_offset_unix_s_0=300&auth_key=3sdda******
-
Anda harus melakukan re-ingest aliran untuk memutar aliran terenkapsulasi dengan time shifting.
-
Untuk memutar aliran yang terenkapsulasi dan hasil transkode dengan time shifting, Anda cukup menambahkan parameter time shifting ke URL aliran terenkapsulasi dan hasil transkode.
Referensi
Untuk informasi selengkapnya tentang API untuk time shifting, lihat Time shifting.