fitra aditya php-web rtc

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

Upload: php-indonesia

Post on 16-Apr-2017

353 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Fitra aditya   php-web rtc

Implementasi Aplikasi Video CallMenggunakan WebRTC

Fitra [email protected]

Page 2: Fitra aditya   php-web rtc

Perkenalan

● Fitra Aditya● Software Engineer di● Kontak

– Email: [email protected]

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

Page 3: Fitra aditya   php-web rtc

Ada yang pernah mendengar tentang WebRTC?

Page 4: Fitra aditya   php-web rtc

Ada yang pernah mengunakan aplikasi di bawah ini?

Page 5: Fitra aditya   php-web rtc

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: Fitra aditya   php-web rtc

WebRTC

Page 7: Fitra aditya   php-web rtc

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

Apa itu WebRTC?

Page 8: Fitra aditya   php-web rtc

Era Sebelum WebRTC

Page 9: Fitra aditya   php-web rtc

WebRTC

Desktop: 17+Mobile: 29+

Desktop: 18+Mobile: 24+

Desktop: 18+Mobile: 20+

*) Microsoft Edge menggunakan ORTC (WebRTC compatible)

Page 10: Fitra aditya   php-web rtc
Page 11: Fitra aditya   php-web rtc

Mengapa harus WebRTC?

● Open source● Tanpa plugin● Mudah diimplementasikan menggunakan API

standar

Page 12: Fitra aditya   php-web rtc

WebRTC pada mobile apps

IOS and Android

Page 13: Fitra aditya   php-web rtc

Codec

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

Page 14: Fitra aditya   php-web rtc

Implementasi WebRTC

Page 15: Fitra aditya   php-web rtc

Bisnis

Page 16: Fitra aditya   php-web rtc

Pendidikan

Page 17: Fitra aditya   php-web rtc

Kesehatan

Page 18: Fitra aditya   php-web rtc

Personal

Page 19: Fitra aditya   php-web rtc

Bagaimana WebRTC bekerja?

Page 20: Fitra aditya   php-web rtc

WebRTC API

Media Stream

Peer Connection

Data Channel

Page 21: Fitra aditya   php-web rtc

Media Stream

Camera and Microphone

Page 22: Fitra aditya   php-web rtc

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: Fitra aditya   php-web rtc

Media Stream API

HTTP vs HTTPS

Chrome: HTTPSFirefox / Opera: HTTP

Page 24: Fitra aditya   php-web rtc

Peer Connection

Page 25: Fitra aditya   php-web rtc

Peer Connection

NAT / FIREWALL

Page 26: Fitra aditya   php-web rtc

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?

Page 27: Fitra aditya   php-web rtc

STUN(Simple Traversal of UDP through NAT)

Berapa nomor IP publik saya?

IP publik kamu adalah xx.xx.xx.xx

Page 28: Fitra aditya   php-web rtc

Peer Connection(menggunakan STUN)

Page 29: Fitra aditya   php-web rtc

TURN(Traversal Using Relay NAT)

Page 30: Fitra aditya   php-web rtc

Peer Connection(menggunakan STUN)

Page 31: Fitra aditya   php-web rtc

Peer ConnectionSignaling Process

WebSocket, AJAX, SIP

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

Page 32: Fitra aditya   php-web rtc

Peer ConnectionSignaling Process

WebSocket / AJAX / SIP

LocalDescription

Sends offer

Page 33: Fitra aditya   php-web rtc

Peer ConnectionSignaling Process

WebSocket / AJAX / SIP

LocalDescription

RemoteDescription

Receives offer

Page 34: Fitra aditya   php-web rtc

Peer ConnectionSignaling Process

WebSocket / AJAX / SIP

LocalDescription LocalDescription

RemoteDescription

Sends answer

Page 35: Fitra aditya   php-web rtc

Peer ConnectionSignaling Process

WebSocket / AJAX / SIP

LocalDescription

RemoteDescription

LocalDescription

RemoteDescription

Receives answer

Page 36: Fitra aditya   php-web rtc

Peer ConnectionSignaling Process

WebSocket / AJAX / SIP

LocalDescription

RemoteDescription

LocalDescription

RemoteDescription

Page 37: Fitra aditya   php-web rtc

Peer Connection

Page 38: Fitra aditya   php-web rtc

Peer Connection

Page 39: Fitra aditya   php-web rtc

Peer Connection

Page 40: Fitra aditya   php-web rtc

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: Fitra aditya   php-web rtc

Libraries

Page 42: Fitra aditya   php-web rtc

Free Application

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

Page 43: Fitra aditya   php-web rtc

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: Fitra aditya   php-web rtc

Materi

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

Page 45: Fitra aditya   php-web rtc

Terima Kasih