All Products
Search
Document Center

ApsaraVideo Live:Troubleshoot latensi tinggi di RTS

Last Updated:Jun 09, 2026

Pelajari penyebab latensi Real-Time Streaming (RTS) dan cara menguranginya.

Penyebab umum latensi RTS

Tahap

Penyebab umum

Stream ingest

  • Interval keyframe dari aliran sumber terlalu besar, atau aliran tersebut berisi B-frame.

  • CPU perangkat pengambilan video kelebihan beban.

  • Konfigurasi Push SDK yang tidak optimal.

Network transmission

  • Kondisi jaringan buruk selama stream ingest.

  • Kondisi jaringan buruk selama pemutaran.

  • Kondisi jaringan buruk di POP Alibaba Cloud atau pada tautan internal.

Transcoding

  • Transcoding biasanya menambahkan latensi sebesar 300 ms hingga 500 ms.

  • Menggunakan triggered transcoding memperkenalkan latensi tambahan.

Playback

  • Konfigurasi ApsaraVideo Player SDK for Native yang tidak optimal.

  • Terjadi latensi ketika ApsaraVideo Player SDK for Web memutar aliran hanya audio atau hanya video.

    Catatan

    Jika aliran sumber hanya berisi audio atau hanya video, waktu tunggu default selama 5 detik untuk track yang hilang akan menyebabkan latensi.

Stream ingest

Pengaturan OBS Studio

Konfigurasikan OBS Studio sebagai berikut:

Di OBS Studio, buka halaman Settings > Output. Atur Output Mode ke Advanced, lalu pilih tab Streaming. Atur Encoder ke x264, Rate Control ke CBR, dan Bitrate ke 2500 Kbps. Atur Keyframe Interval ke 1 detik, CPU Usage Preset ke ultrafast, Profile ke baseline, serta Tune ke zerolatency.

Pengaturan vMix

Konfigurasikan vMix sebagai berikut:

Di kotak dialog Streaming Quality, atur Video Bit Rates ke 1500, Encode Size ke 1920 x 1080, dan Audio Bit Rate ke 128. Di bagian Video, atur Profile ke Baseline, Level ke 3.1, dan Preset ke ultrafast. Selanjutnya, atur Keyframe Frequency ke 1 second, Threads ke 4, dan Network Buffer ke 20 seconds. Parameter kunci: Level, Preset, Threads, dan Network Buffer.

Konfigurasi Push SDK

Atur video GOP ke 1 dan biarkan pengaturan lainnya tetap pada nilai default:

Android

mAlivcLivePushConfig = new AlivcLivePushConfig();
mAlivcLivePushConfig.setVideoEncodeGop(AlivcVideoEncodeGopEnum.GOP_ONE);

iOS

AlivcLivePushConfig *pushConfig = [[AlivcLivePushConfig alloc] init];
pushConfig.videoEncodeGop = AlivcLivePushVideoEncodeGOP_1;

Web

Push SDK for Web telah dioptimalkan secara default.

Ingest network

Jaringan ingest yang stabil sangat penting. Untuk mengisolasi masalah jaringan, ganti jaringan dan lakukan re-ingest dari perangkat yang sama. Jika latensi menurun, maka jaringan awal merupakan penyebabnya.

Device load

Penggunaan CPU atau memori yang tinggi pada perangkat ingest mengurangi efisiensi pengambilan dan encoding, sehingga meningkatkan latensi. Untuk mengisolasi masalah ini, uji dengan perangkat berbeda menggunakan jaringan dan konfigurasi yang sama.

Playback

Konfigurasi Native Player SDK

RTS menggunakan protokol WebRTC, yang mampu menangani packet loss dan jitter dengan baik. Untuk mengurangi latensi lebih lanjut, optimalkan strategi buffering pemutar.

Catatan

ApsaraVideo Player SDK v5.5.6.0 dan versi setelahnya, atau demo pemutar, menerapkan konfigurasi latensi optimal secara default. Tidak diperlukan penyesuaian tambahan.

Jika latensi masih terjadi, analisis log RTS SDK:

  • Latensi aliran: Aktifkan logging untuk ApsaraVideo Player SDK for Android atau ApsaraVideo Player SDK for iOS. Temukan entri code=154 untuk memeriksa latensi end-to-end (ms):

    • gd (globalDelayMS): Latensi end-to-end.

    • td (transDelayMS): Jumlah latensi ingest dan transmisi CDN. Nilai di atas 800 ms menunjukkan latensi ingest atau CDN yang tinggi.

    • nd (network delay): Latensi jaringan dari CDN ke pemutar. Nilai di atas 800 ms menunjukkan adanya masalah jaringan.

    • jd (jitterDelayMS): Latensi buffer de-jitter. Nilai di atas 800 ms menunjukkan adanya masalah jaringan.

    • ud (user buffer length): Panjang buffer pengguna. Biasanya bernilai 0; dapat diabaikan.

    • dd (decoder delay): Latensi decoding. Nilai di atas 800 ms menunjukkan adanya masalah decoding pada pemutar.

    • rd (render delay): Latensi rendering. Nilai di atas 800 ms menunjukkan adanya masalah rendering pada pemutar.

    • ut: Bidang ini dapat diabaikan.

  • Latensi frame pertama: Temukan entri code=161 dalam log SDK:

    st:0,init:1,sdns:0,rdns:2,sc:0,ced:12,sub:5,frsp:309,si:8,fp:13,ffc:5,ffo:416,sum:763

    Jika nilai sum berbeda signifikan dari latensi frame pertama yang diukur, kemungkinan terdapat masalah decoding atau rendering. Jika nilai sum mendekati nilai yang diukur, periksa masing-masing bidang untuk menemukan bottleneck. Nilai ced, frsp, atau ffc yang tinggi biasanya menunjukkan adanya masalah jaringan.

Konfigurasi Web Player SDK

ApsaraVideo Player SDK for Web mengandalkan kebijakan buffer default browser dan tidak memerlukan konfigurasi tambahan. Untuk mendiagnosis latensi tinggi, buka chrome://webrtc-internals di Chrome.

image.png

Metrik utama:

  • inbound-rtp (kind=audio) dan inbound-rtp (kind=video): Menampilkan status penerimaan dan decoding data real-time. Nilai framesDropped yang tinggi atau nilai framesDecoded/s yang tidak sesuai menunjukkan adanya masalah decoding — periksa pengaturan ingest dan transkoding.

  • candidate-pair: Menampilkan status koneksi. Nilai currentRoundTripTime yang tinggi atau jumlah packetsLost yang tinggi pada inbound-rtp menunjukkan adanya masalah jaringan.

Latensi aliran hanya audio dan hanya video

Jika aliran sumber hanya berisi audio atau hanya video, Alibaba Cloud secara default menunggu selama 5 detik untuk track yang hilang. Penundaan ini dapat menyebabkan layar hitam atau keheningan di awal pemutaran. Untuk menghindari penundaan ini, batalkan langganan terhadap track yang hilang dengan menambahkan @subvideo=no atau @subaudio=no ke URL streaming.

  • Untuk aliran hanya video dengan URL artc://example.aliyundoc.com/app/stream?auth_key={your_auth_key}, ubah URL menjadi artc://example.aliyundoc.com/app/stream?auth_key={your_auth_key}@subaudio=no.

  • Untuk aliran hanya audio dengan URL artc://example.aliyundoc.com/app/stream?auth_key={your_auth_key}, ubah URL menjadi artc://example.aliyundoc.com/app/stream?auth_key={your_auth_key}@subvideo=no.

Playback network

Pastikan jaringan pemutaran stabil. Pada jaringan yang tidak stabil, ApsaraVideo Player SDK akan meningkatkan buffer lokal untuk menjaga kelancaran pemutaran, yang menambah latensi.

Transcoding

Transcoding menambahkan latensi sebesar 300 hingga 500 ms pada streaming langsung Anda. RTS mendukung dua jenis transkoding:

  • H5 auto transcoding: Diterapkan ketika aliran RTMP diingest untuk pemutaran web. Latensi tambahan minimal dan tidak dapat dihindari.

  • Template transkoding kustom: Memutar aliran yang telah dikodekan ulang dapat memperkenalkan latensi dalam dua cara:

    • Latensi pemrosesan: Menambahkan latensi 300–500 ms yang tidak dapat dihindari pada aliran yang telah dikodekan ulang.

    • Latensi inisiasi: Dengan triggered transcoding diaktifkan, transkoding hanya dimulai saat pemirsa pertama meminta aliran, menambahkan sekitar 200 ms latensi startup.

    Catatan

    Triggered transcoding dikonfigurasi saat membuat template transkoding. Untuk menonaktifkannya, buat template baru, restart stream ingest, dan uji ulang latensi.

Hubungi kami

Jika latensi tinggi masih terjadi setelah langkah troubleshooting ini, kirim tiket. Sertakan informasi berikut:

  • URL ingest dan streaming yang digunakan untuk pengujian.

  • Alat ingest dan pemutaran yang digunakan (misalnya, OBS Studio dan ApsaraVideo Player SDK for Web).

  • Rangkuman langkah troubleshooting yang telah Anda lakukan.