Topik ini mencantumkan penyebab umum dari latensi streaming langsung yang tinggi saat menggunakan Real-Time Streaming (RTS) dan memberikan solusi.
Penyebab umum
Tahap streaming langsung | Penyebab |
| |
Transmisi jaringan |
|
| |
null Jika aliran sumber hanya berisi video atau audio, ApsaraVideo Live secara default menunggu selama 5 detik untuk mendapatkan data audio dan video lengkap. Hal ini menghasilkan layar hitam selama 5 detik. |
Ingest aliran
Pengaturan yang direkomendasikan untuk OBS Studio
Gambar berikut menunjukkan pengaturan parameter yang direkomendasikan dalam alat ingest aliran OBS Studio:

Pengaturan yang direkomendasikan untuk vMix
Gambar berikut menunjukkan pengaturan parameter yang direkomendasikan dalam alat ingest aliran vMix:

Pengaturan optimal untuk Push SDK
Dalam Push SDK, atur ukuran grup gambar (GOP) menjadi 1 dan pertahankan pengaturan default untuk parameter lainnya.
Push SDK untuk Android
mAlivcLivePushConfig = new AlivcLivePushConfig();
mAlivcLivePushConfig.setVideoEncodeGop(AlivcVideoEncodeGopEnum.GOP_ONE);Push SDK untuk iOS
AlivcLivePushConfig *pushConfig = [[AlivcLivePushConfig alloc] init];
pushConfig.videoEncodeGop = AlivcLivePushVideoEncodeGOP_1;Push SDK untuk Web
Untuk Push SDK untuk Web, pengaturan default sudah optimal.
Periksa lingkungan jaringan untuk ingest aliran
Pastikan kondisi jaringan di pihak ingest baik. Jika Anda tidak yakin apakah latensi streaming yang tinggi disebabkan oleh masalah jaringan, kami sarankan Anda beralih jaringan dan gunakan perangkat yang sama untuk melakukan ingest ulang aliran. Jika latensi kembali normal, kemungkinan ada masalah dengan jaringan sebelumnya.
Periksa beban perangkat ingest aliran
Jika perangkat ingest aliran kelebihan beban, misalnya penggunaan CPU atau memori terlalu tinggi, efisiensi penangkapan video dan encoding/decoding terpengaruh, sehingga menyebabkan latensi tinggi. Jika Anda yakin bahwa perangkat ingest aliran kelebihan beban, ganti perangkat tersebut tepat waktu. Jika Anda tidak yakin, kami sarankan Anda menjaga lingkungan jaringan dan konfigurasi ingest aliran tetap sama dan gunakan perangkat lain untuk verifikasi.
Pemutaran
Pengaturan optimal untuk ApsaraVideo Player SDK for Native
RTS menggunakan Web Real-Time Communication (WebRTC) untuk memutar aliran, yang memberikan resistensi yang baik terhadap packet loss dan jitter di pihak pemutaran. Anda dapat lebih mengoptimalkan kontrol buffer pemain untuk mengurangi latensi.
Jika Anda menggunakan ApsaraVideo Player SDK V5.5.6.0 atau versi lebih baru atau menggunakan demo ApsaraVideo Player, pengaturan optimal sudah diterapkan dan tidak diperlukan penyesuaian tambahan.
Jika latensi streaming tidak berkurang setelah Anda menyelesaikan konfigurasi sebelumnya, lakukan analisis lebih lanjut pada RTS SDK:
Analisis latensi streaming: Aktifkan logging untuk ApsaraVideo Player SDK for Android atau ApsaraVideo Player SDK for iOS, dan kueri latensi end-to-end di log code=154. Latensi diukur dalam milidetik. Perhatikan bidang-bidang berikut:
gd (globalDelayMS): latensi end-to-end.
td (transDelayMS): latensi ingest aliran ditambah latensi transmisi CDN. Jika nilainya lebih besar dari 800 milidetik, latensi ingest aliran atau latensi transmisi CDN terlalu besar.
nd (network delay): latensi jaringan dari CDN POPs ke pemain. Jika nilainya lebih besar dari 800 milidetik, mungkin ada masalah jaringan.
jd (jitterDelayMS): latensi buffer de-jitter. Jika nilainya lebih besar dari 800 milidetik, mungkin ada masalah jaringan.
ud: panjang buffer pengguna. Dalam kebanyakan kasus, nilainya adalah 0. Anda dapat mengabaikan bidang ini.
dd (decoder delay): latensi decoding dari pemain. Jika nilainya lebih besar dari 800 milidetik, pemain mungkin memiliki masalah decoding.
rd (render delay): latensi rendering dari pemain. Jika nilainya lebih besar dari 800 milidetik, pemain mungkin memiliki masalah rendering.
ut: Anda dapat mengabaikan bidang ini.
Analisis latensi frame pertama: Kueri kata kunci berikut di log code=161 dari 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 sum sangat berbeda dari latensi frame pertama, pemain memiliki masalah decoding dan rendering. Jika nilai sum sama dengan atau mendekati latensi frame pertama, analisis nilai semua bidang. Jika nilai ced, frsp, dan ffc lebih besar dari biasanya, ada masalah jaringan.
Pengaturan optimal untuk ApsaraVideo Player SDK for Web
Saat menggunakan ApsaraVideo Player SDK untuk streaming berbasis RTS, buffer dikontrol oleh kebijakan default browser. Tidak diperlukan konfigurasi tambahan. Jika latensi streaming atau latensi frame pertama tinggi, Anda dapat menggunakan Google Chrome untuk mengunjungi chrome://webrtc-internals dan periksa apakah data WebRTC abnormal.

Perhatikan metrik berikut:
inbound-rtp (kind=audio) dan inbound-rtp (kind=video): status penerimaan data real-time dan status decoding frame, masing-masing. Jika nilai framesDropped tinggi atau nilai framesDecoded/s berbeda dari bitrate yang Anda harapkan, ada masalah decoding. Lakukan pemecahan masalah di tahap ingest aliran atau transcoding.
candidate-pair: status koneksi. Jika nilai currentRoundTripTime tinggi atau nilai packetsLost di inbound-rtp tinggi, mungkin ada masalah jaringan.
Latensi yang terjadi saat Anda memutar aliran hanya audio atau hanya video
Secara default, Alibaba Cloud menunggu selama 5 detik untuk mendapatkan data audio dan video lengkap saat memutar aliran hanya audio atau hanya video. Akibatnya, layar hitam selama 5 detik ditampilkan. Anda dapat secara manual berhenti berlangganan video atau audio dengan menambahkan @subvideo=no atau @subaudio=no di akhir URL streaming.
Jika aliran sumber adalah aliran hanya video dengan URL streaming
artc://example.aliyundoc.com/app/stream?auth_key={Access token}, ubah URL streaming menjadiartc://example.aliyundoc.com/app/stream?auth_key={Access token}@subaudio=no.Jika aliran sumber adalah aliran hanya audio dengan URL streaming
artc://example.aliyundoc.com/app/stream?auth_key={Access token}, ubah URL streaming menjadiartc://example.aliyundoc.com/app/stream?auth_key={Access token}@subvideo=no.
Periksa lingkungan jaringan untuk pemutaran
Pastikan kondisi jaringan di pihak pemutaran baik saat memutar aliran. Jika jaringan Anda tidak stabil, ApsaraVideo Player SDK secara otomatis meningkatkan ukuran buffer lokal untuk memberikan pemutaran yang lebih lancar. Akibatnya, latensi meningkat.
Pemutaran
Jika transcoding dilakukan selama streaming langsung, latensi streaming dapat meningkat sebesar 300 hingga 500 milidetik. RTS menyediakan jenis-jenis transcoding berikut:
HTML5 auto transcoding: Jenis transcoding ini digunakan ketika aliran RTMP yang di-ingest diputar di halaman web. Latensi yang disebabkan oleh auto transcoding tidak dapat dihindari. Namun, relatif rendah dan tidak memiliki dampak besar pada latensi streaming keseluruhan.
Transcoding kustom: Jika Anda mengonfigurasi template transcoding dengan spesifikasi beragam untuk aliran langsung, latensi berasal dari hingga dua bagian saat Anda memutar aliran yang telah dikodekan ulang:
Latensi dari pemrosesan transcoding: Bagian latensi ini diperkirakan sebesar 300 hingga 500 milidetik dan tidak dapat dihindari.
Latensi dari inisiasi transcoding: Jika triggered transcoding diaktifkan dalam template transcoding Anda, transcoding dimulai hanya ketika pengguna menarik aliran untuk pertama kali. Ini menyebabkan latensi tambahan bagi pengguna yang menarik aliran untuk pertama kali. Bagian latensi ini diperkirakan sebesar 200 milidetik.
nullTriggered transcoding adalah fitur opsional yang dapat Anda konfigurasikan saat membuat template transcoding. Untuk menonaktifkan triggered transcoding untuk aliran, Anda harus membuat template transcoding baru di mana triggered transcoding dinonaktifkan. Kemudian, ingest ulang aliran dan uji latensi streaming lagi.
Hubungi kami
Jika latensi masih belum berkurang setelah Anda melakukan langkah-langkah pemecahan masalah sebelumnya, ajukan tiket. Untuk meningkatkan efisiensi komunikasi, tambahkan informasi berikut ke tiket:
URL ingest dan URL streaming yang Anda gunakan untuk pengujian.
Alat ingest dan pemutaran aliran. Contoh: OBS Studio untuk ingest aliran dan ApsaraVideo Player SDK for Web untuk pemutaran.
Informasi berguna lainnya yang disebutkan dalam langkah-langkah pemecahan masalah sebelumnya.