Streaming Real-Time (RTS) adalah fitur tambahan dari ApsaraVideo Live. Pemutar ApsaraVideo Player SDK menggunakan RTS untuk mengirimkan streaming langsung dengan latensi level milidetik untuk jutaan pengguna secara bersamaan. Fitur ini menyelesaikan masalah latensi 3 hingga 6 detik yang umum ditemukan dalam streaming langsung tradisional, memberikan pengalaman pemutaran instan dengan latensi ultra-rendah dan sedikit tersendat. Topik ini menjelaskan cara mengimplementasikan pemutaran RTS.
Untuk informasi lebih lanjut tentang fitur, dokumentasi API, dan FAQ, lihat Android player.
Pemutaran RTS
ApsaraVideo Player SDK untuk Android mengintegrasikan SDK RTS asli untuk memungkinkan streaming langsung berlatensi rendah pada klien asli. Untuk informasi lebih lanjut, lihat Implementasikan penarikan aliran RTS di Android.
Untuk contoh kode terperinci, lihat modul RTS pemutaran langsung ultra-rendah latensi (RtsLiveStream) di API-Example. Proyek sampel berbasis Java ini untuk ApsaraVideo Player SDK untuk Android membantu pengembang dengan cepat mempelajari cara mengintegrasikan fitur inti dari SDK.
Pengalihan resolusi RTS
Fitur ini mendukung URL pemutaran ApsaraVideo Live dan URL aliran yang telah dikodekan ulang. Transcoding default maupun kustom didukung. Untuk informasi lebih lanjut mengenai transcoding streaming langsung, lihat Transcoding management. Untuk informasi tentang cara menghasilkan URL streaming, lihat Generate streaming URLs.
Pengalihan resolusi didukung untuk aliran langsung yang menggunakan protokol RTS dan HTTP-FLV.
Ukuran Group of Pictures (GOP) dari aliran yang diingest harus 1 atau 2 detik. Ukuran GOP yang lebih besar dapat menyebabkan lompatan saat Anda mengganti aliran.
Untuk domain streaming, aktifkan opsi Output RTMP timestamps during FLV playback dan Output RTMP timestamps after upstream interruption. Untuk konfigurasi transcoding, aktifkan opsi Source timestamp dan Source keyframe. Jika tidak, pengalihan aliran mungkin tersendat atau gagal. Untuk mengaktifkan opsi ini, submit a ticket.
Jika Anda beralih ke URL aliran yang tidak memenuhi persyaratan ini, pengalihan akan gagal.
Alihkan resolusi
Untuk mengalihkan resolusi, panggil metode switchStream dan berikan URL untuk resolusi baru.
// Mulai pemutaran
aliPlayer.setUrlSource(oldUrl);
aliPlayer.prepare();
aliPlayer.start();
// Alihkan ke URL lain selama pemutaran
aliPlayer.switchStream(newUrl);Notifikasi pengalihan resolusi
Callback berikut dipicu ketika pengalihan resolusi berhasil atau gagal.
aliPlayer.setOnStreamSwitchedListener(new IPlayer.OnStreamSwitchedListener() {
@Override
public void onSwitchedSuccess(String url) {
Log.i("SwitchStream", "switch success, url = " + url);
}
@Override
public void onSwitchedFail(String url, ErrorInfo errorInfo) {
Log.i("SwitchStream", "switch failed, url = " + url + ", error=" + errorInfo.getMsg());
}
});