Penjelasan WebRTC, SFU, dan Codec Suara
Cara WebRTC membawa audio, cara Opus memampatkan suara, dan kapan video grup butuh SFU. Panduan developer dengan arsitektur Voxal dan rujukan RFC.

WebRTC memindahkan audio dan video antarbrowser, codec seperti Opus memampatkan suara agar muat di jaringan, dan Selective Forwarding Unit (SFU) adalah server yang meneruskan video tiap peserta ke semua peserta lain dalam panggilan yang lebih besar. Ketiga komponen ini menjelaskan sebagian besar proses yang terjadi antara mikrofon dan speaker di sisi lawan bicara.
Panduan ini ditujukan bagi developer dan pembaca yang penasaran dengan mekanismenya: signaling, ICE, STUN dan TURN, RTP, Opus, serta trade-off antara mesh peer-to-peer dan SFU. Panduan ini ditutup dengan cara Voxal menggabungkan semuanya: suara tetap peer-to-peer, sedangkan kamera dan berbagi layar dapat memakai SFU. Jika Anda hanya ingin memahami konsepnya, mulailah dari apa itu obrolan suara peer-to-peer.
1. Apa itu WebRTC?
WebRTC adalah kumpulan standar dan API browser untuk komunikasi audio, video, dan data secara real-time.
Dengan WebRTC, aplikasi dapat membangun koneksi media antarperangkat yang kompatibel tanpa mengharuskan developer mengimplementasikan setiap mekanisme transport dan keamanan dari nol.
WebRTC bukan satu protokol tunggal. Beberapa komponen bekerja bersama.
Signaling
Sebelum dua perangkat dapat membangun koneksi media, keduanya perlu bertukar informasi tentang sesi dan kemampuan koneksi masing-masing.
Proses ini disebut signaling. Setiap aplikasi memilih mekanisme signaling-nya sendiri; WebRTC tidak menetapkan satu server atau protokol signaling yang berlaku universal.
Voxal memakai signaling untuk mengoordinasikan keanggotaan ruangan dan pembentukan koneksi. Jalur signaling-nya terpisah dari jalur media.
ICE, STUN, dan TURN
Perangkat sering berada di balik router, firewall, atau network address translation (NAT). Karena itu, menemukan jalur koneksi yang bisa dipakai dapat lebih rumit daripada sekadar menghubungkan dua alamat IP publik.
WebRTC memakai Interactive Connectivity Establishment (ICE) untuk mengumpulkan dan menguji kemungkinan jalur koneksi.
- STUN membantu perangkat mengetahui bagaimana ia terlihat dari jaringan publik.
- TURN menyediakan jalur relay ketika koneksi langsung yang sesuai tidak dapat dibangun.
Relay TURN meneruskan lalu lintas media terenkripsi. Ini tidak sama dengan SFU, yang mengakhiri koneksi media dan meneruskan aliran media secara selektif.
Koneksi langsung sering kali lebih diinginkan, tetapi relay bisa menjadi kunci agar koneksi tetap tersambung.
RTP dan transport media yang aman
Media real-time umumnya dikirim memakai Real-time Transport Protocol (RTP), bersama RTCP untuk kontrol dan pelaporan.
WebRTC memakai secure RTP (SRTP) untuk melindungi media. Lapisan transport membantu mengirimkan paket, sedangkan codec menentukan bagaimana audio atau video itu sendiri direpresentasikan.
Keduanya punya tanggung jawab yang berbeda: codec tidak membangun koneksi jaringan, dan koneksi jaringan tidak menentukan cara suara dimampatkan.
2. Apa itu codec suara?
Codec melakukan encoding dan decoding media. Untuk komunikasi suara, tugasnya adalah merepresentasikan ucapan secara efisien sambil menjaga kejelasan dan kualitas audio yang dapat diterima.
Tanpa kompresi, mengirim audio mentah bisa memakai bandwidth jauh lebih besar daripada yang dibutuhkan aplikasi suara.
Codec membuat trade-off di antara beberapa faktor:
- Kualitas audio dan kejelasan ucapan.
- Bitrate dan penggunaan bandwidth.
- Kompleksitas encoding dan decoding.
- Delay dan durasi frame.
- Perilaku saat kondisi jaringan berubah-ubah.
Tidak ada satu codec terbaik untuk semua aplikasi. Streaming musik, panggilan telepon, obrolan saat bermain game, dan percakapan grup real-time memiliki prioritas yang berbeda.

Mengapa Opus banyak digunakan
Opus adalah codec audio interaktif yang dirancang untuk aplikasi seperti voice over IP, konferensi video, dan obrolan dalam game.
Opus mendukung rentang bitrate, sampling rate, dan durasi frame yang luas. Fleksibilitas ini membuatnya cocok untuk ucapan maupun aplikasi audio yang lebih menuntut.
Opus juga merupakan codec audio yang wajib diimplementasikan oleh endpoint WebRTC menurut persyaratan codec audio WebRTC.
Itu tidak berarti setiap koneksi WebRTC selalu memakai Opus. Pemilihan codec yang sebenarnya bergantung pada kemampuan yang dinegosiasikan oleh endpoint yang terlibat.
Di Voxal, pipeline audio WebRTC milik browser memakai Opus secara default dalam arsitektur yang terdokumentasi. Browser menangani sebagian besar pekerjaan encoding, transport, dan decoding di balik layar.
Bagi aplikasi suara real-time, codec hanyalah satu bagian dari pengalaman. Kualitas mikrofon, pemrosesan audio, kehilangan paket, latensi jaringan, jitter buffer, dan pemutaran di perangkat juga berpengaruh.
3. Apa itu SFU?
SFU adalah singkatan dari Selective Forwarding Unit.
SFU adalah server media yang umum dipakai untuk mendukung panggilan video grup. Alih-alih mengharuskan setiap peserta mengirim aliran video terpisah langsung ke setiap peserta lain, tiap peserta cukup mengirim media ke SFU, yang kemudian meneruskan aliran yang sesuai ke peserta lainnya.
Bayangkan ruangan berisi enam orang, masing-masing mengirim aliran kamera.
Dalam mesh peer-to-peer penuh, setiap peserta mungkin perlu mengunggah video keluarnya ke lima peserta lain. Dalam topologi yang diteruskan lewat server, setiap peserta dapat mengirim satu aliran ke SFU, yang menangani distribusinya.
Hal ini dapat mengurangi secara signifikan jumlah aliran video keluar terpisah yang harus dipertahankan seorang peserta.
Apa sebenarnya yang dilakukan SFU?
SFU biasanya menerima aliran media yang sudah di-encode lalu meneruskannya secara selektif. Bergantung pada implementasi dan fitur yang dinegosiasikan, SFU dapat memilih aliran atau lapisan kualitas mana yang dikirim ke tiap penerima.
Misalnya, peserta yang melihat thumbnail kecil mungkin tidak memerlukan kualitas video yang sama dengan orang yang menampilkan pembicara layar penuh.
SFU dapat membantu mengelola kebutuhan yang berbeda-beda ini tanpa setiap pengirim harus mengirim aliran terpisah ke setiap penerima.
Namun, SFU tidak gratis. SFU membawa kebutuhan infrastruktur, bandwidth server, biaya operasional, dan satu komponen tambahan di jalur media.
SFU juga memiliki model privasi yang berbeda dari relay TURN. Karena SFU mengakhiri transport media dan meneruskan media secara selektif, secara teknis ia dapat mengakses media yang diterimanya. Enkripsi antara peserta dan SFU tidak dengan sendirinya memberikan kerahasiaan end-to-end terhadap SFU tersebut.
4. Mesh peer-to-peer vs. SFU
Kedua arsitektur ini memecahkan masalah yang berkaitan tetapi berbeda.

Mesh peer-to-peer
Setiap peserta membangun koneksi media dengan peserta lain.
Kelebihan:
- Jalur media langsung dimungkinkan.
- Tidak perlu server media pusat untuk mendistribusikan ulang media.
- Ruangan kecil dapat berjalan tanpa layanan penerus media.
Trade-off:
- Setiap pengirim mungkin perlu mengunggah aliran terpisah ke setiap peserta lain.
- Jumlah koneksi media bertambah seiring ruangan membesar.
- Bandwidth unggah dan pengelolaan koneksi bisa menjadi faktor pembatas.
Distribusi berbasis SFU
Setiap peserta mengirim media ke layanan penerus pusat, yang mendistribusikannya ke peserta lain.
Kelebihan:
- Distribusi lebih efisien untuk banyak skenario video grup.
- Pengirim tidak perlu lagi mengunggah salinan terpisah ke setiap penerima.
- Kontrol lebih besar atas aliran video dan lapisan kualitas yang diterima penerima.
Trade-off:
- Biaya infrastruktur server dan bandwidth tambahan.
- Ada perantara di jalur media.
- Model privasi dan kepercayaannya berbeda dari komunikasi peer-to-peer langsung.
Intinya, jangan berasumsi bahwa satu topologi harus dipakai untuk setiap jenis media. Audio dan video memiliki pola lalu lintas dan kebutuhan yang berbeda.
5. Mengapa Voxal menjaga suara tetap peer-to-peer tetapi dapat memakai SFU untuk video
Voxal memisahkan audio suara dari video kamera dan berbagi layar.
Audio suara selalu tetap peer-to-peer. Audio suara tidak pernah dirutekan melalui SFU video yang bersifat opsional.
Ini adalah keputusan arsitektur yang disengaja: suara adalah fitur komunikasi inti, dan Voxal tidak menggunakan SFU sebagai layanan distribusi audio terpusat.
Video kamera dan berbagi layar berbeda. Di ruangan yang lebih besar, mesh peer-to-peer penuh dapat mengharuskan setiap peserta mengunggah beberapa aliran video. Beban itu makin berat seiring bertambahnya jumlah peserta.
Karena itu, Voxal dapat memakai Realtime SFU milik Cloudflare untuk video dan berbagi layar ketika preferensi perutean yang dikonfigurasi mengizinkannya dan ruangan sudah melampaui batas praktis mesh.
Preferensi perutean ini penting:
- Izinkan relay untuk ruangan besar: Voxal dapat memakai SFU saat ruangan tumbuh melampaui topologi video peer-to-peer yang nyaman.
- Utamakan langsung: Voxal mencoba peer-to-peer terlebih dahulu dan bertanya sebelum mengizinkan relay ketika mesh menjadi tidak sesuai.
- Hanya langsung: Video dan berbagi layar tidak pernah memakai SFU, meskipun ruangan besar kesulitan membangun semua koneksi langsung.
Pengaturan ini memengaruhi video dan berbagi layar, bukan audio suara.

Mengapa tidak merutekan semuanya lewat server yang sama?
Karena topologi terbaik bergantung pada lalu lintas yang dibawa.
Aliran suara umumnya jauh lebih kecil daripada aliran kamera. Mengirim suara lewat layanan penerus pusat akan menimbulkan trade-off infrastruktur dan privasi yang berbeda tanpa diperlukan oleh arsitektur suara yang dipilih Voxal.
Video memiliki profil bandwidth yang lebih menuntut dan bisa sangat diuntungkan oleh distribusi berbantuan server seiring bertambahnya ukuran grup.
Dengan memisahkan keduanya, Voxal tetap mempertahankan model suara peer-to-peer sekaligus menawarkan opsi yang lebih skalabel untuk video grup.
6. Apa artinya bagi privasi
Istilah jaringan kadang dipakai seolah-olah otomatis menjamin tingkat privasi tertentu. Kenyataannya tidak.
Audio peer-to-peer berarti media suara tidak dirutekan melalui server media pusat, tetapi server signaling tetap dapat mengoordinasikan koneksi dan memproses metadata terkait.
Relay TURN meneruskan media terenkripsi tanpa mendekodenya. Sebaliknya, SFU mengakhiri transport media untuk meneruskan aliran secara selektif dan secara teknis dapat mengakses video yang diterimanya.
Inilah sebabnya pembedaan di Voxal penting:
- Suara tetap peer-to-peer, dengan opsi memakai relay TURN terenkripsi.
- Video kamera dan berbagi layar dapat memakai SFU di ruangan yang lebih besar, bergantung pada preferensi perutean.
- Pemrosesan latar belakang virtual secara lokal terjadi di perangkat pengirim, tetapi itu saja tidak berarti setiap koneksi video bersifat langsung.
Memahami jalur media yang sebenarnya lebih berguna daripada sekadar menyebut sebuah aplikasi sebagai serverless.
7. Menyatukan semuanya
Aplikasi komunikasi real-time menggabungkan beberapa lapisan yang independen:
- Signaling mengoordinasikan peserta dan penyiapan koneksi.
- ICE, STUN, dan TURN membantu membangun jalur jaringan yang layak.
- WebRTC dan transport RTP yang aman membawa media real-time.
- Codec seperti Opus merepresentasikan audio secara efisien.
- Topologi jaringan menentukan apakah media mengalir langsung antarpeer atau melalui layanan penerus.
Desain Voxal menerapkan pilihan-pilihan ini secara terpisah untuk suara dan video. Hasilnya adalah arsitektur yang mengutamakan suara, di mana audio tetap peer-to-peer, sedangkan video dan berbagi layar dapat memakai penerusan opsional berbantuan server ketika ruangan yang lebih besar membutuhkannya.
Perbedaan-perbedaan ini penting saat merancang sistem komunikasi real-time apa pun. Tujuannya bukan sekadar meminimalkan server atau memaksimalkan koneksi langsung, melainkan membuat trade-off yang disengaja antara latensi, bandwidth, keandalan, skalabilitas, dan privasi.
Coba Voxal
Voxal menggabungkan obrolan suara peer-to-peer, push-to-talk (tekan untuk bicara), mode bebas tangan, peredam bising, serta video dan berbagi layar opsional.
Coba Voxal di browser Anda, atau pelajari implementasinya di repositori open source Voxal.
Bacaan terkait: Apa Itu Obrolan Suara Peer-to-Peer? · Apa Itu Push-to-Talk? Panduan Praktis · Dokumentasi perutean video Voxal

