SlideShare a Scribd company logo
1 of 55
Download to read offline
Copyright © NTT Communications Corporation. All rights reserved.
WebRTCハンズオン
NTTコミュニケーションズ株式会社
技術開発部
仲 裕介
Copyright © NTT Communications Corporation. All rights reserved.
⾃⼰紹介
1
uなかゆうすけ(@Tukimikage)
l NTTコミュニケーションズ 技術開発部 所属
Ø 主にWebエンジニア
l コミュニティ活動
Ø WebRTC Meetup Tokyo主催 http://webrtcjp.info/
Copyright © NTT Communications Corporation. All rights reserved.
⾃⼰紹介
2
u 仕事その1
WebRTC開発者向けプラットフォームSkyWayの開発・運営
・2013年12⽉5⽇に提供開始
・詳しくは後ほど!
https://skyway.io
Copyright © NTT Communications Corporation. All rights reserved.
⾃⼰紹介
3
u 仕事その2
HTML5 Experts.jpの運営
・HTML5に特化した
Web技術者向け情報メディア
・⽇本最⾼峰のWebエキスパート、
コントリビューターによる情報発信
・コントリビューター(寄稿者)募集!
https://html5experts.jp/
Copyright © NTT Communications Corporation. All rights reserved.
今⽇のスケジュール
4
• WebRTCについて知る(座学)
• WebRTCのシグナリングを体感する
• WebRTCで簡単なビデオチャットアプリを開発する
ー休憩ー
• SkyWayについて知る(座学)
• SkyWayを使ってビデオチャットを作る
• WebRTCをビジネスで活⽤するために知っておくこと(座学)
Copyright © NTT Communications Corporation. All rights reserved.
このハンズオンの対象者
• Webデベロッパー
5
Copyright © NTT Communications Corporation. All rights reserved.
• こちらのリポジトリを参照して下さい。
https://github.com/yusuke84/webrtc_handson
事前準備
6
Copyright © NTT Communications Corporation. All rights reserved.
座学
7
WebRTCについて知る
Copyright © NTT Communications Corporation. All rights reserved. 8
HTML5の全体像
HTML5が提供する機能は多岐にわたる。WebRTCはその⼀つの技術。
引⽤元:http://www.slideshare.net/dynamis/web-standards-infographics
Copyright © NTT Communications Corporation. All rights reserved. 9
WebRTCとは(概要)
ひとことで⾔うと「ブラウザでテレビ電話を実現する技術」
ブラウザだけで、プラグインのインストール無しに、Web会議、
ボイスチャット、テキストチャット、ファイル転送、電話との連
携等が実現可能。
従来のWeb WebRTC
カメラやマイ
クを利⽤可
リアルタイ
ムに送受信
ブラウザ間
の直接通信
サーバ⇔ク
ライアント
間の通信
リクエストと
レスポンスの
繰り返し
カメラやマイ
クの利⽤不可
サーバ サーバ
Copyright © NTT Communications Corporation. All rights reserved. 10
WebRTCとは(技術⾯)
技術的には2つの側⾯がある。
1.⾳声、映像、データのリアルタイム・コミュニケーションのオープン標準
l 従来のサービス(WebEx、Skype等)は互換性がなく、独⾃技術を含む。
WebRTCは相互接続が保証され、ライセンス使⽤料が不要。
1.ブラウザとネイティブアプリの両⽅で利⽤できる
l 例えば、オープンソースのC++のコードを利⽤しコンパイルすれば、ネイティ
ブアプリにWebRTC機能を組み込むこともできる。
Copyright © NTT Communications Corporation. All rights reserved.
WebRTCのクライアント対応状況
11
対応状況 OS アプリ 備考(2015/7/4現在)
✔ Windows Chrome
✔ Windows Firefox テレビ電話機能も搭載
✔ Windows IE プラグインが必要
✘ Windows Edge
2014年10⽉に開発着⼿を発表
ORTCが実装される予定
2015年7⽉段階では⼀部機能の
み実装(getUserMedia)
✔ Windows ネイティブ 要コンパイル
✔ Mac Chrome
✔ Mac Firefox テレビ電話機能も搭載
✔ Mac Safari プラグインが必要
✔ Mac ネイティブ 要コンパイル
✔ Android Chrome
✔ Android Firefox
✔ Android 標準ブラウザ Android 5.0で対応
✔ Android ネイティブ 要コンパイル
✘ iOS Chrome
✘ iOS Safari
✔ iOS ネイティブ 要コンパイル
Copyright © NTT Communications Corporation. All rights reserved.
WebRTC技術の全容
12
https://www.flickr.com/photos/noaaphotolib/5041457573
Copyright © NTT Communications Corporation. All rights reserved.
WebRTC技術の全容
13
まずは、海の上に出ている部分を理解
しましょう。
Copyright © NTT Communications Corporation. All rights reserved.
WebRTCの技術要素
14
WebRTCには様々な技術が使われています。
これから使⽤されている技術要素を順番に紹介します。
1.ICE
2.シグナリング
3.P2Pによるセキュアなリアルタイム通信
4.⾳声、映像処理
Copyright © NTT Communications Corporation. All rights reserved.
ICE(Interactive Connectivity Establishment)
1515
NAT
NAT
STUN
サーバ
Signaling
サーバ
STUN
サーバ
WebRTC Cli WebRTC Cli
WebRTCクライアント同⼠がP2Pでネットワークを介してつながるために
必要な仕組みを提供する
STUN
・⾃分のグローバルIP、
ポート番号を知る
・UDPホールパンチングという
仕組みでNATに⽳を開ける
TURN
・どうしてもNATに⽳を開けら
れない場合に、データ通信を
中継する仕組み
・WebRTCコネクション全体の
8〜9%はTURNが必要と
⾔われている(⽇本はもっと多いかも)
TURN
サーバ
Copyright © NTT Communications Corporation. All rights reserved.
UDPホールパンチング
16
NAT
STUN
NAT
※後述するNAT Typeにより挙動が変わります
Copyright © NTT Communications Corporation. All rights reserved.
UDPホールパンチング
17
俺のグローバル
IPとポート番号
教えて
111.111.111.111
50000番やで
NAT
STUN
NAT
※後述するNAT Typeにより挙動が変わります
Copyright © NTT Communications Corporation. All rights reserved.
UDPホールパンチング
18
俺のグローバル
IPとポート番号
教えて
222.222.222.222
20000番やで
NAT
STUN
NAT
IP:111.111.111.111
PORT:10000番
※後述するNAT Typeにより挙動が変わります
Copyright © NTT Communications Corporation. All rights reserved.
UDPホールパンチング
19
NAT
STUN
NAT
IP:111.111.111.111
PORT:10000番
IP:222.222.222.222
PORT:20000番
互いのIPとPORTを
何らかの⼿段で交換
(シグナリング)
※後述するNAT Typeにより挙動が変わります
Copyright © NTT Communications Corporation. All rights reserved.
UDPホールパンチング
20
NAT
STUN
NAT
IP:222.222.222.222
PORT:20000番
IP:111.111.111.111
PORT:10000番
アクセスさせ
てー! だめー。
⽳開いた!
※後述するNAT Typeにより挙動が変わります
Copyright © NTT Communications Corporation. All rights reserved.
UDPホールパンチング
21
NAT
STUN
NAT
IP:222.222.222.222
PORT:20000番
IP:111.111.111.111
PORT:10000番
通れる!!
アクセスさせてー。
⽳開いた!
※後述するNAT Typeにより挙動が変わります
Copyright © NTT Communications Corporation. All rights reserved.
UDPホールパンチング
22
NAT
STUN
NAT
IP:222.222.222.222
PORT:20000番
IP:111.111.111.111
PORT:10000番
もしかして!
通れる!
※後述するNAT Typeにより挙動が変わります
Copyright © NTT Communications Corporation. All rights reserved.
TURNの使いどころ
23
どうしてもNATに⽳があかない場合はTURNを利⽤する
互いのNAT
Type
フルコーン 制限付きフ
ルコーン
ポート制限
付きフル
コーン
シンメト
リック
フルコーン STUN STUN STUN STUN
制限付きフ
ルコーン
STUN STUN STUN STUN
ポート制限
付きフル
コーン
STUN STUN STUN TURN
シンメト
リック
STUN STUN TURN TURN
※NAT Typeは厳密に細分化すると9パターンあります。
よ
り
セ
キ
ュ
ア
よりセキュア
※もっと詳しく知りたい⽅はこちら。
http://www.slideshare.net/iwashi86/webrtcnat-a-talk-on-nat-behind-webrtc
Copyright © NTT Communications Corporation. All rights reserved.
TURNリレー
24
シンメトリック
NAT
TURN
シンメトリック
NAT
IP:222.222.222.222
PORT:20000番
IP:111.111.111.111
PORT:10000番
TURNサーバを中継する
(中継するだけなので通信の中⾝はわからない)
クライアントはP2Pのつもり
IP:11.11.11.11
PORT:3478
IP:11.11.11.11
PORT:3478
Copyright © NTT Communications Corporation. All rights reserved.
TURNリレー
25
シンメトリック
NAT
TURN
シンメトリック
NAT
IP:222.222.222.222
PORT:20000番
IP:111.111.111.111
PORT:10000番
TURNサーバを中継する
(中継するだけなので通信の中⾝はわからない)
IP:11.11.11.11
PORT:443
IP:11.11.11.11
PORT:443
TCPで通信可能TCPで通信可能
FW FW
TCP443か、怪しくないな!
Copyright © NTT Communications Corporation. All rights reserved.
TURNを使っても通らない場合がある
26
シンメトリック
NAT
TURN
シンメトリック
NAT
IP:222.222.222.222
PORT:20000番
IP:111.111.111.111
PORT:10000番
IP:11.11.11.11
PORT:443
IP:11.11.11.11
PORT:443
Proxy Proxy
おいおい、中⾝が怪しいぞ!
例えば、マイン・ザ・ミドル可能なProxyが存在する
おいおい、中⾝が怪しいぞ!
Copyright © NTT Communications Corporation. All rights reserved.
WebRTCの技術要素
27
WebRTCには様々な技術が使われています。
これから使⽤されている技術要素を順番に紹介します。
1.ICE
2.シグナリング
3.P2Pによるセキュアなリアルタイム通信
4.⾳声、映像処理
Copyright © NTT Communications Corporation. All rights reserved.
シグナリング
28
NAT
NAT
STUN
サーバ
Signaling
サーバ
STUN
サーバ
WebRTC Cli WebRTC Cli
ICEの仕組み等を利⽤して取得した情報を、互いに交換する仕組み
・どのような仕組みを⽤いても良い
・WebSocket(主流)
・XHRロングポーリング
・情報はSDPを⽤いて情報交換する
・テキストベースのプロトコル
・IPアドレス、ポート番号、
映像、⾳声コーデック情報
などを記載して交換する
・めちゃくちゃ難解
Copyright © NTT Communications Corporation. All rights reserved.
WebRTCの技術要素
29
WebRTCには様々な技術が使われています。
これから使⽤されている技術要素を順番に紹介します。
1.ICE
2.シグナリング
3.P2Pによるセキュアなリアルタイム通信
4.⾳声、映像処理
Copyright © NTT Communications Corporation. All rights reserved.
P2Pによるセキュアなリアルタイム通信
3030
すべての準備が整うとP2Pによる、セ
キュアな通信を開始
・映像・⾳声
・セキュアなリアルタイム通信(SRTP)
・AES(共通鍵暗号化)
・鍵交換にDTLSを⽤いる(DTLS-SRTP)
・データ
・TCP同様の信頼性、到達順序性、
フロー制御、輻輳制御をUDP上で実現
・セキュアなDTLS上で動作する
・DTLS
・通信経路暗号化
・データ整合性の保証
・認証⾏為は⾏わない(オレオレ証明書)
NAT
NAT
STUN
サーバ
Signaling
サーバ
STUN
サーバ
WebRTC Cli WebRTC Cli
IP
UDP
SCTPSRTP
DTLS
⾳声・映像 データ
Copyright © NTT Communications Corporation. All rights reserved.
P2Pだけじゃない・・多対多の通信
WebRTCはP2Pの通信が前提だが、ユースケースとしては多対多も
求められている。
31
フルメッシュでやる⽅法もあるが、端末への負荷がかかる
チューニングしても同時8つぐらいが限界
Copyright © NTT Communications Corporation. All rights reserved.
P2Pだけじゃない・・多対多の通信
MCU(Multipoint Control Unit)を利⽤する。
メディアを集約、ミキシングし各デバイスに流す。
クライアント側の負荷が⼩さい。
サーバ側の負荷はエンコード、デコード処理が⼊るため負荷が⾼い。
32
MCU
Copyright © NTT Communications Corporation. All rights reserved.
P2Pだけじゃない・・多対多の通信
SFU(Selective Forwarding Unit)を利⽤する。
クライアントからのストリームをコピーしてエンドポイントに転送する。
サーバ側の負荷は⼩さい。
33
SFU
Copyright © NTT Communications Corporation. All rights reserved.
WebRTCの技術要素
34
WebRTCには様々な技術が使われています。
これから使⽤されている技術要素を順番に紹介します。
1.ICE
2.シグナリング
3.P2Pによるセキュアなリアルタイム通信
4.⾳声、映像処理
Copyright © NTT Communications Corporation. All rights reserved.
⾳声・動画処理
35
WebRTCクライアントはPCやデバイスの⾳声映像ストリームにアクセスでき
る(以下、Webブラウザの場合)
・getUserMedia(WebAPI)
プラットフォーム上の
⾳声、映像ストリームを取得できる
W3Cによって規定されたAPI
・ブラウザに実装された
エンジンによって、
エンコード、デコード処理がなされる
・コーデック
・Video:VP8、H.264
・Audio:Opus、G.711 PCMA & PCMU
デバイスハードウェア
⾳声処理エンジン
コーデック
ジッタ/パケロス補正
エコー除去
ノイズリダクション
映像処理エンジン
コーデック
ジッタ/パケロス補正
⾳声・動画同期
画像補正
⾳声キャプチャ 動画キャプチャ
内部WebRTC API
WebAPI(W3C)
引⽤元:オライリー・ジャパン
「ハイパフォーマンスブラウザネットワーキング」 P.301
Copyright © NTT Communications Corporation. All rights reserved.
ハンズオン
36
WebRTCのシグナリングを体感する
https://github.com/yusuke84/webrtc_handson/STEP1
WebRTCで簡単なビデオチャットアプリを
開発する
https://github.com/yusuke84/webrtc_handson/STEP2
Copyright © NTT Communications Corporation. All rights reserved.
座学
37
SkyWayについて知る
Copyright © NTT Communications Corporation. All rights reserved. 38
WebRTCはWeb開発者にとってちょっと難しい
38
ブラウザ間で直接通信する前に、サーバ経由で「シグナリング」を
⾏う必要があり、実装にはネットワークの知識が必要。
38ようやく直接通信できる
これらの通信が
完了してから…
Copyright © NTT Communications Corporation. All rights reserved.
そこで登場、SkyWay!
39
n WebRTC利⽤アプリを簡単に開発できるクラウド基盤
2013年12⽉5⽇に提供開始
無料!
提供内容
シグナリングAPI
STUN/TURN API
JavaScriptライブラリ(PeerJS互換)
iOS/Androidライブラリ
サンプルアプリ
各種ライブラリ
⽇本語ドキュメント
https://skyway.io
Copyright © NTT Communications Corporation. All rights reserved. 40
SkyWayの特徴
SkyWayのシグナリングAPIとライブラリが複雑な処理を担うので
、開発者は簡単にWebRTC利⽤アプリを開発できる。
STUN
API
Signaling
API
STUN
API
ライブラリ ライブラリ
APIとライブ
ラリが複雑な
処理を担う
TURN
API
Copyright © NTT Communications Corporation. All rights reserved. 41
開発者登録を⾏う
まずはアクセス → https://skyway.io
ここをクリック
Copyright © NTT Communications Corporation. All rights reserved. 42
APIキーの申請にはドメインが必要
n APIキーの申請に必要なもの
n お名前
n 連絡先メールアドレス
n SkyWayを利⽤するドメイン
n SkyWayを利⽤するドメイン
APIキーの不正利⽤を防ぐ⽬的のドメ
イン認証
n 例えば・・・
n ローカルで動かしたい
n 127.0.0.1
n localhost
n 開発サーバで動かしたい
n dev.domain.jp
n 本番サーバで動かしたい
n www.domain.jp
n iOSとAndroidは独⾃に設定
Copyright © NTT Communications Corporation. All rights reserved. 43
開発に必要な情報を提供
⽇本語ドキュメントを公開中
http://nttcom.github.io/skyway/docs/
Copyright © NTT Communications Corporation. All rights reserved. 44
開発に必要な情報を提供
開発者向けフォーラムを⽤意
SkyWay Technical Forum
• だれでも参加可能!
• 中の⼈が懇切丁寧に開発者の疑問質問にお答え!
• WebRTCに関す⽇本語での情報交換に活⽤してください
http://goo.gl/enBkcF
Copyright © NTT Communications Corporation. All rights reserved. 45
様々な機能を活⽤する
Copyright © NTT Communications Corporation. All rights reserved.
ハンズオン
46
SkyWayを使ってビデオチャットを作る
https://github.com/yusuke84/webrtc_handson/STEP3
Copyright © NTT Communications Corporation. All rights reserved.
座学
47
WebRTCをビジネスで活⽤するために知っ
ておくこと
Copyright © NTT Communications Corporation. All rights reserved.
現状対応ブラウザでも細かな実装が異なる部分があります。
JavaScriptレベルの違い、スタックレベルでの違いなど、その差分
は様々です。
商⽤サービスを開発し運⽤していくうえで、⽇々変わるブラウザの
実装について、可能な限り追いかけて⾏くことが必要とされます。
ブラウザ毎の実装差分を理解せよ
48
Copyright © NTT Communications Corporation. All rights reserved.
iOSの場合はネイティブクライアントの導⼊が必須となります。モ
バイルクライアントを利⽤するのであれば、ネイティブアプリ開発
の知識が必要になります。
ネイティブクライアント開発も避けては通れない
49
Copyright © NTT Communications Corporation. All rights reserved.
ICEというNATを越える仕組みが⽤意されていますが、現実のネッ
トワークはそんなに⽢いモノではありません。
Wiresharkでの通信パケット解析の技術は合ったほうがいいです。
また、シグナリングで交換されるICE Candidate、SDPの中⾝につ
いては読めるようになっている⽅が良いでしょう。
「よくわからないけどつながらない」に備えよ
50
Copyright © NTT Communications Corporation. All rights reserved.
WebRTCを構成する技術で、JavaScriptAPI以外はほぼすべて、
IETFの中で議論がなされています。
ICEの話に始まり、リアルタイム通信プロトコルである
RTP/SRTP/RTCPやDTLS、SCTP、各種コーデックなどなど・・・
・実に幅広い技術が利⽤されています。
ガチでやるなら、避けては通れません。
IETFとも仲良くしよう
51
Copyright © NTT Communications Corporation. All rights reserved.
W3Cでは現在WebRTC1.0の仕様策定が進められていますが、
ORTCという兄弟仕様が既に登場しています。これは、Extensible
Webの流れに乗るものです。
WebRTC1.0は限定的なユースケースを元にAPI仕様が策定されて
きましたが、ORTCでは、ローレイヤーなAPIも仕様として定義さ
れています。ORTCの登場によって、WebRTCのユースケースは更
に広がりを⾒せてきます。また、Edgeは現在ORTCを実装中です。
WebRTC1.0制定後は、WebRTC1.0はORTCは今後融合し、
WebRTC NV(Next Version)へ移⾏する予定です。
標準化の動向をきちんとウォッチすることが重要です。
W3Cでの標準化は今まさに激動中
52
Copyright © NTT Communications Corporation. All rights reserved.
• ⽇本のWebRTC開発者が集まるSlack
http://webrtc-jp-slackin.herokuapp.com/
• WebRTCの⽇本語による最新情報
https://twitter.com/hashtag/webrtcjp
• SkyWayの開発者フォーラム
https://groups.google.com/forum/#!forum/skywayjs
• 最新情報はここで⼿に⼊れろ(英語だけど)
https://groups.google.com/forum/#!forum/discuss-webrtc
https://webrtchacks.com/
とりあえず、⼀⼈で開発するのは無理
53
Copyright © NTT Communications Corporation. All rights reserved. 54
ご清聴ありがとうございました!

More Related Content

What's hot

Pcapngを読んでみる
Pcapngを読んでみるPcapngを読んでみる
Pcapngを読んでみるYagi Shinnosuke
 
インターネットの仕組みとISPの構造
インターネットの仕組みとISPの構造インターネットの仕組みとISPの構造
インターネットの仕組みとISPの構造Taiji Tsuchiya
 
WebRTCの技術解説 第二版 公開版 本編
WebRTCの技術解説 第二版 公開版 本編WebRTCの技術解説 第二版 公開版 本編
WebRTCの技術解説 第二版 公開版 本編Contest Ntt-west
 
エンジニアから都庁へ~中の人が語る街のDX、都庁のDX~
エンジニアから都庁へ~中の人が語る街のDX、都庁のDX~エンジニアから都庁へ~中の人が語る街のDX、都庁のDX~
エンジニアから都庁へ~中の人が語る街のDX、都庁のDX~Norisuke Hirai
 
AWS Elemental MediaConvert で動画変換
AWS Elemental MediaConvert で動画変換AWS Elemental MediaConvert で動画変換
AWS Elemental MediaConvert で動画変換虎の穴 開発室
 
究極のゲーム用通信プロトコル “WebRTC”
究極のゲーム用通信プロトコル “WebRTC”究極のゲーム用通信プロトコル “WebRTC”
究極のゲーム用通信プロトコル “WebRTC”Ryosuke Otsuya
 
ネットワークエンジニアはどこでウデマエをみがくのか?
ネットワークエンジニアはどこでウデマエをみがくのか?ネットワークエンジニアはどこでウデマエをみがくのか?
ネットワークエンジニアはどこでウデマエをみがくのか?Yuya Rin
 
10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPFShuji Yamada
 
Python製BDDツールで自動化してみた
Python製BDDツールで自動化してみたPython製BDDツールで自動化してみた
Python製BDDツールで自動化してみたKeijiUehata1
 
Pythonでパケット解析
Pythonでパケット解析Pythonでパケット解析
Pythonでパケット解析euphoricwavism
 
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発Developers Summit
 
本当は楽しいインターネット
本当は楽しいインターネット本当は楽しいインターネット
本当は楽しいインターネットYuya Rin
 
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawaws
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawawsOAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawaws
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawawsTatsuo Kudo
 
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜Masaru Kurahayashi
 
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~UnityTechnologiesJapan002
 
HTTPを理解する
HTTPを理解するHTTPを理解する
HTTPを理解するIIJ
 
ラズパイでWebRTC ヾ(*´∀`*)ノキャッキャ uv4l-webrtc 軽くハックしてみたよ!
ラズパイでWebRTC ヾ(*´∀`*)ノキャッキャ    uv4l-webrtc 軽くハックしてみたよ!ラズパイでWebRTC ヾ(*´∀`*)ノキャッキャ    uv4l-webrtc 軽くハックしてみたよ!
ラズパイでWebRTC ヾ(*´∀`*)ノキャッキャ uv4l-webrtc 軽くハックしてみたよ!Kensaku Komatsu
 
5分でわかるWebRTCの仕組み - html5minutes vol.01
5分でわかるWebRTCの仕組み - html5minutes vol.015分でわかるWebRTCの仕組み - html5minutes vol.01
5分でわかるWebRTCの仕組み - html5minutes vol.01西畑 一馬
 
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...NTT DATA Technology & Innovation
 

What's hot (20)

Pcapngを読んでみる
Pcapngを読んでみるPcapngを読んでみる
Pcapngを読んでみる
 
インターネットの仕組みとISPの構造
インターネットの仕組みとISPの構造インターネットの仕組みとISPの構造
インターネットの仕組みとISPの構造
 
WebSocket / WebRTCの技術紹介
WebSocket / WebRTCの技術紹介WebSocket / WebRTCの技術紹介
WebSocket / WebRTCの技術紹介
 
WebRTCの技術解説 第二版 公開版 本編
WebRTCの技術解説 第二版 公開版 本編WebRTCの技術解説 第二版 公開版 本編
WebRTCの技術解説 第二版 公開版 本編
 
エンジニアから都庁へ~中の人が語る街のDX、都庁のDX~
エンジニアから都庁へ~中の人が語る街のDX、都庁のDX~エンジニアから都庁へ~中の人が語る街のDX、都庁のDX~
エンジニアから都庁へ~中の人が語る街のDX、都庁のDX~
 
AWS Elemental MediaConvert で動画変換
AWS Elemental MediaConvert で動画変換AWS Elemental MediaConvert で動画変換
AWS Elemental MediaConvert で動画変換
 
究極のゲーム用通信プロトコル “WebRTC”
究極のゲーム用通信プロトコル “WebRTC”究極のゲーム用通信プロトコル “WebRTC”
究極のゲーム用通信プロトコル “WebRTC”
 
ネットワークエンジニアはどこでウデマエをみがくのか?
ネットワークエンジニアはどこでウデマエをみがくのか?ネットワークエンジニアはどこでウデマエをみがくのか?
ネットワークエンジニアはどこでウデマエをみがくのか?
 
10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF
 
Python製BDDツールで自動化してみた
Python製BDDツールで自動化してみたPython製BDDツールで自動化してみた
Python製BDDツールで自動化してみた
 
Pythonでパケット解析
Pythonでパケット解析Pythonでパケット解析
Pythonでパケット解析
 
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発
 
本当は楽しいインターネット
本当は楽しいインターネット本当は楽しいインターネット
本当は楽しいインターネット
 
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawaws
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawawsOAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawaws
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawaws
 
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
 
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
 
HTTPを理解する
HTTPを理解するHTTPを理解する
HTTPを理解する
 
ラズパイでWebRTC ヾ(*´∀`*)ノキャッキャ uv4l-webrtc 軽くハックしてみたよ!
ラズパイでWebRTC ヾ(*´∀`*)ノキャッキャ    uv4l-webrtc 軽くハックしてみたよ!ラズパイでWebRTC ヾ(*´∀`*)ノキャッキャ    uv4l-webrtc 軽くハックしてみたよ!
ラズパイでWebRTC ヾ(*´∀`*)ノキャッキャ uv4l-webrtc 軽くハックしてみたよ!
 
5分でわかるWebRTCの仕組み - html5minutes vol.01
5分でわかるWebRTCの仕組み - html5minutes vol.015分でわかるWebRTCの仕組み - html5minutes vol.01
5分でわかるWebRTCの仕組み - html5minutes vol.01
 
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
 

Viewers also liked

WebRTCの技術解説 第四版 公開版
WebRTCの技術解説 第四版 公開版WebRTCの技術解説 第四版 公開版
WebRTCの技術解説 第四版 公開版You_Kinjoh
 
はじめてのWebRTC/ORTC
はじめてのWebRTC/ORTCはじめてのWebRTC/ORTC
はじめてのWebRTC/ORTCYusuke Naka
 
WebRTCで実現するオンライン英会話の未来
WebRTCで実現するオンライン英会話の未来WebRTCで実現するオンライン英会話の未来
WebRTCで実現するオンライン英会話の未来WebRTCConferenceJapan
 
WebRTCライトニングトークス 〜 WebRTCを色々使ってみた話
WebRTCライトニングトークス 〜 WebRTCを色々使ってみた話WebRTCライトニングトークス 〜 WebRTCを色々使ってみた話
WebRTCライトニングトークス 〜 WebRTCを色々使ってみた話infocom corp.
 
OSSコミッタの生活とその必要性
OSSコミッタの生活とその必要性OSSコミッタの生活とその必要性
OSSコミッタの生活とその必要性Hirofumi Ichihara
 
Echo in WebRTC; Why?
Echo in WebRTC; Why?Echo in WebRTC; Why?
Echo in WebRTC; Why?Muaz Khan
 
5分で分るWebRTCコーデックウォーズ
5分で分るWebRTCコーデックウォーズ5分で分るWebRTCコーデックウォーズ
5分で分るWebRTCコーデックウォーズYusuke Naka
 
WebRTC/ORTCの最新動向まるわかり!
WebRTC/ORTCの最新動向まるわかり!WebRTC/ORTCの最新動向まるわかり!
WebRTC/ORTCの最新動向まるわかり!Yusuke Naka
 
SkyWayで作るボイスチャット
SkyWayで作るボイスチャットSkyWayで作るボイスチャット
SkyWayで作るボイスチャットtioken
 
見やすいプレゼン資料の作り方 - リニューアル増量版
見やすいプレゼン資料の作り方 - リニューアル増量版見やすいプレゼン資料の作り方 - リニューアル増量版
見やすいプレゼン資料の作り方 - リニューアル増量版MOCKS | Yuta Morishige
 

Viewers also liked (14)

WebRTCの技術解説 第四版 公開版
WebRTCの技術解説 第四版 公開版WebRTCの技術解説 第四版 公開版
WebRTCの技術解説 第四版 公開版
 
はじめてのWebRTC/ORTC
はじめてのWebRTC/ORTCはじめてのWebRTC/ORTC
はじめてのWebRTC/ORTC
 
getUserMedia
getUserMediagetUserMedia
getUserMedia
 
WebRTCで実現するオンライン英会話の未来
WebRTCで実現するオンライン英会話の未来WebRTCで実現するオンライン英会話の未来
WebRTCで実現するオンライン英会話の未来
 
WebRTCライトニングトークス 〜 WebRTCを色々使ってみた話
WebRTCライトニングトークス 〜 WebRTCを色々使ってみた話WebRTCライトニングトークス 〜 WebRTCを色々使ってみた話
WebRTCライトニングトークス 〜 WebRTCを色々使ってみた話
 
OSSコミッタの生活とその必要性
OSSコミッタの生活とその必要性OSSコミッタの生活とその必要性
OSSコミッタの生活とその必要性
 
NTT Tech Conference #1 Opening Keynote
NTT Tech Conference #1 Opening KeynoteNTT Tech Conference #1 Opening Keynote
NTT Tech Conference #1 Opening Keynote
 
WebRTC on Native App
WebRTC on Native AppWebRTC on Native App
WebRTC on Native App
 
Echo in WebRTC; Why?
Echo in WebRTC; Why?Echo in WebRTC; Why?
Echo in WebRTC; Why?
 
5分で分るWebRTCコーデックウォーズ
5分で分るWebRTCコーデックウォーズ5分で分るWebRTCコーデックウォーズ
5分で分るWebRTCコーデックウォーズ
 
WebRTC/ORTCの最新動向まるわかり!
WebRTC/ORTCの最新動向まるわかり!WebRTC/ORTCの最新動向まるわかり!
WebRTC/ORTCの最新動向まるわかり!
 
SkyWayで作るボイスチャット
SkyWayで作るボイスチャットSkyWayで作るボイスチャット
SkyWayで作るボイスチャット
 
しょぼいプレゼンをパワポのせいにするな! by @jessedee
しょぼいプレゼンをパワポのせいにするな! by @jessedeeしょぼいプレゼンをパワポのせいにするな! by @jessedee
しょぼいプレゼンをパワポのせいにするな! by @jessedee
 
見やすいプレゼン資料の作り方 - リニューアル増量版
見やすいプレゼン資料の作り方 - リニューアル増量版見やすいプレゼン資料の作り方 - リニューアル増量版
見やすいプレゼン資料の作り方 - リニューアル増量版
 

Similar to WebRTCハンズオン

WebRTC入門 ~沖縄編~
WebRTC入門 ~沖縄編~WebRTC入門 ~沖縄編~
WebRTC入門 ~沖縄編~Ryosuke Otsuya
 
02172016 web rtc_conf_komasshu
02172016 web rtc_conf_komasshu02172016 web rtc_conf_komasshu
02172016 web rtc_conf_komasshuKensaku Komatsu
 
5分でわかるWebRTC
5分でわかるWebRTC5分でわかるWebRTC
5分でわかるWebRTCRyosuke Otsuya
 
WebRTC入門+最新動向
WebRTC入門+最新動向WebRTC入門+最新動向
WebRTC入門+最新動向Ryosuke Otsuya
 
iPhoneでなんちゃってWebRTC
iPhoneでなんちゃってWebRTCiPhoneでなんちゃってWebRTC
iPhoneでなんちゃってWebRTCKensaku Komatsu
 
ION Tokyo: Keynote Presentation -- "Can we go back to the original? A Return ...
ION Tokyo: Keynote Presentation -- "Can we go back to the original? A Return ...ION Tokyo: Keynote Presentation -- "Can we go back to the original? A Return ...
ION Tokyo: Keynote Presentation -- "Can we go back to the original? A Return ...Deploy360 Programme (Internet Society)
 
WebRTCが拓く 新たなWebビジネスの世界
WebRTCが拓く新たなWebビジネスの世界WebRTCが拓く新たなWebビジネスの世界
WebRTCが拓く 新たなWebビジネスの世界Kensaku Komatsu
 
ネットワーク技術を学ぶ(STP: Spanning Tree Protocol) ~Cisco で学ぶ L2 ネットワークの世界~
ネットワーク技術を学ぶ(STP: Spanning Tree Protocol) ~Cisco で学ぶ L2 ネットワークの世界~ネットワーク技術を学ぶ(STP: Spanning Tree Protocol) ~Cisco で学ぶ L2 ネットワークの世界~
ネットワーク技術を学ぶ(STP: Spanning Tree Protocol) ~Cisco で学ぶ L2 ネットワークの世界~Wataru NOGUCHI
 
エフサミ2014 web rtcの傾向と対策
エフサミ2014 web rtcの傾向と対策エフサミ2014 web rtcの傾向と対策
エフサミ2014 web rtcの傾向と対策Kensaku Komatsu
 
Openstack neutron vtjseminar_20160302
Openstack neutron vtjseminar_20160302Openstack neutron vtjseminar_20160302
Openstack neutron vtjseminar_20160302Takehiro Kudou
 
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月 知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月 VirtualTech Japan Inc.
 
2015 10-ntt-com-forum-miyakawa-revised
2015 10-ntt-com-forum-miyakawa-revised2015 10-ntt-com-forum-miyakawa-revised
2015 10-ntt-com-forum-miyakawa-revisedshinmiyakawa
 
NTTのR&Dを支えるNTTコミュニケーションズのIT基盤サービス
NTTのR&Dを支えるNTTコミュニケーションズのIT基盤サービスNTTのR&Dを支えるNTTコミュニケーションズのIT基盤サービス
NTTのR&Dを支えるNTTコミュニケーションズのIT基盤サービスNTT Software Innovation Center
 
QUICとNATと
QUICとNATとQUICとNATと
QUICとNATとYuya Rin
 
スマートフォン時代のモバイルサービス2013(配布可能版)
スマートフォン時代のモバイルサービス2013(配布可能版)スマートフォン時代のモバイルサービス2013(配布可能版)
スマートフォン時代のモバイルサービス2013(配布可能版)Osaka University
 
Lagopusで試すFirewall
Lagopusで試すFirewallLagopusで試すFirewall
Lagopusで試すFirewallTomoya Hibi
 

Similar to WebRTCハンズオン (20)

WebRTC入門 ~沖縄編~
WebRTC入門 ~沖縄編~WebRTC入門 ~沖縄編~
WebRTC入門 ~沖縄編~
 
SkyWay HandsOn
SkyWay HandsOnSkyWay HandsOn
SkyWay HandsOn
 
02172016 web rtc_conf_komasshu
02172016 web rtc_conf_komasshu02172016 web rtc_conf_komasshu
02172016 web rtc_conf_komasshu
 
OpenStack Summit Tokyo 興味をひいたセッション
OpenStack Summit Tokyo 興味をひいたセッションOpenStack Summit Tokyo 興味をひいたセッション
OpenStack Summit Tokyo 興味をひいたセッション
 
TPAC 2015 WebRTC WG 最新レポート
TPAC 2015 WebRTC WG 最新レポートTPAC 2015 WebRTC WG 最新レポート
TPAC 2015 WebRTC WG 最新レポート
 
5分でわかるWebRTC
5分でわかるWebRTC5分でわかるWebRTC
5分でわかるWebRTC
 
WebRTC入門+最新動向
WebRTC入門+最新動向WebRTC入門+最新動向
WebRTC入門+最新動向
 
iPhoneでなんちゃってWebRTC
iPhoneでなんちゃってWebRTCiPhoneでなんちゃってWebRTC
iPhoneでなんちゃってWebRTC
 
ION Tokyo: Keynote Presentation -- "Can we go back to the original? A Return ...
ION Tokyo: Keynote Presentation -- "Can we go back to the original? A Return ...ION Tokyo: Keynote Presentation -- "Can we go back to the original? A Return ...
ION Tokyo: Keynote Presentation -- "Can we go back to the original? A Return ...
 
WebRTCが拓く 新たなWebビジネスの世界
WebRTCが拓く新たなWebビジネスの世界WebRTCが拓く新たなWebビジネスの世界
WebRTCが拓く 新たなWebビジネスの世界
 
ネットワーク技術を学ぶ(STP: Spanning Tree Protocol) ~Cisco で学ぶ L2 ネットワークの世界~
ネットワーク技術を学ぶ(STP: Spanning Tree Protocol) ~Cisco で学ぶ L2 ネットワークの世界~ネットワーク技術を学ぶ(STP: Spanning Tree Protocol) ~Cisco で学ぶ L2 ネットワークの世界~
ネットワーク技術を学ぶ(STP: Spanning Tree Protocol) ~Cisco で学ぶ L2 ネットワークの世界~
 
WebRTC の紹介
WebRTC の紹介WebRTC の紹介
WebRTC の紹介
 
エフサミ2014 web rtcの傾向と対策
エフサミ2014 web rtcの傾向と対策エフサミ2014 web rtcの傾向と対策
エフサミ2014 web rtcの傾向と対策
 
Openstack neutron vtjseminar_20160302
Openstack neutron vtjseminar_20160302Openstack neutron vtjseminar_20160302
Openstack neutron vtjseminar_20160302
 
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月 知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
 
2015 10-ntt-com-forum-miyakawa-revised
2015 10-ntt-com-forum-miyakawa-revised2015 10-ntt-com-forum-miyakawa-revised
2015 10-ntt-com-forum-miyakawa-revised
 
NTTのR&Dを支えるNTTコミュニケーションズのIT基盤サービス
NTTのR&Dを支えるNTTコミュニケーションズのIT基盤サービスNTTのR&Dを支えるNTTコミュニケーションズのIT基盤サービス
NTTのR&Dを支えるNTTコミュニケーションズのIT基盤サービス
 
QUICとNATと
QUICとNATとQUICとNATと
QUICとNATと
 
スマートフォン時代のモバイルサービス2013(配布可能版)
スマートフォン時代のモバイルサービス2013(配布可能版)スマートフォン時代のモバイルサービス2013(配布可能版)
スマートフォン時代のモバイルサービス2013(配布可能版)
 
Lagopusで試すFirewall
Lagopusで試すFirewallLagopusで試すFirewall
Lagopusで試すFirewall
 

More from Yusuke Naka

SkyWayを使いこなすために How to use SkyWay -SkyWay UG Kansai #1 スペシャルバージョン-
SkyWayを使いこなすために How to use SkyWay -SkyWay UG Kansai #1 スペシャルバージョン-SkyWayを使いこなすために How to use SkyWay -SkyWay UG Kansai #1 スペシャルバージョン-
SkyWayを使いこなすために How to use SkyWay -SkyWay UG Kansai #1 スペシャルバージョン-Yusuke Naka
 
SkyWay UG Kansai #1 Kickoff
SkyWay UG Kansai #1 KickoffSkyWay UG Kansai #1 Kickoff
SkyWay UG Kansai #1 KickoffYusuke Naka
 
SkyWay UG Tokyo #1 Kickoff
SkyWay UG Tokyo #1 KickoffSkyWay UG Tokyo #1 Kickoff
SkyWay UG Tokyo #1 KickoffYusuke Naka
 
SkyWayとWebRTC開発者コミュニティ4年間の軌跡とCMC_Meetupで学んだこと、実践したこと
SkyWayとWebRTC開発者コミュニティ4年間の軌跡とCMC_Meetupで学んだこと、実践したことSkyWayとWebRTC開発者コミュニティ4年間の軌跡とCMC_Meetupで学んだこと、実践したこと
SkyWayとWebRTC開発者コミュニティ4年間の軌跡とCMC_Meetupで学んだこと、実践したことYusuke Naka
 
NTTコミュニケーションズがちょっと変わったメディアを作ったわけ
NTTコミュニケーションズがちょっと変わったメディアを作ったわけNTTコミュニケーションズがちょっと変わったメディアを作ったわけ
NTTコミュニケーションズがちょっと変わったメディアを作ったわけYusuke Naka
 
WebRTC NextVersion時代のJavaScript開発
WebRTC NextVersion時代のJavaScript開発WebRTC NextVersion時代のJavaScript開発
WebRTC NextVersion時代のJavaScript開発Yusuke Naka
 
HTML5 Experts.jp パフォーマンス・チューニング
HTML5 Experts.jp パフォーマンス・チューニングHTML5 Experts.jp パフォーマンス・チューニング
HTML5 Experts.jp パフォーマンス・チューニングYusuke Naka
 
WebRTC開発者向けプラットフォーム SkyWayの裏側
WebRTC開発者向けプラットフォーム SkyWayの裏側WebRTC開発者向けプラットフォーム SkyWayの裏側
WebRTC開発者向けプラットフォーム SkyWayの裏側Yusuke Naka
 
TypeScriptをオススメする理由
TypeScriptをオススメする理由TypeScriptをオススメする理由
TypeScriptをオススメする理由Yusuke Naka
 
FuelPHP活用事例
FuelPHP活用事例FuelPHP活用事例
FuelPHP活用事例Yusuke Naka
 
Chrome Extensionで スクリーンシェアをやってみる
Chrome ExtensionでスクリーンシェアをやってみるChrome Extensionでスクリーンシェアをやってみる
Chrome Extensionで スクリーンシェアをやってみるYusuke Naka
 
ORTCの仕様書をざっくり斜め読みする
ORTCの仕様書をざっくり斜め読みするORTCの仕様書をざっくり斜め読みする
ORTCの仕様書をざっくり斜め読みするYusuke Naka
 
第72回読書するエンジニアの会(テーマ:変人)
第72回読書するエンジニアの会(テーマ:変人)第72回読書するエンジニアの会(テーマ:変人)
第72回読書するエンジニアの会(テーマ:変人)Yusuke Naka
 
Webrtc最新動向
Webrtc最新動向Webrtc最新動向
Webrtc最新動向Yusuke Naka
 
WebRTCを始めよう! HTML5fun 第一回勉強会
WebRTCを始めよう! HTML5fun 第一回勉強会WebRTCを始めよう! HTML5fun 第一回勉強会
WebRTCを始めよう! HTML5fun 第一回勉強会Yusuke Naka
 
SPAを実現するために必要な通信技術
SPAを実現するために必要な通信技術SPAを実現するために必要な通信技術
SPAを実現するために必要な通信技術Yusuke Naka
 

More from Yusuke Naka (17)

SkyWayを使いこなすために How to use SkyWay -SkyWay UG Kansai #1 スペシャルバージョン-
SkyWayを使いこなすために How to use SkyWay -SkyWay UG Kansai #1 スペシャルバージョン-SkyWayを使いこなすために How to use SkyWay -SkyWay UG Kansai #1 スペシャルバージョン-
SkyWayを使いこなすために How to use SkyWay -SkyWay UG Kansai #1 スペシャルバージョン-
 
SkyWay UG Kansai #1 Kickoff
SkyWay UG Kansai #1 KickoffSkyWay UG Kansai #1 Kickoff
SkyWay UG Kansai #1 Kickoff
 
SkyWay UG Tokyo #1 Kickoff
SkyWay UG Tokyo #1 KickoffSkyWay UG Tokyo #1 Kickoff
SkyWay UG Tokyo #1 Kickoff
 
SkyWayとWebRTC開発者コミュニティ4年間の軌跡とCMC_Meetupで学んだこと、実践したこと
SkyWayとWebRTC開発者コミュニティ4年間の軌跡とCMC_Meetupで学んだこと、実践したことSkyWayとWebRTC開発者コミュニティ4年間の軌跡とCMC_Meetupで学んだこと、実践したこと
SkyWayとWebRTC開発者コミュニティ4年間の軌跡とCMC_Meetupで学んだこと、実践したこと
 
NTTコミュニケーションズがちょっと変わったメディアを作ったわけ
NTTコミュニケーションズがちょっと変わったメディアを作ったわけNTTコミュニケーションズがちょっと変わったメディアを作ったわけ
NTTコミュニケーションズがちょっと変わったメディアを作ったわけ
 
WebRTC NextVersion時代のJavaScript開発
WebRTC NextVersion時代のJavaScript開発WebRTC NextVersion時代のJavaScript開発
WebRTC NextVersion時代のJavaScript開発
 
HTML5 Experts.jp パフォーマンス・チューニング
HTML5 Experts.jp パフォーマンス・チューニングHTML5 Experts.jp パフォーマンス・チューニング
HTML5 Experts.jp パフォーマンス・チューニング
 
WebRTC開発者向けプラットフォーム SkyWayの裏側
WebRTC開発者向けプラットフォーム SkyWayの裏側WebRTC開発者向けプラットフォーム SkyWayの裏側
WebRTC開発者向けプラットフォーム SkyWayの裏側
 
TypeScriptをオススメする理由
TypeScriptをオススメする理由TypeScriptをオススメする理由
TypeScriptをオススメする理由
 
FuelPHP活用事例
FuelPHP活用事例FuelPHP活用事例
FuelPHP活用事例
 
Chrome Extensionで スクリーンシェアをやってみる
Chrome ExtensionでスクリーンシェアをやってみるChrome Extensionでスクリーンシェアをやってみる
Chrome Extensionで スクリーンシェアをやってみる
 
ORTCの仕様書をざっくり斜め読みする
ORTCの仕様書をざっくり斜め読みするORTCの仕様書をざっくり斜め読みする
ORTCの仕様書をざっくり斜め読みする
 
第72回読書するエンジニアの会(テーマ:変人)
第72回読書するエンジニアの会(テーマ:変人)第72回読書するエンジニアの会(テーマ:変人)
第72回読書するエンジニアの会(テーマ:変人)
 
5jCup WebRTC賞
5jCup WebRTC賞5jCup WebRTC賞
5jCup WebRTC賞
 
Webrtc最新動向
Webrtc最新動向Webrtc最新動向
Webrtc最新動向
 
WebRTCを始めよう! HTML5fun 第一回勉強会
WebRTCを始めよう! HTML5fun 第一回勉強会WebRTCを始めよう! HTML5fun 第一回勉強会
WebRTCを始めよう! HTML5fun 第一回勉強会
 
SPAを実現するために必要な通信技術
SPAを実現するために必要な通信技術SPAを実現するために必要な通信技術
SPAを実現するために必要な通信技術
 

Recently uploaded

論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Hiroshi Tomioka
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 

Recently uploaded (12)

論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 

WebRTCハンズオン

  • 1. Copyright © NTT Communications Corporation. All rights reserved. WebRTCハンズオン NTTコミュニケーションズ株式会社 技術開発部 仲 裕介
  • 2. Copyright © NTT Communications Corporation. All rights reserved. ⾃⼰紹介 1 uなかゆうすけ(@Tukimikage) l NTTコミュニケーションズ 技術開発部 所属 Ø 主にWebエンジニア l コミュニティ活動 Ø WebRTC Meetup Tokyo主催 http://webrtcjp.info/
  • 3. Copyright © NTT Communications Corporation. All rights reserved. ⾃⼰紹介 2 u 仕事その1 WebRTC開発者向けプラットフォームSkyWayの開発・運営 ・2013年12⽉5⽇に提供開始 ・詳しくは後ほど! https://skyway.io
  • 4. Copyright © NTT Communications Corporation. All rights reserved. ⾃⼰紹介 3 u 仕事その2 HTML5 Experts.jpの運営 ・HTML5に特化した Web技術者向け情報メディア ・⽇本最⾼峰のWebエキスパート、 コントリビューターによる情報発信 ・コントリビューター(寄稿者)募集! https://html5experts.jp/
  • 5. Copyright © NTT Communications Corporation. All rights reserved. 今⽇のスケジュール 4 • WebRTCについて知る(座学) • WebRTCのシグナリングを体感する • WebRTCで簡単なビデオチャットアプリを開発する ー休憩ー • SkyWayについて知る(座学) • SkyWayを使ってビデオチャットを作る • WebRTCをビジネスで活⽤するために知っておくこと(座学)
  • 6. Copyright © NTT Communications Corporation. All rights reserved. このハンズオンの対象者 • Webデベロッパー 5
  • 7. Copyright © NTT Communications Corporation. All rights reserved. • こちらのリポジトリを参照して下さい。 https://github.com/yusuke84/webrtc_handson 事前準備 6
  • 8. Copyright © NTT Communications Corporation. All rights reserved. 座学 7 WebRTCについて知る
  • 9. Copyright © NTT Communications Corporation. All rights reserved. 8 HTML5の全体像 HTML5が提供する機能は多岐にわたる。WebRTCはその⼀つの技術。 引⽤元:http://www.slideshare.net/dynamis/web-standards-infographics
  • 10. Copyright © NTT Communications Corporation. All rights reserved. 9 WebRTCとは(概要) ひとことで⾔うと「ブラウザでテレビ電話を実現する技術」 ブラウザだけで、プラグインのインストール無しに、Web会議、 ボイスチャット、テキストチャット、ファイル転送、電話との連 携等が実現可能。 従来のWeb WebRTC カメラやマイ クを利⽤可 リアルタイ ムに送受信 ブラウザ間 の直接通信 サーバ⇔ク ライアント 間の通信 リクエストと レスポンスの 繰り返し カメラやマイ クの利⽤不可 サーバ サーバ
  • 11. Copyright © NTT Communications Corporation. All rights reserved. 10 WebRTCとは(技術⾯) 技術的には2つの側⾯がある。 1.⾳声、映像、データのリアルタイム・コミュニケーションのオープン標準 l 従来のサービス(WebEx、Skype等)は互換性がなく、独⾃技術を含む。 WebRTCは相互接続が保証され、ライセンス使⽤料が不要。 1.ブラウザとネイティブアプリの両⽅で利⽤できる l 例えば、オープンソースのC++のコードを利⽤しコンパイルすれば、ネイティ ブアプリにWebRTC機能を組み込むこともできる。
  • 12. Copyright © NTT Communications Corporation. All rights reserved. WebRTCのクライアント対応状況 11 対応状況 OS アプリ 備考(2015/7/4現在) ✔ Windows Chrome ✔ Windows Firefox テレビ電話機能も搭載 ✔ Windows IE プラグインが必要 ✘ Windows Edge 2014年10⽉に開発着⼿を発表 ORTCが実装される予定 2015年7⽉段階では⼀部機能の み実装(getUserMedia) ✔ Windows ネイティブ 要コンパイル ✔ Mac Chrome ✔ Mac Firefox テレビ電話機能も搭載 ✔ Mac Safari プラグインが必要 ✔ Mac ネイティブ 要コンパイル ✔ Android Chrome ✔ Android Firefox ✔ Android 標準ブラウザ Android 5.0で対応 ✔ Android ネイティブ 要コンパイル ✘ iOS Chrome ✘ iOS Safari ✔ iOS ネイティブ 要コンパイル
  • 13. Copyright © NTT Communications Corporation. All rights reserved. WebRTC技術の全容 12 https://www.flickr.com/photos/noaaphotolib/5041457573
  • 14. Copyright © NTT Communications Corporation. All rights reserved. WebRTC技術の全容 13 まずは、海の上に出ている部分を理解 しましょう。
  • 15. Copyright © NTT Communications Corporation. All rights reserved. WebRTCの技術要素 14 WebRTCには様々な技術が使われています。 これから使⽤されている技術要素を順番に紹介します。 1.ICE 2.シグナリング 3.P2Pによるセキュアなリアルタイム通信 4.⾳声、映像処理
  • 16. Copyright © NTT Communications Corporation. All rights reserved. ICE(Interactive Connectivity Establishment) 1515 NAT NAT STUN サーバ Signaling サーバ STUN サーバ WebRTC Cli WebRTC Cli WebRTCクライアント同⼠がP2Pでネットワークを介してつながるために 必要な仕組みを提供する STUN ・⾃分のグローバルIP、 ポート番号を知る ・UDPホールパンチングという 仕組みでNATに⽳を開ける TURN ・どうしてもNATに⽳を開けら れない場合に、データ通信を 中継する仕組み ・WebRTCコネクション全体の 8〜9%はTURNが必要と ⾔われている(⽇本はもっと多いかも) TURN サーバ
  • 17. Copyright © NTT Communications Corporation. All rights reserved. UDPホールパンチング 16 NAT STUN NAT ※後述するNAT Typeにより挙動が変わります
  • 18. Copyright © NTT Communications Corporation. All rights reserved. UDPホールパンチング 17 俺のグローバル IPとポート番号 教えて 111.111.111.111 50000番やで NAT STUN NAT ※後述するNAT Typeにより挙動が変わります
  • 19. Copyright © NTT Communications Corporation. All rights reserved. UDPホールパンチング 18 俺のグローバル IPとポート番号 教えて 222.222.222.222 20000番やで NAT STUN NAT IP:111.111.111.111 PORT:10000番 ※後述するNAT Typeにより挙動が変わります
  • 20. Copyright © NTT Communications Corporation. All rights reserved. UDPホールパンチング 19 NAT STUN NAT IP:111.111.111.111 PORT:10000番 IP:222.222.222.222 PORT:20000番 互いのIPとPORTを 何らかの⼿段で交換 (シグナリング) ※後述するNAT Typeにより挙動が変わります
  • 21. Copyright © NTT Communications Corporation. All rights reserved. UDPホールパンチング 20 NAT STUN NAT IP:222.222.222.222 PORT:20000番 IP:111.111.111.111 PORT:10000番 アクセスさせ てー! だめー。 ⽳開いた! ※後述するNAT Typeにより挙動が変わります
  • 22. Copyright © NTT Communications Corporation. All rights reserved. UDPホールパンチング 21 NAT STUN NAT IP:222.222.222.222 PORT:20000番 IP:111.111.111.111 PORT:10000番 通れる!! アクセスさせてー。 ⽳開いた! ※後述するNAT Typeにより挙動が変わります
  • 23. Copyright © NTT Communications Corporation. All rights reserved. UDPホールパンチング 22 NAT STUN NAT IP:222.222.222.222 PORT:20000番 IP:111.111.111.111 PORT:10000番 もしかして! 通れる! ※後述するNAT Typeにより挙動が変わります
  • 24. Copyright © NTT Communications Corporation. All rights reserved. TURNの使いどころ 23 どうしてもNATに⽳があかない場合はTURNを利⽤する 互いのNAT Type フルコーン 制限付きフ ルコーン ポート制限 付きフル コーン シンメト リック フルコーン STUN STUN STUN STUN 制限付きフ ルコーン STUN STUN STUN STUN ポート制限 付きフル コーン STUN STUN STUN TURN シンメト リック STUN STUN TURN TURN ※NAT Typeは厳密に細分化すると9パターンあります。 よ り セ キ ュ ア よりセキュア ※もっと詳しく知りたい⽅はこちら。 http://www.slideshare.net/iwashi86/webrtcnat-a-talk-on-nat-behind-webrtc
  • 25. Copyright © NTT Communications Corporation. All rights reserved. TURNリレー 24 シンメトリック NAT TURN シンメトリック NAT IP:222.222.222.222 PORT:20000番 IP:111.111.111.111 PORT:10000番 TURNサーバを中継する (中継するだけなので通信の中⾝はわからない) クライアントはP2Pのつもり IP:11.11.11.11 PORT:3478 IP:11.11.11.11 PORT:3478
  • 26. Copyright © NTT Communications Corporation. All rights reserved. TURNリレー 25 シンメトリック NAT TURN シンメトリック NAT IP:222.222.222.222 PORT:20000番 IP:111.111.111.111 PORT:10000番 TURNサーバを中継する (中継するだけなので通信の中⾝はわからない) IP:11.11.11.11 PORT:443 IP:11.11.11.11 PORT:443 TCPで通信可能TCPで通信可能 FW FW TCP443か、怪しくないな!
  • 27. Copyright © NTT Communications Corporation. All rights reserved. TURNを使っても通らない場合がある 26 シンメトリック NAT TURN シンメトリック NAT IP:222.222.222.222 PORT:20000番 IP:111.111.111.111 PORT:10000番 IP:11.11.11.11 PORT:443 IP:11.11.11.11 PORT:443 Proxy Proxy おいおい、中⾝が怪しいぞ! 例えば、マイン・ザ・ミドル可能なProxyが存在する おいおい、中⾝が怪しいぞ!
  • 28. Copyright © NTT Communications Corporation. All rights reserved. WebRTCの技術要素 27 WebRTCには様々な技術が使われています。 これから使⽤されている技術要素を順番に紹介します。 1.ICE 2.シグナリング 3.P2Pによるセキュアなリアルタイム通信 4.⾳声、映像処理
  • 29. Copyright © NTT Communications Corporation. All rights reserved. シグナリング 28 NAT NAT STUN サーバ Signaling サーバ STUN サーバ WebRTC Cli WebRTC Cli ICEの仕組み等を利⽤して取得した情報を、互いに交換する仕組み ・どのような仕組みを⽤いても良い ・WebSocket(主流) ・XHRロングポーリング ・情報はSDPを⽤いて情報交換する ・テキストベースのプロトコル ・IPアドレス、ポート番号、 映像、⾳声コーデック情報 などを記載して交換する ・めちゃくちゃ難解
  • 30. Copyright © NTT Communications Corporation. All rights reserved. WebRTCの技術要素 29 WebRTCには様々な技術が使われています。 これから使⽤されている技術要素を順番に紹介します。 1.ICE 2.シグナリング 3.P2Pによるセキュアなリアルタイム通信 4.⾳声、映像処理
  • 31. Copyright © NTT Communications Corporation. All rights reserved. P2Pによるセキュアなリアルタイム通信 3030 すべての準備が整うとP2Pによる、セ キュアな通信を開始 ・映像・⾳声 ・セキュアなリアルタイム通信(SRTP) ・AES(共通鍵暗号化) ・鍵交換にDTLSを⽤いる(DTLS-SRTP) ・データ ・TCP同様の信頼性、到達順序性、 フロー制御、輻輳制御をUDP上で実現 ・セキュアなDTLS上で動作する ・DTLS ・通信経路暗号化 ・データ整合性の保証 ・認証⾏為は⾏わない(オレオレ証明書) NAT NAT STUN サーバ Signaling サーバ STUN サーバ WebRTC Cli WebRTC Cli IP UDP SCTPSRTP DTLS ⾳声・映像 データ
  • 32. Copyright © NTT Communications Corporation. All rights reserved. P2Pだけじゃない・・多対多の通信 WebRTCはP2Pの通信が前提だが、ユースケースとしては多対多も 求められている。 31 フルメッシュでやる⽅法もあるが、端末への負荷がかかる チューニングしても同時8つぐらいが限界
  • 33. Copyright © NTT Communications Corporation. All rights reserved. P2Pだけじゃない・・多対多の通信 MCU(Multipoint Control Unit)を利⽤する。 メディアを集約、ミキシングし各デバイスに流す。 クライアント側の負荷が⼩さい。 サーバ側の負荷はエンコード、デコード処理が⼊るため負荷が⾼い。 32 MCU
  • 34. Copyright © NTT Communications Corporation. All rights reserved. P2Pだけじゃない・・多対多の通信 SFU(Selective Forwarding Unit)を利⽤する。 クライアントからのストリームをコピーしてエンドポイントに転送する。 サーバ側の負荷は⼩さい。 33 SFU
  • 35. Copyright © NTT Communications Corporation. All rights reserved. WebRTCの技術要素 34 WebRTCには様々な技術が使われています。 これから使⽤されている技術要素を順番に紹介します。 1.ICE 2.シグナリング 3.P2Pによるセキュアなリアルタイム通信 4.⾳声、映像処理
  • 36. Copyright © NTT Communications Corporation. All rights reserved. ⾳声・動画処理 35 WebRTCクライアントはPCやデバイスの⾳声映像ストリームにアクセスでき る(以下、Webブラウザの場合) ・getUserMedia(WebAPI) プラットフォーム上の ⾳声、映像ストリームを取得できる W3Cによって規定されたAPI ・ブラウザに実装された エンジンによって、 エンコード、デコード処理がなされる ・コーデック ・Video:VP8、H.264 ・Audio:Opus、G.711 PCMA & PCMU デバイスハードウェア ⾳声処理エンジン コーデック ジッタ/パケロス補正 エコー除去 ノイズリダクション 映像処理エンジン コーデック ジッタ/パケロス補正 ⾳声・動画同期 画像補正 ⾳声キャプチャ 動画キャプチャ 内部WebRTC API WebAPI(W3C) 引⽤元:オライリー・ジャパン 「ハイパフォーマンスブラウザネットワーキング」 P.301
  • 37. Copyright © NTT Communications Corporation. All rights reserved. ハンズオン 36 WebRTCのシグナリングを体感する https://github.com/yusuke84/webrtc_handson/STEP1 WebRTCで簡単なビデオチャットアプリを 開発する https://github.com/yusuke84/webrtc_handson/STEP2
  • 38. Copyright © NTT Communications Corporation. All rights reserved. 座学 37 SkyWayについて知る
  • 39. Copyright © NTT Communications Corporation. All rights reserved. 38 WebRTCはWeb開発者にとってちょっと難しい 38 ブラウザ間で直接通信する前に、サーバ経由で「シグナリング」を ⾏う必要があり、実装にはネットワークの知識が必要。 38ようやく直接通信できる これらの通信が 完了してから…
  • 40. Copyright © NTT Communications Corporation. All rights reserved. そこで登場、SkyWay! 39 n WebRTC利⽤アプリを簡単に開発できるクラウド基盤 2013年12⽉5⽇に提供開始 無料! 提供内容 シグナリングAPI STUN/TURN API JavaScriptライブラリ(PeerJS互換) iOS/Androidライブラリ サンプルアプリ 各種ライブラリ ⽇本語ドキュメント https://skyway.io
  • 41. Copyright © NTT Communications Corporation. All rights reserved. 40 SkyWayの特徴 SkyWayのシグナリングAPIとライブラリが複雑な処理を担うので 、開発者は簡単にWebRTC利⽤アプリを開発できる。 STUN API Signaling API STUN API ライブラリ ライブラリ APIとライブ ラリが複雑な 処理を担う TURN API
  • 42. Copyright © NTT Communications Corporation. All rights reserved. 41 開発者登録を⾏う まずはアクセス → https://skyway.io ここをクリック
  • 43. Copyright © NTT Communications Corporation. All rights reserved. 42 APIキーの申請にはドメインが必要 n APIキーの申請に必要なもの n お名前 n 連絡先メールアドレス n SkyWayを利⽤するドメイン n SkyWayを利⽤するドメイン APIキーの不正利⽤を防ぐ⽬的のドメ イン認証 n 例えば・・・ n ローカルで動かしたい n 127.0.0.1 n localhost n 開発サーバで動かしたい n dev.domain.jp n 本番サーバで動かしたい n www.domain.jp n iOSとAndroidは独⾃に設定
  • 44. Copyright © NTT Communications Corporation. All rights reserved. 43 開発に必要な情報を提供 ⽇本語ドキュメントを公開中 http://nttcom.github.io/skyway/docs/
  • 45. Copyright © NTT Communications Corporation. All rights reserved. 44 開発に必要な情報を提供 開発者向けフォーラムを⽤意 SkyWay Technical Forum • だれでも参加可能! • 中の⼈が懇切丁寧に開発者の疑問質問にお答え! • WebRTCに関す⽇本語での情報交換に活⽤してください http://goo.gl/enBkcF
  • 46. Copyright © NTT Communications Corporation. All rights reserved. 45 様々な機能を活⽤する
  • 47. Copyright © NTT Communications Corporation. All rights reserved. ハンズオン 46 SkyWayを使ってビデオチャットを作る https://github.com/yusuke84/webrtc_handson/STEP3
  • 48. Copyright © NTT Communications Corporation. All rights reserved. 座学 47 WebRTCをビジネスで活⽤するために知っ ておくこと
  • 49. Copyright © NTT Communications Corporation. All rights reserved. 現状対応ブラウザでも細かな実装が異なる部分があります。 JavaScriptレベルの違い、スタックレベルでの違いなど、その差分 は様々です。 商⽤サービスを開発し運⽤していくうえで、⽇々変わるブラウザの 実装について、可能な限り追いかけて⾏くことが必要とされます。 ブラウザ毎の実装差分を理解せよ 48
  • 50. Copyright © NTT Communications Corporation. All rights reserved. iOSの場合はネイティブクライアントの導⼊が必須となります。モ バイルクライアントを利⽤するのであれば、ネイティブアプリ開発 の知識が必要になります。 ネイティブクライアント開発も避けては通れない 49
  • 51. Copyright © NTT Communications Corporation. All rights reserved. ICEというNATを越える仕組みが⽤意されていますが、現実のネッ トワークはそんなに⽢いモノではありません。 Wiresharkでの通信パケット解析の技術は合ったほうがいいです。 また、シグナリングで交換されるICE Candidate、SDPの中⾝につ いては読めるようになっている⽅が良いでしょう。 「よくわからないけどつながらない」に備えよ 50
  • 52. Copyright © NTT Communications Corporation. All rights reserved. WebRTCを構成する技術で、JavaScriptAPI以外はほぼすべて、 IETFの中で議論がなされています。 ICEの話に始まり、リアルタイム通信プロトコルである RTP/SRTP/RTCPやDTLS、SCTP、各種コーデックなどなど・・・ ・実に幅広い技術が利⽤されています。 ガチでやるなら、避けては通れません。 IETFとも仲良くしよう 51
  • 53. Copyright © NTT Communications Corporation. All rights reserved. W3Cでは現在WebRTC1.0の仕様策定が進められていますが、 ORTCという兄弟仕様が既に登場しています。これは、Extensible Webの流れに乗るものです。 WebRTC1.0は限定的なユースケースを元にAPI仕様が策定されて きましたが、ORTCでは、ローレイヤーなAPIも仕様として定義さ れています。ORTCの登場によって、WebRTCのユースケースは更 に広がりを⾒せてきます。また、Edgeは現在ORTCを実装中です。 WebRTC1.0制定後は、WebRTC1.0はORTCは今後融合し、 WebRTC NV(Next Version)へ移⾏する予定です。 標準化の動向をきちんとウォッチすることが重要です。 W3Cでの標準化は今まさに激動中 52
  • 54. Copyright © NTT Communications Corporation. All rights reserved. • ⽇本のWebRTC開発者が集まるSlack http://webrtc-jp-slackin.herokuapp.com/ • WebRTCの⽇本語による最新情報 https://twitter.com/hashtag/webrtcjp • SkyWayの開発者フォーラム https://groups.google.com/forum/#!forum/skywayjs • 最新情報はここで⼿に⼊れろ(英語だけど) https://groups.google.com/forum/#!forum/discuss-webrtc https://webrtchacks.com/ とりあえず、⼀⼈で開発するのは無理 53
  • 55. Copyright © NTT Communications Corporation. All rights reserved. 54 ご清聴ありがとうございました!