implementasi aplikasi video call menggunakan webrtc

45
Implementasi Aplikasi Video Call Menggunakan WebRTC Fitra Aditya [email protected]

Upload: fitra-aditya

Post on 06-Jan-2017

366 views

Category:

Technology


5 download

TRANSCRIPT

Page 1: Implementasi Aplikasi Video Call Menggunakan WebRTC

Implementasi Aplikasi Video CallMenggunakan WebRTC

Fitra [email protected]

Page 2: Implementasi Aplikasi Video Call Menggunakan WebRTC

Perkenalan

● Fitra Aditya● Software Engineer di● Kontak

– Email: [email protected]

– FB: https://facebook.com/fitra.aditya

Page 3: Implementasi Aplikasi Video Call Menggunakan WebRTC

Ada yang pernah mendengar tentang WebRTC?

Page 4: Implementasi Aplikasi Video Call Menggunakan WebRTC

Ada yang pernah mengunakan aplikasi di bawah ini?

Page 5: Implementasi Aplikasi Video Call Menggunakan WebRTC

Perkembangan teknologi komunikasi real-time pada web

http://venturebeat.com/2012/08/13/webrtc-is-almost-here-and-it-will-change-the-web/http://venturebeat.com/2012/08/13/webrtc-is-almost-here-and-it-will-change-the-web/

Page 6: Implementasi Aplikasi Video Call Menggunakan WebRTC

WebRTC

Page 7: Implementasi Aplikasi Video Call Menggunakan WebRTC

WebRTC merupakan protokol yang bertujuan untuk menghadirkan fitur real-time communication pada web browser secara peer-to-peer.

Apa itu WebRTC?

Page 8: Implementasi Aplikasi Video Call Menggunakan WebRTC

Era Sebelum WebRTC

Page 9: Implementasi Aplikasi Video Call Menggunakan WebRTC

WebRTC

Desktop: 17+Mobile: 29+

Desktop: 18+Mobile: 24+

Desktop: 18+Mobile: 20+

*) Microsoft Edge menggunakan ORTC (WebRTC compatible)

Page 10: Implementasi Aplikasi Video Call Menggunakan WebRTC
Page 11: Implementasi Aplikasi Video Call Menggunakan WebRTC

Mengapa harus WebRTC?

● Open source● Tanpa plugin● Mudah diimplementasikan menggunakan API

standar

Page 12: Implementasi Aplikasi Video Call Menggunakan WebRTC

WebRTC pada mobile apps

IOS and Android

Page 13: Implementasi Aplikasi Video Call Menggunakan WebRTC

Codec

● Video: VP8, H.264, VP9● Audio: Opus, G.711

Page 14: Implementasi Aplikasi Video Call Menggunakan WebRTC

Implementasi WebRTC

Page 15: Implementasi Aplikasi Video Call Menggunakan WebRTC

Bisnis

Page 16: Implementasi Aplikasi Video Call Menggunakan WebRTC

Pendidikan

Page 17: Implementasi Aplikasi Video Call Menggunakan WebRTC

Kesehatan

Page 18: Implementasi Aplikasi Video Call Menggunakan WebRTC

Personal

Page 19: Implementasi Aplikasi Video Call Menggunakan WebRTC

Bagaimana WebRTC bekerja?

Page 20: Implementasi Aplikasi Video Call Menggunakan WebRTC

WebRTC API

Media Stream

Peer Connection

Data Channel

Page 21: Implementasi Aplikasi Video Call Menggunakan WebRTC

Media Stream

Camera and Microphone

Page 22: Implementasi Aplikasi Video Call Menggunakan WebRTC

Media Stream API

var localVideo = document.querySelector('#local-video');

navigator.mediaDevices.getUserMedia({ video: true })

.then(function(stream) {

localStream = stream;

localVideo.srcObject = localStream;

})

.catch(function(error) {

alert('Error: ', error);

});

Page 23: Implementasi Aplikasi Video Call Menggunakan WebRTC

Media Stream API

HTTP vs HTTPS

Chrome: HTTPSFirefox / Opera: HTTP

Page 24: Implementasi Aplikasi Video Call Menggunakan WebRTC

Peer Connection

Page 25: Implementasi Aplikasi Video Call Menggunakan WebRTC

Peer Connection

NAT / FIREWALL

Page 26: Implementasi Aplikasi Video Call Menggunakan WebRTC

Peer Connection

● Masalah– Berapa nomor IP publik saya?

– Port mana yang akan saya gunakan?

– Saya tidak bisa melewati firewall!

– Bagaimana saya memberitahukan IP publik dan port yang saya gunakan kepada lawan?

● Solusi– ICE Server

● STUN● TURN

Page 27: Implementasi Aplikasi Video Call Menggunakan WebRTC

STUN(Simple Traversal of UDP through NAT)

Berapa nomor IP publik saya?

IP publik kamu adalah xx.xx.xx.xx

Page 28: Implementasi Aplikasi Video Call Menggunakan WebRTC

Peer Connection(menggunakan STUN)

Page 29: Implementasi Aplikasi Video Call Menggunakan WebRTC

TURN(Traversal Using Relay NAT)

Page 30: Implementasi Aplikasi Video Call Menggunakan WebRTC

Peer Connection(menggunakan STUN)

Page 31: Implementasi Aplikasi Video Call Menggunakan WebRTC

Peer ConnectionSignaling Process

WebSocket, AJAX, SIP

Data:SDP (Session Data Protocol)- Informasi jaringan (IP publik, port)- Video dan audio codec

Page 32: Implementasi Aplikasi Video Call Menggunakan WebRTC

Peer ConnectionSignaling Process

WebSocket / AJAX / SIP

LocalDescription

Sends offer

Page 33: Implementasi Aplikasi Video Call Menggunakan WebRTC

Peer ConnectionSignaling Process

WebSocket / AJAX / SIP

LocalDescription

RemoteDescription

Receives offer

Page 34: Implementasi Aplikasi Video Call Menggunakan WebRTC

Peer ConnectionSignaling Process

WebSocket / AJAX / SIP

LocalDescription LocalDescription

RemoteDescription

Sends answer

Page 35: Implementasi Aplikasi Video Call Menggunakan WebRTC

Peer ConnectionSignaling Process

WebSocket / AJAX / SIP

LocalDescription

RemoteDescription

LocalDescription

RemoteDescription

Receives answer

Page 36: Implementasi Aplikasi Video Call Menggunakan WebRTC

Peer ConnectionSignaling Process

WebSocket / AJAX / SIP

LocalDescription

RemoteDescription

LocalDescription

RemoteDescription

Page 37: Implementasi Aplikasi Video Call Menggunakan WebRTC

Peer Connection

Page 38: Implementasi Aplikasi Video Call Menggunakan WebRTC

Peer Connection

Page 39: Implementasi Aplikasi Video Call Menggunakan WebRTC

Peer Connection

Page 40: Implementasi Aplikasi Video Call Menggunakan WebRTC

Bandwith

● Video– 180p : 0.1 – 0.5 Mbps

– 360p : 0.5 – 1 Mbps

– 720p : 1 – 2 Mbps

● Audio– 0.06 – 0.51 Mbps

Page 41: Implementasi Aplikasi Video Call Menggunakan WebRTC

Libraries

Page 42: Implementasi Aplikasi Video Call Menggunakan WebRTC

Free Application

● https://appear.in/● https://appr.tc/

Page 43: Implementasi Aplikasi Video Call Menggunakan WebRTC

Referensi

● http://webrtc.org● http://www.html5rocks.com/en/tutorials/webrtc/b

asics/● https://www.pkcsecurity.com/blog#webrtc-flow● https://www.webrtc-experiment.com/

Page 44: Implementasi Aplikasi Video Call Menggunakan WebRTC

Materi

● https://github.com/fitraditya/php-indonesia-webrtc

Page 45: Implementasi Aplikasi Video Call Menggunakan WebRTC

Terima Kasih