Topik ini menjelaskan penyebab tingginya latensi streaming langsung dan cara mengatasinya.
Penyebab latensi streaming langsung
Stream ingest client
Group of Pictures (GOP) adalah kumpulan frame yang dimulai dengan keyframe. GOP merupakan unit dasar bagi encoder dan decoder video. Selama streaming langsung, setiap frame diberi stempel waktu dan dikirim melalui jaringan. Ukuran GOP yang besar dapat menyebabkan latensi streaming langsung.
Banyak aplikasi stream ingest pihak ketiga menambah ukuran buffer encoding untuk mencegah tersendat. Namun, buffer encoding yang besar juga dapat menyebabkan latensi streaming langsung.
Keterbatasan perangkat keras dapat menghalangi encoder memenuhi persyaratan bitrate, laju frame, dan pengaturan encoding profil tinggi. Hal ini menyebabkan penundaan encoding yang berdampak pada streaming langsung.
Server-side
Sebelum pemutaran dimulai, sebagian data streaming langsung di-cache untuk memastikan startup cepat dan mengurangi tersendat. Meskipun caching ini membantu kelancaran transmisi data, hal tersebut juga menimbulkan latensi streaming langsung. Selama pemutaran, fluktuasi jaringan dapat menghambat data mencapai client, sehingga menyebabkan penundaan selama 2 hingga 3 detik.
Playback client
Kebanyakan playback client yang tidak mendukung fast-forwarding hanya mulai mendekode streaming langsung setelah buffer penerima terisi penuh. Waktu yang dibutuhkan untuk mengisi buffer ini menyebabkan latensi streaming langsung.
Cara mengurangi latensi streaming langsung
Anda dapat mengonfigurasi pengaturan berikut untuk mengurangi latensi streaming langsung:
Konfigurasikan stream ingest client
Atur ukuran GOP menjadi 1 atau 2 detik. Hal ini mengurangi waktu yang dibutuhkan pemutar untuk memuat GOP, sehingga mengurangi latensi streaming langsung. Untuk mengatur ukuran GOP di Konsol, lihat Transkoding kustom. Untuk mengonfigurasinya menggunakan operasi API, lihat AddCustomLiveStreamTranscode.
Jika buffer encoding yang besar menyebabkan latensi tinggi, Anda dapat menggunakan Alibaba Cloud Push SDK untuk menguranginya.
Untuk perangkat stream ingest, gunakan encoding perangkat keras pada client iOS agar lebih efisien dan hemat daya. Untuk client Android, gunakan encoding perangkat lunak. Encoding perangkat keras pada Android dapat menyebabkan masalah kompatibilitas karena variasi model perangkat dan jenis CPU.
Pilih protokol streaming yang sesuai
ApsaraVideo Live menyediakan tiga protokol pemutaran: HTTP-FLV, HTTP Live Streaming (HLS), dan RTMP. Anda dapat memilih protokol berdasarkan skenario streaming Anda.
HTTP-FLV dan RTMP memiliki latensi lebih rendah dan cocok untuk skenario pemutaran berlatensi rendah. HLS memiliki latensi lebih tinggi tetapi kompatibilitas lebih baik. Protokol ini cocok untuk skenario yang tidak sensitif terhadap latensi namun memerlukan pemutaran di berbagai perangkat.
HTTP-FLV dan RTMP memerlukan pemutar Flash. HLS dapat diputar langsung di browser.
Untuk menonton streaming langsung di browser seluler, Anda harus menggunakan protokol HLS.
CatatanJika playback client Anda menggunakan protokol HLS, latensi 10 hingga 30 detik adalah hal yang normal. Jika latensinya terlalu tinggi, Anda dapat menyesuaikan konfigurasi server. Untuk latensi yang lebih rendah lagi, Anda dapat beralih dari protokol HLS ke protokol FLV.
Tabel berikut membandingkan protokol HTTP-FLV, HLS, dan RTMP.
Protokol
Deskripsi
Protokol transport
Format kontainer video
Skenario yang direkomendasikan
HTTP-FLV
Dikembangkan oleh Adobe. Data media streaming dikemas dalam format FLV dan dikirim ke client melalui HTTP. Latensinya sekitar 2 detik. Mendukung enkripsi HTTPS dan client seluler Android.
HTTP
FLV, TAG
Streaming berlatensi rendah
HLS
Dikembangkan oleh Apple. Ini adalah protokol media streaming berbasis HTTP. Data media streaming dibagi menjadi serangkaian shard TS. Setiap shard berdurasi 5 detik atau lebih, dan biasanya terdiri dari 3 hingga 4 shard. Hal ini menghasilkan latensi total sekitar 10 hingga 30 detik, tetapi memberikan pemutaran yang lancar. Protokol ini terutama digunakan pada perangkat iOS untuk layanan audio dan video langsung serta perekaman konten.
HTTP
M3U8, TS
Streaming lintas platform
RTMP
Dikembangkan oleh Adobe. Selama transmisi, pesan dibagi menjadi unit-unit kecil yang disebut chunk. Chunk tersebut kemudian dikirim melalui TCP. Penerima menyusun kembali chunk untuk memulihkan data media streaming. Proses ini kompleks dan kadang-kadang tidak stabil. Pada iOS, diperlukan decoder pihak ketiga untuk pemutaran.
HTTP
FLV, TAG
Streaming interaktif
Konfigurasikan server
Anda dapat mengurangi ukuran cache sisi server untuk menurunkan latensi streaming langsung. Anda dapat mengonfigurasi latensi streaming langsung di Konsol. Pengaturan latensi bervariasi tergantung pada protokol streaming. Pengaturan latensi yang lebih rendah berarti ukuran cache sisi server yang lebih kecil.
Masuk ke ApsaraVideo Live console.
Di panel navigasi sebelah kiri, klik Domain Names untuk membuka halaman Domain Management.
Untuk domain streaming yang ingin Anda konfigurasi, klik Domain Settings di kolom Actions.
Klik .
CatatanJika ukuran cache dikurangi, data mungkin tidak diunduh tepat waktu jika koneksi jaringan tidak stabil. Hal ini dapat menyebabkan tersendat selama pemutaran. Untuk informasi lebih lanjut, lihat Delay Configuration.
Real-Time Streaming (RTS)
Jika metode di atas tidak berhasil mengatasi masalah latensi tinggi, Anda dapat menggunakan Real-Time Streaming (RTS). RTS menyediakan latensi tingkat milidetik untuk streaming langsung dengan puluhan juta penonton secara bersamaan, dan cocok untuk skenario streaming interaktif berskala besar. RTS mengatasi latensi 3 hingga 6 detik pada streaming langsung tradisional dan menjamin pengalaman berlatensi ultra-rendah, minim tersendat, serta startup cepat.
RTS costs
Biaya untuk RTS berbeda dari biaya streaming langsung standar. Untuk informasi lebih lanjut mengenai aturan penagihan, lihat halaman Harga Alibaba Cloud.
Aktifkan layanan RTS
Untuk informasi lebih lanjut tentang cara mengaktifkan dan menggunakan layanan RTS, lihat Ikhtisar RTS.