Pelajari penyebab latensi Real-Time Streaming (RTS) dan cara menguranginya.
Penyebab umum latensi RTS
|
Tahap |
Penyebab umum |
|
|
|
Network transmission |
|
|
|
|
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.
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=154untuk 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=161dalam 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:763Jika nilai
sumberbeda signifikan dari latensi frame pertama yang diukur, kemungkinan terdapat masalah decoding atau rendering. Jika nilaisummendekati nilai yang diukur, periksa masing-masing bidang untuk menemukan bottleneck. Nilaiced,frsp, atauffcyang 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.

Metrik utama:
-
inbound-rtp (kind=audio) dan inbound-rtp (kind=video): Menampilkan status penerimaan dan decoding data real-time. Nilai
framesDroppedyang tinggi atau nilaiframesDecoded/syang tidak sesuai menunjukkan adanya masalah decoding — periksa pengaturan ingest dan transkoding. -
candidate-pair: Menampilkan status koneksi. Nilai
currentRoundTripTimeyang tinggi atau jumlahpacketsLostyang tinggi padainbound-rtpmenunjukkan 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 menjadiartc://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 menjadiartc://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.
CatatanTriggered 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.