Aliran Media Virtual, dalam konteks konferensi WebRTC, adalah aliran media yang dihasilkan oleh Unit Penerusan Selektif (SFU) untuk menggabungkan dan mendistribusikan media dari beberapa peserta. Tidak seperti aliran media peer-to-peer langsung, yang akan membuat mesh koneksi yang kompleks dalam konferensi besar, aliran media virtual menyederhanakan topologi. SFU menerima aliran media individual dari setiap peserta dan meneruskan aliran yang aktif atau relevan secara selektif ke peserta lain, memultipleksnya ke serangkaian aliran media virtual keluar yang lebih kecil dan tetap.
Pendekatan ini mengurangi jumlah aliran masuk serentak yang perlu ditangani setiap peserta, sehingga menurunkan persyaratan pemrosesan dan bandwidth. Setiap aliran virtual dapat berisi media dari satu peserta dalam satu waktu, yang disesuaikan secara dinamis oleh SFU berdasarkan faktor-faktor seperti aktivitas pembicara atau penugasan video. Peserta menerima streaming virtual ini, sehingga dapat melihat tampilan gabungan konferensi tanpa perlu mengelola setiap streaming dari peserta lain. Abstraksi ini yang disediakan oleh aliran media virtual sangat penting untuk menskalakan konferensi WebRTC ke sejumlah besar peserta.
Untuk menerima audio, klien harus menawarkan tepat tiga deskripsi media audio, yang membuat tiga transceiver audio lokal. Untuk menerima video, klien harus menawarkan satu hingga tiga deskripsi media video, yang menetapkan jumlah transceiver video.
Receiver
Setiap transceiver milik klien memiliki
RtpReceiver
khusus dan "jalur media" khusus yang menerima streaming RTP audio dari server Meet.
Setiap jalur memiliki ID unik dan menerima aliran paket RTP yang berbeda dari sumber media tertentu tersebut. Misalnya, Track A mungkin menerima audio dari
production-1
, sementara Track B menerima audio dari production-2
.
SSRC
Setiap paket RTP memiliki nilai header Sumber Sinkronisasi (SSRC), yang mengikatnya ke jalur tertentu.
Sesi audio melalui Meet Media API menggunakan tiga aliran media yang berbeda, yang masing-masing memiliki SSRC statisnya sendiri. Setelah ditetapkan, nilai SSRC ini tidak akan pernah berubah selama masa aktif sesi.
Streaming virtual
Meet Media API menggunakan Virtual Media Streams. Ini bersifat statis di seluruh sesi, tetapi sumber paket dapat berubah untuk mencerminkan feed paling relevan. Aliran Media Virtual berperilaku sama untuk audio dan video.
Sumber Kontribusi (CSRC) di header paket RTP mengidentifikasi sumber sebenarnya dari paket RTP. Meet menetapkan CSRC uniknya sendiri untuk setiap peserta dalam konferensi saat mereka bergabung. Nilai ini tetap konstan hingga mereka keluar.
Karena jumlah SSRC tetap konstan di seluruh sesi Meet Media API, berikut adalah tiga kemungkinan skenario:
Lebih banyak peserta daripada SSRC yang tersedia:
Meet mentransmisikan tiga orang yang berbicara paling keras di tiga SSRC. Karena setiap aliran RTP berada di SSRC khusus, tidak ada pencampuran antar-aliran.
Gambar 1. Meet mentransmisikan tiga orang yang berbicara paling keras di tiga SSRC. Jika salah satu streaming asli dalam konferensi bukan lagi salah satu streaming yang paling keras, Meet akan mengalihkan paket RTP yang membentuk SSRC ke yang paling keras.
Gambar 2. Meet mengalihkan paket RTP ke orang yang berbicara paling keras. Jumlah peserta aktif kurang dari tiga SSRCs audio:
Untuk skenario saat SSRC yang tersedia lebih banyak daripada jumlah streaming dalam konferensi, Meet memetakan paket audio yang tersedia ke SSRC uniknya sendiri. SSRC yang tidak digunakan masih siap dan tersedia, tetapi tidak ada paket RTP yang ditransmisikan.
Gambar 3. Memetakan paket audio yang tersedia ke SSRC uniknya sendiri. Jumlah peserta aktif sama dengan tiga SSRC audio:
Untuk skenario peserta yang sama dan SSRC yang tersedia, media setiap peserta dipetakan ke SSRC khusus. Pemetaan ini tetap ada selama skenario khusus ini tetap ada.
Gambar 4. Meet memetakan media setiap peserta ke SSRC khusus.