SlideShare a Scribd company logo
Build Web Based Video Call Application
Using WebRTC
Fitra Aditya
Sabtu, 24 Oktober 2015
● Fitra Aditya
● Software Engineer di
Build Web Based Video Call Application Using WebRTC
WebRTC
● WebRTC
– Protokol
– Open source project
WebRTC
● WebRTC merupakan protokol yang
memungkinkan web browser untuk melakukan
panggilan audio, video, serta pertukaran data
lainnya menggunakan jalur peer-to-peer tanpa
perlu tambahan plugin.
WebRTC
WebRTC
● WebRTC juga merupakan proyek open source
yang menyediakan sekumpulan API bagi web
browser dan aplikasi mobile untuk melakukan
komunikasi secara real-time.
● Proyek WebRTC digawangi oleh Google, serta
didukung oleh Mozilla, Opera, serta beberapa
perusahaan lainnya.
Build Web Based Video Call Application Using WebRTC
Mengapa WebRTC?
● Cukup menggunakan web browser
● Tidak perlu menggunakan plugin tambahan
● Open source
Bagaimana WebRTC Bekerja?
Alice Bob
Signaling
Server
Media
SDP SDP
Bagaimana WebRTC Bekerja?
Alice Bob
Signaling
Server
Media
SDP SDP
NAT NAT
Bagaimana WebRTC Bekerja?
Alice Bob
Signaling
Server
Media
SDP SDP
NAT NAT
ICE Server ICE Server
Bagaimana WebRTC Bekerja?
● Misalkan Alice dan Bob ingin melakukan video
chat menggunakan WebRTC
● Alice dan Bob perlu bertukar informasi mengenai
informasi jaringan internet
● Proses ini dinamakan dengan 'finding candidates'
● Alice dan Bob juga perlu bertukar informasi
mengenai media yang dimiliki
● Proses ini dinamakan dengan 'offer – answer'
Bagaimana WebRTC Bekerja?
Alice Bob
Signaling
Server
Media
SDP SDP
NAT NAT
ICE Server ICE Server
Finding Candidates
Offer - Answer
WebRTC Connection
Bagaimana WebRTC Bekerja?
● Finding candidates
– Alice
● Buat peer object untuk mendapatkan candidates
menggunakan ICE (interactive connectivity
establishment) → ICE candidates
● Kirim ICE candidates menggunakan signaling channel
(contoh: websocket)
– Bob
● Simpan ICE candidates yang diterima untuk digunakan
kemudian
Bagaimana WebRTC Bekerja?
pc = new RTCPeerConnection(...);
pc.onicecandidate = function (event) {
  ...
};
pc = new RTCPeerConnection(...);
pc.addIceCandidate(new RTCIceCandidate(...));
Alice
Bob
Bagaimana WebRTC Bekerja?
● Offer – answer
– Alice
● Panggil createOffer() → localDescription
● Kirim localDescription ke Bob
– Bob
● Simpan localDescription yang dikirim oleh Alice → remoteDescription
● Panggil createAnswer() → localDescription
● Kirim localDescription ke Alice
– Alice
● Simpan localDescription yang dikirim oleh Bob → remoteDescription
– Ping!
Bagaimana WebRTC Bekerja?
if (isCaller)
  pc.createOffer(gotDescription);
else
  pc.createAnswer(pc.remoteDescription, gotDescription);
function gotDescription(localdescription) {
  pc.setLocalDescription(localdescription);
  // send localdescription
}
if (localdescription) {
  pc.setRemoteDescription(
    new RTCSessionDescription(localdescription)
  );
}
Build Web Based Video Call Application Using WebRTC
DEMO
15 Menit dengan WebRTC
● Membangun aplikasi one-to-one video call
berbasis web dengan WebRTC
– Kemampuan HTML dan Javascript dibutuhkan
untuk membangun aplikasi ini
15 Menit dengan WebRTC
● Langkah-langkah
– Ambil audio dan video menggunakam microphone
dan webcam
– Buat sambungan peer-to-peer antar web browser
– Kirim video antar peer
getUserMedia()
● Merupakan API untuk mengambil video maupun
audio dari hardware (webcam dan microphone)
untuk ditampilkan ke dalam halaman web
● Tiap web browser memiliki implementasi yang
berbeda
– navigator.getUserMedia
– navigator.webkitGetUserMedia
– navigator.mozGetUserMedia
getUserMedia()
● Contoh: geekcamp-webrtc/satu/index.html
navigator.getUserMedia({ video: true, audio: true }, successCallback, errorCallback);
function successCallback (stream) {
  var video = document.querySelector('#localVideo');
  video.src = window.URL.createObjectURL(stream);
}
function errorCallback (error) {
  alert('getUserMedia error: ', error);
}
RTCPeerConnection()
● Merupakan API untuk membangun sambungan
peer-to-peer antar web browser
– ICE candicates
– NAT traversal
● Sambungan peer-to-peer ini digunakan untuk
melakukan panggilan audio maupun video
– Termasuk juga encode / decode audio dan video
RTCPeerConnection()
● Membutuhkan signaling server untuk membuat
sambungan peer-to-peer di awal
– Websocket / Socket.io
● Membutuhkan ICE servers untuk mendapatkan
ICE candidates
– STUN / TURN
RTCPeerConnection()
● Contoh tanpa signaling server dan ICE servers:
geekcamp-webrtc/dua/index.html
● Contoh menggunakan signaling server dan ICE
servers: geekcamp-webrtc/tiga/index.html
Build Web Based Video Call Application Using WebRTC
Open Source WebRTC Library
● SimpleWebRTC
● EasyRTC
● RTC.io
Referensi
● www.html5rocks.com/en/tutorials/getusermedia/i
ntro/
● http://www.html5rocks.com/en/tutorials/webrtc/b
asics/
● http://www.webrtc.org/
Terima Kasih
● http://www.slideshare.net/fitraaditya/build-web-b
ased-video-call-application-using-webrtc
● https://github.com/fitraditya/geekcamp-webrtc
Ad

More Related Content

Similar to Build Web Based Video Call Application Using WebRTC (20)

MATERI MEDIA INTERNET GATEWAY (NAT).pptx
MATERI MEDIA INTERNET GATEWAY (NAT).pptxMATERI MEDIA INTERNET GATEWAY (NAT).pptx
MATERI MEDIA INTERNET GATEWAY (NAT).pptx
ahmadsyukur9
 
Internet Programming v2.0 Comp
Internet Programming v2.0 CompInternet Programming v2.0 Comp
Internet Programming v2.0 Comp
Nurdin Al-Azies
 
TA_NAT_Reihanmf23_2017/2018
TA_NAT_Reihanmf23_2017/2018TA_NAT_Reihanmf23_2017/2018
TA_NAT_Reihanmf23_2017/2018
reihanfauzhan
 
Kuliah 3 4
Kuliah 3 4Kuliah 3 4
Kuliah 3 4
Cut Lilis
 
MEDIA PEMBELAJARAN TENTANG JARINGAN LAN1
MEDIA PEMBELAJARAN TENTANG JARINGAN LAN1MEDIA PEMBELAJARAN TENTANG JARINGAN LAN1
MEDIA PEMBELAJARAN TENTANG JARINGAN LAN1
ssuserf07bcb1
 
pemrograman socket pada jaringan komputer
pemrograman socket pada jaringan komputerpemrograman socket pada jaringan komputer
pemrograman socket pada jaringan komputer
alisofyan13
 
Laporan Pratikum Mikrotik (alif&azmiy)
Laporan Pratikum Mikrotik (alif&azmiy)Laporan Pratikum Mikrotik (alif&azmiy)
Laporan Pratikum Mikrotik (alif&azmiy)
alif firmansyah
 
Haris dan nikilano
Haris dan nikilanoHaris dan nikilano
Haris dan nikilano
Elanokun
 
MikroTik Certified Network Associate (MTCNA) - Training Indonesia
MikroTik Certified Network Associate (MTCNA) - Training IndonesiaMikroTik Certified Network Associate (MTCNA) - Training Indonesia
MikroTik Certified Network Associate (MTCNA) - Training Indonesia
Muhammad Ridwan
 
Pembahasan soal paket 1
Pembahasan soal paket 1Pembahasan soal paket 1
Pembahasan soal paket 1
Ygrex Thebygdanns
 
materi ukk mikrotik Rangga Dwi putraaaaa
materi ukk mikrotik Rangga Dwi putraaaaamateri ukk mikrotik Rangga Dwi putraaaaa
materi ukk mikrotik Rangga Dwi putraaaaa
dwiucop2
 
Pembahasan soal paket 1
Pembahasan soal paket 1Pembahasan soal paket 1
Pembahasan soal paket 1
Irwansyah Irwan
 
Pembahasan soal paket 3
Pembahasan soal paket 3Pembahasan soal paket 3
Pembahasan soal paket 3
Ygrex Thebygdanns
 
Praktik Kejuruan Pembahasana
Praktik Kejuruan PembahasanaPraktik Kejuruan Pembahasana
Praktik Kejuruan Pembahasana
Firdika Arini
 
Understanding asynchronous process on website
Understanding asynchronous process on websiteUnderstanding asynchronous process on website
Understanding asynchronous process on website
Rizal Asrul Pambudi
 
Modul pembahasan-soal-ukk-tkj-paket-3-2016-2017
Modul pembahasan-soal-ukk-tkj-paket-3-2016-2017Modul pembahasan-soal-ukk-tkj-paket-3-2016-2017
Modul pembahasan-soal-ukk-tkj-paket-3-2016-2017
Bunda Uffy
 
Jaringan komputer
Jaringan komputerJaringan komputer
Jaringan komputer
Ari FX
 
Pembahasan soal paket 2
Pembahasan soal paket 2Pembahasan soal paket 2
Pembahasan soal paket 2
Aswito Aswito
 
UKK TKJ - Paket 1
UKK TKJ - Paket 1UKK TKJ - Paket 1
UKK TKJ - Paket 1
Walid Umar
 
Laporan praktikum(dimetry & duvan)
Laporan praktikum(dimetry & duvan)Laporan praktikum(dimetry & duvan)
Laporan praktikum(dimetry & duvan)
DimetryPR
 
MATERI MEDIA INTERNET GATEWAY (NAT).pptx
MATERI MEDIA INTERNET GATEWAY (NAT).pptxMATERI MEDIA INTERNET GATEWAY (NAT).pptx
MATERI MEDIA INTERNET GATEWAY (NAT).pptx
ahmadsyukur9
 
Internet Programming v2.0 Comp
Internet Programming v2.0 CompInternet Programming v2.0 Comp
Internet Programming v2.0 Comp
Nurdin Al-Azies
 
TA_NAT_Reihanmf23_2017/2018
TA_NAT_Reihanmf23_2017/2018TA_NAT_Reihanmf23_2017/2018
TA_NAT_Reihanmf23_2017/2018
reihanfauzhan
 
MEDIA PEMBELAJARAN TENTANG JARINGAN LAN1
MEDIA PEMBELAJARAN TENTANG JARINGAN LAN1MEDIA PEMBELAJARAN TENTANG JARINGAN LAN1
MEDIA PEMBELAJARAN TENTANG JARINGAN LAN1
ssuserf07bcb1
 
pemrograman socket pada jaringan komputer
pemrograman socket pada jaringan komputerpemrograman socket pada jaringan komputer
pemrograman socket pada jaringan komputer
alisofyan13
 
Laporan Pratikum Mikrotik (alif&azmiy)
Laporan Pratikum Mikrotik (alif&azmiy)Laporan Pratikum Mikrotik (alif&azmiy)
Laporan Pratikum Mikrotik (alif&azmiy)
alif firmansyah
 
Haris dan nikilano
Haris dan nikilanoHaris dan nikilano
Haris dan nikilano
Elanokun
 
MikroTik Certified Network Associate (MTCNA) - Training Indonesia
MikroTik Certified Network Associate (MTCNA) - Training IndonesiaMikroTik Certified Network Associate (MTCNA) - Training Indonesia
MikroTik Certified Network Associate (MTCNA) - Training Indonesia
Muhammad Ridwan
 
materi ukk mikrotik Rangga Dwi putraaaaa
materi ukk mikrotik Rangga Dwi putraaaaamateri ukk mikrotik Rangga Dwi putraaaaa
materi ukk mikrotik Rangga Dwi putraaaaa
dwiucop2
 
Praktik Kejuruan Pembahasana
Praktik Kejuruan PembahasanaPraktik Kejuruan Pembahasana
Praktik Kejuruan Pembahasana
Firdika Arini
 
Understanding asynchronous process on website
Understanding asynchronous process on websiteUnderstanding asynchronous process on website
Understanding asynchronous process on website
Rizal Asrul Pambudi
 
Modul pembahasan-soal-ukk-tkj-paket-3-2016-2017
Modul pembahasan-soal-ukk-tkj-paket-3-2016-2017Modul pembahasan-soal-ukk-tkj-paket-3-2016-2017
Modul pembahasan-soal-ukk-tkj-paket-3-2016-2017
Bunda Uffy
 
Jaringan komputer
Jaringan komputerJaringan komputer
Jaringan komputer
Ari FX
 
Pembahasan soal paket 2
Pembahasan soal paket 2Pembahasan soal paket 2
Pembahasan soal paket 2
Aswito Aswito
 
UKK TKJ - Paket 1
UKK TKJ - Paket 1UKK TKJ - Paket 1
UKK TKJ - Paket 1
Walid Umar
 
Laporan praktikum(dimetry & duvan)
Laporan praktikum(dimetry & duvan)Laporan praktikum(dimetry & duvan)
Laporan praktikum(dimetry & duvan)
DimetryPR
 

Build Web Based Video Call Application Using WebRTC