MASALAH:
WebRTC memberi kita koneksi video / audio peer-to-peer. Ini sempurna untuk panggilan p2p, hangout. Tetapi bagaimana dengan penyiaran (one-to-many, misalnya, 1-to-10000)?
Katakanlah kita memiliki penyiar "B" dan dua peserta "A1", "A2". Tentu saja tampaknya bisa dipecahkan: kita cukup menghubungkan B dengan A1 lalu B dengan A2. Jadi B mengirimkan aliran video / audio langsung ke A1 dan aliran lain ke A2. B mengirimkan aliran dua kali.
Sekarang bayangkan ada 10.000 peserta: A1, A2, ..., A10000. Artinya B harus mengirim 10.000 aliran. Setiap aliran ~ 40KB / dtk yang berarti B memerlukan kecepatan internet keluar 400MB / dtk untuk mempertahankan siaran ini. Tidak bisa diterima.
PERTANYAAN ASLI (TIDAK ADA)
Apakah mungkin untuk memecahkan masalah ini, jadi B hanya mengirim satu aliran di beberapa server dan peserta menarik aliran ini dari server ini? Ya, ini berarti kecepatan keluar di server ini harus tinggi, tetapi saya dapat mempertahankannya.
Atau mungkin ini berarti merusak ide WebRTC?
CATATAN
Flash tidak berfungsi untuk kebutuhan saya sesuai UX yang buruk untuk pelanggan akhir.
SOLUSI (TIDAK BENAR-BENAR)
26.05.2015 - Tidak ada solusi untuk penyiaran yang dapat diskalakan untuk WebRTC saat ini, di mana Anda tidak menggunakan server media sama sekali. Ada solusi sisi server serta hibrida (p2p + sisi server tergantung pada kondisi yang berbeda) di pasar.
Meskipun demikian, ada beberapa teknisi yang menjanjikan seperti https://github.com/muaz-khan/WebRTC-Scalable-Broadcast tetapi mereka perlu menjawab kemungkinan masalah tersebut: latensi, stabilitas koneksi jaringan secara keseluruhan, formula skalabilitas (mereka mungkin tidak dapat diskalakan tanpa batas. ).
SARAN
- Kurangi CPU / Bandwidth dengan mengutak-atik codec audio dan video;
- Dapatkan server media.