EP 67

Ngobrolin Koneksi Real-Time - Ngobrolin WEB

Bagikan:

Yuk mari kita diskusi dan ngobrol ngalor-ngidul tentang dunia web. Agar tetap up-to-date dengan teknologi web terkini. Topik, tautan dan pertanyaan menarik bisa dilayangkan ke https://ksana.in/ngobrolinweb Kunjungi https://ngobrol.in untuk catatan, tautan dan informasi topik lainnya.

Ringkasan Episode

Bantu Koreksi

Episode Ngobrolin ini membahas WebRTC (Web Real-Time Communication) secara mendalam bersama Yohan, pendiri InLive - startup lokal yang mengembangkan solusi live streaming berbasis WebRTC. Diskusi dimulai dengan latar belakang terciptanya InLive akibat mahalnya API live streaming dari luar negeri yang menggunakan pricing dolar, sehingga sulit diaplikasikan untuk pasar Indonesia dengan UMR lokal. Yohan berpengalaman dengan WebRTC sejak 2016 dan sebelumnya membuat demo Jam with Chrome yang menggunakan teknologi ini. WebRTC dijelaskan sebagai protokol standar yang memungkinkan komunikasi real-time berbasis media atau data antar browser dengan latensi sangat rendah (idealnya di bawah 200ms). Untuk komunikasi suara, delay di atas 200ms akan terasa mengganggu. Protokol ini didesain untuk peer-to-peer connection, namun untuk skenario dengan lebih dari dua peserta, dibutuhkan SFU (Selective Forwarding Unit) - server yang hanya melakukan forwarding video tanpa encoding, berbeda dengan MCU (Multipoint Control Unit) zaman dulu yang melakukan encoding ulang dan menambah latensi serta beban server. InLive memiliki dua produk: pertama adalah live streaming berbasis CDN (one-way seperti YouTube Live) yang menggabungkan WebRTC, FFmpeg, dan HLS/DASH format. Kedua adalah two-way communication product menggunakan SFU untuk use case seperti StreamYard, Google Meet, webinar, dan telemedicine. Teknologi WebRTC yang dibahas meliputi congestion controller untuk meng-handle bandwidth variability, SVC (Scalable Video Coding) dengan codec VP9 dari Google yang memungkinkan pengiriman video dengan kualitas berbeda tanpa encoding ulang, dan simulcast yang mengirim tiga jenis stream sekaligus (720p, 360p, 180p) untuk server memilih yang sesuai dengan bandwidth penerima. Perbedaan mendasar antara TCP dan UDP juga dijelaskan - TCP (yang digunakan WebSocket) memerlukan handshake dan acknowledgement untuk setiap paket sehingga menambah latensi, sementara UDP mengirim paket secara kontinyu tanpa menunggu konfirmasi, sehingga ideal untuk video streaming. TCP cocok untuk chat dan collaborative editing di mana urutan data sangat penting, sedangkan UDP lebih baik untuk video di mana beberapa paket yang hilang masih dapat ditoleransi. InLive mengalami perubahan strategi dari awalnya fokus B2B (menjual API) ke B2C karena masalah klasik "chicken and egg" - perusahaan B2B selalu bertanya tentang portfolio dan klien yang sudah ada. Terinspirasi dari pendekatan TikTok/ByteDance yang menawarkan API setelah memiliki consumer app yang sukses, InLive mengembangkan InLive Room (room.inlife.app) - aplikasi webinar yang menggabungkan fitur Locket, Zoom, dan sistem pembayaran untuk event berbayar. Fitur yang sedang dikembangkan termasuk registrasi peserta, sistem pembayaran tiket, analytics engagement dengan voice activity detection, dan broadcast capability ke YouTube. InLive ternyata open source, dengan core yang tersedia gratis. Ada dua opsi untuk pengguna: download open source version dan self-host (membutuhkan pengetahuan infrastruktur) atau menggunakan cloud API yang di-hosting oleh InLive. Salah satu keuntungan utama InLive adalah menggunakan on-premise server dengan dedicated line di Indonesia yang dibayar per capacity bandwidth, bukan per total bandwidth seperti Google Cloud atau Amazon yang sangat mahal untuk use case streaming.

Poin-poin Utama

  • InLive didirikan karena mahalnya API live streaming dari luar negeri yang menggunakan pricing dolar, sehingga sulit diaplikasikan untuk pasar Indonesia dengan UMR lokal
  • WebRTC adalah protokol standar untuk komunikasi real-time berbasis media atau data antar browser dengan latensi sangat rendah (idealnya di bawah 200ms), di atas nilai tersebut akan terasa mengganggu untuk percakapan
  • WebRTC didesain untuk peer-to-peer connection, namun untuk skenario dengan lebih dari dua peserta dibutuhkan SFU (Selective Forwarding Unit) yang hanya forwarding video tanpa encoding
  • SFU berbeda dengan MCU (Multipoint Control Unit) zaman dulu yang melakukan encoding ulang video di server, menambah latensi dan beban server secara signifikan
  • InLive memiliki dua produk: live streaming berbasis CDN (one-way seperti YouTube Live) menggunakan WebRTC+FFmpeg+HLS/DASH, dan two-way communication product dengan SFU untuk use case seperti StreamYard, Google Meet, webinar, dan telemedicine
  • Teknologi WebRTC penting: congestion controller untuk bandwidth variability, SVC (Scalable Video Coding) dengan VP9 codec yang memungkinkan pengiriman kualitas berbeda tanpa re-encoding, dan simulcast yang mengirim tiga stream sekaligus (720p, 360p, 180p)
  • TCP vs UDP: TCP memerlukan handshake dan acknowledgement per paket yang menambah latensi (cocok untuk chat/collaborative editing), sedangkan UDP mengirim paket kontinyu tanpa konfirmasi (ideal untuk video streaming)
  • InLive berubah strategi dari B2B ke B2C karena masalah 'chicken and egg' - perusahaan B2B selalu bertanya tentang portfolio dan klien yang sudah ada, terinspirasi dari pendekatan TikTok/ByteDance
  • InLive Room (room.inlife.app) adalah aplikasi webinar yang menggabungkan fitur Locket, Zoom, dan sistem pembayaran untuk event berbayar dengan fitur registrasi, analytics engagement, dan voice activity detection
  • InLive ternyata open source dengan dua opsi: download dan self-host (butuh pengetahuan infra) atau gunakan cloud API InLive yang di-hosting
  • Keuntungan InLive: menggunakan on-premise server dengan dedicated line di Indonesia yang dibayar per capacity bandwidth, bukan per total bandwidth seperti Google Cloud/Amazon yang sangat mahal
  • InLive akan segera memiliki fitur broadcast ke YouTube untuk use case seperti Ngobrolin community yang ingin mengganti StreamYard dengan solusi lokal yang lebih hemat bandwidth

Suka episode ini?

Langganan untuk update episode terbaru setiap Selasa malam!

Langganan Sekarang

Episode Terkait

Ngobrolin Lebaran - Ngobrolin WEB
EP 123

31 Mar 2025

Ngobrolin Lebaran - Ngobrolin WEB

Selamat Idul Fitri. Mohon maaf lahir dan batin! -----------------------------------------------------------------------...

Ngobrolin NextJS - Ngobrolin WEB
EP 85

4 Jun 2024

Ngobrolin NextJS - Ngobrolin WEB

Yuk mari kita diskusi dan ngobrol ngalor-ngidul tentang dunia web. Agar tetap up-to-date dengan teknologi web terkini. ...

Ngobrol dan Diskusi Bebas - Ngobrolin WEB
EP 81

7 Mei 2024

Ngobrol dan Diskusi Bebas - Ngobrolin WEB

Yuk mari kita diskusi dan ngobrol ngalor-ngidul tentang dunia web. Agar tetap up-to-date dengan teknologi web terkini. ...

Komentar