全部产品
Search
文档中心

ApsaraVideo Live:Pergeseran waktu

更新时间:Nov 28, 2025

Pergeseran waktu memungkinkan Anda memutar ulang aliran langsung dari waktu mulai hingga waktu saat ini. Topik ini menjelaskan cara kerja pergeseran waktu dan cara mengirim permintaan.

Skenario

Fitur pergeseran waktu memungkinkan penonton memutar ulang aliran langsung selama pemutaran. Misalnya, dalam siaran olahraga langsung, penonton dapat menggunakan pergeseran waktu untuk menonton ulang bagian-bagian acara tersebut, mirip seperti menonton film atau acara TV.

Cara kerja

Aliran ApsaraVideo Live diiris menjadi segmen Transport Stream (TS) dan didistribusikan ke penonton menggunakan protokol HTTP Live Streaming (HLS). Permintaan penonton untuk daftar putar M3U8 berisi daftar alamat segmen TS yang terus diperbarui. Pada streaming langsung HLS standar, alamat segmen TS dan file TS-nya tidak disimpan, sehingga Anda tidak dapat memutar ulang aliran tersebut. Saat fitur pergeseran waktu diaktifkan, informasi dan file segmen TS akan disimpan, memungkinkan Anda memutar ulang video dari awal aliran langsung hingga waktu saat ini.

Batasan

Pergeseran waktu mendukung maksimal 100.000 penonton bersamaan. Untuk mendukung lebih banyak penonton, kirim Tiket. Untuk informasi selengkapnya tentang cara mengirim Tiket, lihat Hubungi kami.

Menggunakan fitur

Catatan
  • Penggunaan fitur pergeseran waktu dikenai biaya pergeseran waktu. Anda dikenai biaya berdasarkan jumlah data pergeseran waktu yang ditulis dan spesifikasi pemutaran pergeseran waktu. Untuk informasi selengkapnya tentang aturan penagihan, lihat Biaya pergeseran waktu.

  • Untuk informasi selengkapnya tentang wilayah yang mendukung fitur pergeseran waktu, lihat Wilayah yang didukung.

Untuk menggunakan pergeseran waktu, Anda harus menyelesaikan dua langkah berikut:

  1. Konfigurasikan fitur pergeseran waktu.

    Catatan

    Anda harus mengonfigurasi fitur ini untuk menyimpan konten aliran langsung dan mengaktifkan pergeseran waktu.

  2. Kirim permintaan dari client untuk menggunakan fitur pergeseran waktu.

Konfigurasi fitur pergeseran waktu

Konfigurasi pergeseran waktu di Konsol

  1. Masuk ke Konsol ApsaraVideo Live.

  2. Di panel navigasi sebelah kiri, pilih Feature Management > Time Shifting untuk membuka halaman Time Shifting.

  3. Pilih domain streaming yang ingin Anda konfigurasi.

  4. Klik tombol Add.

  5. Konfigurasikan pergeseran waktu.

    直播时移

    Tabel berikut menjelaskan parameter konfigurasi pergeseran waktu.

    Parameter

    Deskripsi

    AppName

    Nama aplikasi. AppName harus sama dengan AppName yang digunakan untuk pengambilan aliran agar berlaku. Nama dapat memiliki panjang hingga 255 karakter dan boleh berisi angka, huruf besar, huruf kecil, tanda hubung (-), dan garis bawah (_). Tanda hubung dan garis bawah tidak boleh berada di awal nama. Untuk mengonfigurasi pergeseran waktu untuk suatu domain, masukkan tanda bintang (*).

    Stream Name

    Nama aliran.

    Transcoded Stream

    • Source Stream Only: Hanya aliran asli yang mendukung pergeseran waktu.

    • Transcoded Stream Included: Baik aliran asli maupun aliran yang telah dikodekan ulang mendukung pergeseran waktu.

    Time-shifted Days

    ApsaraVideo Live menyediakan opsi durasi pergeseran waktu berikut.

    • 1 hari

    • 3 hari

    • 7 hari

    • 15 hari

    • 30 hari

    Catatan
    • Setelah mengonfigurasi pergeseran waktu, Anda harus melakukan pengambilan aliran ulang agar konfigurasi berlaku. Pengaturan pergeseran waktu baru tidak berlaku untuk aliran langsung yang sedang berlangsung.

    • Anda dapat langsung mengakses aliran pergeseran waktu menggunakan URL yang sesuai dengan domain streaming. Untuk informasi selengkapnya tentang spesifikasi akses URL, lihat Aturan pergeseran waktu.

    • Jika domain streaming utama dikaitkan dengan sub-domain streaming, Anda harus mengaktifkan pergeseran waktu untuk sub-domain tersebut. Jika tidak, konfigurasi pergeseran waktu tidak berlaku untuk sub-domain streaming.

  6. Klik OK.

Konfigurasi pergeseran waktu menggunakan API

// File ini dibuat secara otomatis. Jangan diedit.
package com.aliyun.sample;

import com.aliyun.tea.*;

public class Sample {

    /**
     * deskripsi
Catatan
  • Anda dapat mengatur AppName ke tanda bintang (*) untuk menerapkan konfigurasi ke semua aliran langsung di bawah domain yang ditentukan.

  • Anda dapat mengatur StreamName ke tanda bintang (*) untuk menerapkan konfigurasi ke semua aliran langsung di bawah AppName yang ditentukan.

  • Setelah menambahkan konfigurasi, Anda dapat memanggil operasi DescribeLiveShiftConfigs untuk mengkueri konfigurasi pergeseran waktu domain tertentu.

  • Untuk informasi selengkapnya tentang cara menggunakan Java SDK, lihat Panduan Pengguna Java SDK.

  • Anda harus melakukan pengambilan aliran ulang agar konfigurasi berlaku.

  • Untuk informasi selengkapnya tentang parameter, lihat OpenLiveShift.

Menggunakan fitur pergeseran waktu

Setelah mengonfigurasi pergeseran waktu, ApsaraVideo Live menyimpan file segmen TS dari aliran langsung. Client kemudian dapat mengirim permintaan pemutaran pergeseran waktu untuk memutar ulang konten langsung tersebut.

Contoh berikut menunjukkan permintaan pemutaran pergeseran waktu:

http://<DomainName>/<AppName>/<StreamName.m3u8>?aliyunols=on&lhs_offset_unix_s_0=300&auth_key=3sdda******

Seperti yang ditunjukkan dalam contoh, permintaan pergeseran waktu mirip dengan URL streaming langsung untuk file M3U8, tetapi mencakup dua parameter tambahan. aliyunols=on adalah bidang tetap, dan lhs_offset_unix_s_0=300 menunjukkan putar ulang selama 300 detik.

Catatan
  • Saat mengirim permintaan pergeseran waktu melalui CDN, Anda harus menyertakan parameter aliyunols=on.

  • Saat ini, pemutaran pergeseran waktu hanya mendukung URL streaming langsung dalam format M3U8.

  • Anda dapat menggunakan Pemutar Video Apsara untuk memutar ulang konten pergeseran waktu. Untuk informasi selengkapnya tentang cara menggunakan Pemutar Video Apsara, lihat Player SDK.

Dalam contoh ini, konten langsung diputar ulang sebesar 300 detik. Saat memutar ulang konten pergeseran waktu, 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:

  • start: waktu mulai pemutaran.

  • end: waktu akhir pemutaran.

  • vodend: menentukan waktu akhir pemutaran dalam mode video sesuai permintaan (VOD).

    Catatan

    Menyetel vodend menunjukkan bahwa pemutaran dalam mode VOD. Ini mengembalikan semua segmen TS dalam rentang waktu yang ditentukan sekaligus dan menyertakan tag endlist.

  • offset: waktu offset untuk putar ulang.

Format waktu untuk pergeseran waktu. Nilai yang valid:

  • unix: Stempel waktu UNIX.

  • human: dalam format YYYYMMDDHHMMSS. Contoh: 20170809230130.

Unit waktu untuk pergeseran waktu. Nilai yang valid:

  • s: detik.

  • ms: milidetik.

Zona waktu. Nilai yang valid: 0 hingga 9, yang menunjukkan UTC+*. 0 menunjukkan UTC, dan 8 menunjukkan Waktu Standar Tiongkok.

Catatan

Jika Anda menyetel format ke unix, setel zone ke 0.

Contoh berikut menunjukkan parameter pergeseran waktu:

  • 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 ulang selama 30 menit)

Penting
  • Anda harus menentukan salah satu dari lhs_start atau lhs_offset. Jika Anda menentukan keduanya, yaitu lhs_start dan lhs_offset, pemutaran pergeseran waktu akan didasarkan pada lhs_offset.

  • lhs_end/lhs_vodend adalah parameter opsional. Jika Anda tidak menentukan lhs_end/lhs_vodend, pemutaran akan berlanjut dalam mode langsung hingga pengambilan aliran berakhir.

  • Jika Anda menentukan lhs_end, pemutaran akan berlanjut dalam mode langsung hingga waktu lhs_end yang ditentukan.

  • Jika Anda menentukan lhs_vodend, pemutaran akan berlanjut dalam mode VOD hingga waktu lhs_vodend yang ditentukan. Dalam mode VOD, semua segmen TS dikembalikan sekaligus. Anda dapat menggunakan bilah progres pemutar untuk maju cepat dan putar ulang.

  • Jika Anda menentukan keduanya, yaitu lhs_end dan lhs_vodend, maka lhs_vodend yang diutamakan.

Jika Anda tidak mengetahui waktu mulai dan akhir yang spesifik untuk bisnis Anda, Anda dapat mengkueri garis waktu pergeseran waktu untuk mendapatkannya.

Contoh berikut menunjukkan cara mengkueri garis waktu 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>

Berikut adalah contohnya:

Nama

Deskripsi

Metode permintaan

GET

URL

URL permintaan. Contoh: http://{domain}/openapi/timeline/query. Dalam URL tersebut, {domain} adalah domain streaming Anda.

Parameter

  • aliyunols (wajib): on. (bidang tetap)

  • app (wajib): Nama aplikasi.

  • stream (wajib): Nama aliran.

  • format (wajib): ts. (bidang tetap)

    Catatan

    Saat ini, API hanya mendukung pengkuerian data pergeseran waktu dalam format ts.

  • lhs_start_unix_s_0 (wajib): Stempel waktu UNIX dari awal rentang waktu kueri. Contoh: 1724295706. Satuan: detik.

  • lhs_end_unix_s_0 (wajib): Stempel waktu UNIX dari akhir rentang waktu kueri. Contoh: 1724317306. Satuan: detik.

  • auth_key: Kunci enkripsi. Kunci ini menggunakan algoritma enkripsi yang The Same dengan kunci yang digunakan untuk URL streaming. Jika Anda tidak familiar dengan autentikasi dan enkripsi, lihat dokumen Contoh Kode Autentikasi.

Penanganan error umum

  • 403: Periksa apakah proses enkripsi untuk nilai auth_key Anda benar.

Contoh berikut menunjukkan tanggapan 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 pergeseran waktu 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.

Catatan
  • Umumnya, satu pengambilan aliran menghasilkan satu objek timeline. Waktu start mendekati waktu mulai aliran langsung, dan waktu end mendekati waktu saat ini atau waktu akhir aliran langsung. Namun, beberapa objek timeline dapat dihasilkan karena faktor seperti gangguan aliran, pengambilan ulang, atau fluktuasi jaringan.

  • Anda dapat mengkueri volume data pergeseran waktu untuk domain tertentu di Konsol. Untuk informasi selengkapnya, lihat Kueri Penggunaan.

Penggunaan lanjutan

Memutar ulang aliran yang telah dikodekan ulang dengan pergeseran waktu

Anda dapat menggunakan fitur pergeseran waktu bersamaan dengan fitur Transkoding untuk memutar ulang aliran yang telah dikodekan ulang. Untuk memutar ulang aliran yang telah dikodekan ulang dengan pergeseran waktu, Anda harus terlebih dahulu mengonfigurasi Transkoding. Untuk informasi selengkapnya tentang cara mengonfigurasi Transkoding, lihat Transkoding aliran langsung.

Bagian ini mengasumsikan bahwa Anda telah menyelesaikan konfigurasi Transkoding.

Saat mengonfigurasi pergeseran waktu, Anda juga harus menghasilkan data pergeseran waktu untuk aliran yang telah dikodekan ulang. Contoh kode berikut menunjukkan cara melakukannya:

// Menentukan apakah akan mengabaikan aliran yang telah dikodekan ulang yang sesuai saat menghasilkan data pergeseran waktu. Nilai yang valid: true dan false. Nilai default: true.
openLiveShiftRequest.setIgnoreTranscode("<false>");

Untuk mengaktifkan pemutaran pergeseran waktu, Add Time-shifting Parameters ke URL aliran yang telah dikodekan ulang.

Contoh berikut menunjukkan URL pemutaran:

http://<DomainName>/<AppName>/<StreamName_TranscodingTemplateID.m3u8>?aliyunols=on&lhs_offset_unix_s_0=300&auth_key=3sdda******
Catatan
  • Anda harus melakukan pengambilan aliran ulang untuk memutar ulang aliran yang telah dikodekan ulang dengan pergeseran waktu.

  • Untuk konfigurasi Transkoding yang dipicu oleh penarikan aliran, memutar ulang aliran yang telah dikodekan ulang dengan pergeseran waktu tidak memicu Transkoding. Anda harus memutar aliran langsung yang telah dikodekan ulang terlebih dahulu untuk memicu Transkoding. Anda juga dapat mengonfigurasi Transkoding agar dipicu oleh pengambilan aliran.

Penting
  • Saat ini, fitur pergeseran waktu tidak mendukung aliran yang telah dikodekan ulang multi-bitrate.

Memutar ulang aliran terenkapsulasi dengan pergeseran waktu

Untuk memutar ulang aliran terenkapsulasi dengan pergeseran waktu, gunakan fitur Time Shifting bersamaan dengan fitur Encapsulation.

Catatan

ApsaraVideo Live mendukung layanan enkapsulasi aliran langsung. Layanan ini mendukung protokol pemutaran seperti CMAF dan Low-Latency HTTP Live Streaming (LL-HLS) untuk secara efektif mengurangi latensi streaming langsung. Setelah Anda mengaktifkan enkapsulasi aliran langsung, aliran ApsaraVideo Live diiris menjadi segmen TS atau CMAF. Segmen-segmen tersebut didistribusikan ke penonton menggunakan protokol HLS atau LL-HLS yang ditentukan. Daftar putar M3U8 yang diminta penonton berisi daftar alamat segmen yang terus diperbarui. Dibandingkan dengan HLS, LL-HLS dapat mengiris aliran menjadi bagian-bagian yang lebih kecil dengan durasi 0,2 hingga 1 detik. LL-HLS juga mendukung pemuatan blokir untuk daftar putar M3U8 dan bagian-bagiannya, sehingga mencapai latensi ujung-ke-ujung serendah 3 hingga 5 detik. Dibandingkan dengan format TS, format kontainer CMAF didukung oleh lebih banyak perangkat dan browser serta mendukung kodek yang lebih baru, seperti H.265.

Jika Anda tidak familiar dengan fitur enkapsulasi aliran langsung, lihat Enkapsulasi aliran langsung.

Bagian ini mengasumsikan bahwa Anda telah menyelesaikan konfigurasi enkapsulasi aliran langsung.

Untuk memutar ulang aliran terenkapsulasi dengan pergeseran waktu, Anda tidak perlu mengubah konfigurasi pergeseran waktu. Anda cukup menambahkan parameter pergeseran waktu ke URL aliran terenkapsulasi.

Contoh berikut menunjukkan URL pemutaran:

http://<DomainName>/<AppName>/<StreamName-ContainerFormat.m3u8>?aliyunols=on&lhs_offset_unix_s_0=300&auth_key=3sdda******
Catatan
  • Anda harus melakukan pengambilan aliran ulang untuk memutar ulang aliran terenkapsulasi dengan pergeseran waktu.

  • Untuk memutar ulang aliran yang terenkapsulasi dan telah dikodekan ulang dengan pergeseran waktu, Anda cukup menambahkan parameter pergeseran waktu ke URL aliran yang terenkapsulasi dan telah dikodekan ulang.

Referensi

Untuk informasi selengkapnya tentang API untuk pergeseran waktu, lihat Pergeseran waktu.