SlideShare a Scribd company logo
1 of 37
Download to read offline
WebRTC
〜Real Time Communication〜
自己紹介
山中夏樹
・トライフォート所属
・自社製アプリ・スタートークを初期から開発
・会社で使ってる言語はNode.js,Android Java,Objective-C,PHP
・一応サーバー周りからフロントエンド・ネイティブまで扱える
・自社のネイティブ勉強会幹事やってます(これも発表時の資料)
今回のテーマ
・スタートークというトークアプリ(Android・iPhone)にて実装した
通話機能において使われている技術WebRTCについて
1. WebRTCとは
2. デモ
3. スタートークでWebRTCを使った経緯
4. WebRTCの技術的仕組み
5. ネイティブアプリにおけるWebRTC
6. WebRTCで複数人ビデオチャット
アジェンダ
WebRTCって何?
WebRTCとは
・ブラウザ間で特定のプラグイン無しにボイスチャット、ビデオチャット、ファイル共有
等ができる。
・JavaScriptを200行くらい書いたらSkypeもどきが作れる
・W3Cにより標準化が進められ、開発はGoogle主導で今も頻繁に更新されて いる
・各ブラウザ対応状況 http://caniuse.com/#feat=stream
 Chrome・Firefox・Opera・Android Chrome・Lolipop以降のAndroidブラウザが対応
 iOS・IE・Safariは未対応
まぁ、見た方が早いので
デモ
http://192.168.0.3:8080/webrtc_example.html
使用するもの:Chrome、node.js+socket.io
       300行以内のHtml
コードはgithubに上げました
https://github.com/natsuki-yamanaka/webrtc-socketio-sample
ほぼがねこさんのコードそのままです。めっちゃ詳しい説明書いてあるので興味ある方は下記参照
http://html5experts.jp/mganeko/5349/
WebRTCすげえ!
…って思ってもらいたい
WebRTCを選んだ
理由
WebRTCを選んだ理由
■比較検討した他の手段
・VoIP + SIP
 SkypeやLINEはこのプロトコルを使っているという実績あり
 音声通話、コーデックの詳細設定ができ、安定性が高そうだった
 
 見つかったライブラリ
 ○ Android - https://code.google.com/p/sipdroid/
 ○ iOS - https://code.google.com/p/siphon/
 ○ サーバー - Asterisk
WebRTCを選んだ理由
■比較検討した他の手段
・VoIP + SIP
 問題点:
 ○アプリ未起動時でもバックグラウンドでサーバとのコネクションを保持する為負荷大
 ○NAT越えを自前で実装する必要あり
 ○ライブラリが一部GPL
 ○ビデオチャットなどの実装はあまり sampleない
WebRTCを選んだ理由
・WebRTC
 ブラウザでボイスチャット、ビデオチャット、ファイル共有などが簡単にできる
 ○Android - https://github.com/noiges/webrtc-android-demo ←これそのままだと問題があった
 ○iOS - https://github.com/gandg/webrtc-ios
 ○ICEサーバー - https://code.google.com/p/rfc5766-turn-server/
WebRTCを選んだ理由
2、元がJavaScriptなので、PCへの移行がしやすい
3、NAT越えが簡単
4、トライフォートは常に新しい技術を追い求めていく会社だと
思ったから
1、Android・iOSでも動く
・WebRTC
WebRTCの仕組み
ここからネットワークよりの
話です
元々はブラウザの技術で、できることは
● P2P通信の確立
● ICE(Interactive Connectivity Establishment)でNAT越え
● メディアストリームの取得 (音声・動画等のデータ )
● DataChannel APIを用いてファイルなどをやりとり
  など。
WebRTCの仕組み
概要
※P2P通信 サーバーを介さないクライアント同士の接続
※NAT ルータやモデムなどの、 Internetとクライアントの間に挟まるネットワークの総称
・RTCPeerConnection P2P通信
・RTCSessionDescription P2P通信
・RTCIceCandidate ICEでNAT越え
・getUserMedia メディアストリームの取得
WebRTCの仕組み
JavaScript API
WebRTCの仕組み
P2P通信
・HTTPやWebSocketなどのプロトコルと違い、サーバーを介さずにクライアント同士での接続を 行う。
・WebRTCの場合、HTTPなどに使われるTCPよりもオーバーヘッドの少ない UDPプロトコルを使 用して
通信を行える為、やりとりが高速
・P2P通信を行う為の情報を SDP(Session Description Protocol)というフォーマットでやりとりす る。 SDP
には自分のIP、ポート、メディアの種類、コーデックなどが含まれている。
※new RTCPeerConnectionでPeer接続生成
※new RTCSessionDescriptionでSDP生成
ローカルネットワーク
・P2P通信に必要なデータはシグナリングでやりとりする。 (スタートークの場合は Socket.IOを使う)
・先に送る方がOffer、後に来た方がAnswerとしてSDPを送信する
WebRTCの仕組み
P2P通信
192.168.0.3:1337
※SDP:P2P通信に必要なデータ
192.168.0.1:1337
先手 後手
createOffer
sendOffer
SDP
setOffer
createAnswer
SDP
setAnswer
sendAnswer
接続確立(NATがなければ)
Bさん家Aさん家
・NAT越えの技術を総称してICEと言う。
・ICEにはSTUN・TURNなどのプロトコルがある
・どんなNATでも越えられる技術はない
・Internetを介してP2P通信を行う際には通常お互いのIPとポートを知る必要があります。しかし
間にNATがあると自分のIPを伝えてもP2P通信で接続できない。
WebRTCの仕組み
NAT越え
192.168.0.1:1337
NAT
192.168.0.3:1337
NAT
192.168.0.3:1337
Bさん家Aさん家
192.168.0.1:1337
・NAT越しに繋がる為には、一度 NAT外部にアクセスして自分の IP、ポートを取得し、その IPに接続する
・接続先は複数取得される (eth0・eth1とか有線・無線とか)
・接続先候補をCandidate(候補)と呼び、OfferとAnswerと共に送り合う
WebRTCの仕組み
NAT越え
NAT
192.168.0.3:1337
NAT
STUNサーバ
50.76.44.114:2312360.76.44.114:43123
60.76.44.114:43123
50.76.44.114:23123
・getUserMedia API
WebRTCの仕組み
メディアストリームの取得
● PCに付属しているカメラやマイクな
どのデバイス入力を取得して、
<video>タグや<audio>タグで流すこ
とができる
● 別にP2PしなくてもWebRTC
● コードも簡単→
WebRTCの仕組み
DataChannel API
● WebSocketと大体同じことができる
● 自分はあまり使ってないので省略
● 興味ある方は
  http://www.html5rocks.com/ja/tutorials/webrtc/datachannels/
  らへんを参照
ネイティブアプリにおけ
るWebRTC
・公式webrtcサイトにAndroid・iOS用ソースが存在
http://www.webrtc.org/native-code/development
・↑ビルド手順が複雑
・Chromiumプロジェクトに依存してるのでソース落とすのに半日くらいかかる
・容量20GB、メモリ2GBは必須
・ninja、gclient、gyp等の謎のビルドツールを使ってる …誰か解析して欲しい
・今も頻繁に更新されていて、最新のソースはビルドできないことも
・できれば使いたくない!
ネイティブアプリにおけるWebRTC
ライブラリ
そこで!
さきほど紹介したものを使ってみた
 ○Android - https://github.com/noiges/webrtc-android-demo ←これそのままだと問題があった
 ○iOS - https://github.com/gandg/webrtc-ios
 ○Unity - Asset Storeになかった…C++ソースで自作するしかない
中身はさっきの公式をビルドして .soと.jar(Android)、.a(iOS)を使ったデモApp
https://apprtc.appspot.com/に接続してブラウザともビデオチャットができる
ネイティブアプリにおけるWebRTC
お手軽ライブラリ
 ○Android - https://github.com/noiges/webrtc-android-demo
メインの処理:AppRTCClient.java,AppRTCDemoActivity.java
2ファイル計1117行
 ○iOS - https://github.com/gandg/webrtc-ios
メインの処理:APPRTCAppClient.m、APPRTCAppDelegate.m、APPRTCViewController.m
3ファイル計1245行
ネイティブアプリにおけるWebRTC
お手軽ライブラリ
Htmlのソースだと300行以内で書けることが冗長に書いてある
 ○Android - https://github.com/noiges/webrtc-android-demo
・AppRTCGLView  ≒ <video>
・PeerConnectionFactory + PeerConnection ≒ RTCPeerConnection
・RTCSessionDescription ≒ RTCSessionDescription
・MediaStream ≒ getUserMedia
 ○iOS - https://github.com/gandg/webrtc-ios
・RTCVideoRenderer ≒ <video>
・RTCPeerConnectionFactory+RTCPeerConnection≒ RTCPeerConnection
・RTCSessionDescription ≒ RTCSessionDescription
・RTCVideoCapturer ≒ getUserMedia
ネイティブアプリにおけるWebRTC
お手軽ライブラリ Class対応表
おまけ
・LGL22では動いたが、他の端末が動かなかった  (←これすごい最近気づいた )
・端末の音声サンプリングレートが対応していないというカタストロフィ (44100Hzを使ってた)
・結局https://github.com/pristineio/webrtc-build-scriptsを参考に、公式サイトのソースをビルド
・ →…それでもサンプリングレートでエラー
・C++のソースのDefault Sampling Rateとか修正(16000Hz)
・ →動いた!(2014/12初め)
   →スタートークリリースへ
ネイティブアプリにおけるWebRTC
問題点:Android
※サンプリングレート
 1秒に何回音声を取得するか。数値が大きいほど音がきれいに聞こえる
・まだ全端末で動くわけではない
・OS3.0以上(API Level11のものが含まれてるので )
・4系でも音声周りのエラーでまだ 7割程度しか動作を確認できず
ネイティブアプリにおけるWebRTC
問題点:Android
・現状通話は安定してできている
・ビデオチャットを入れると、キャプチャの取得に 4,5秒時間がかかった
・http://qiita.com/ykst/items/412496713e1e887bcfca
 ↑ここら辺を見るとまだパフォーマンスは上げられそう
・公式のソース最新の安定板を入れるべき
ネイティブアプリにおけるWebRTC
問題点:iPhone
複数人のビデオチャッ
ト
・技術的には可能
・帯域限界やCPUの処理が足りなかったりで、PCでも10人くらいがいいとこ
・スマホだったら…3人くらいじゃね?
複数人のビデオチャット
スペックの限界
1. 中継サーバーを置くことでP2Pを一本化(MCUとか)
 → 負荷がでかいのでなるべくやりたくない
 → PCなら同時20人ほどにはなるらしい
複数人のビデオチャット
解決策
MCUサーバ
WebRTCでビデオチャット
MCUがそれぞれからくる
メディアデータを合成して配
信
2. クライアントの音質や画質を極力落としてデータを少なくする
 → 粗さの限界がある
3. n対nではなく1対nの音声配信なら5人くらいはいけるかも
 → PCなら動画を同時10人はいける
複数人のビデオチャット
解決策
以上
ありがとうございました

More Related Content

What's hot

なぜなにリアルタイムレンダリング
なぜなにリアルタイムレンダリングなぜなにリアルタイムレンダリング
なぜなにリアルタイムレンダリングSatoshi Kodaira
 
MediaRecorder と WebM で、オレオレ Live Streaming
MediaRecorder と WebM で、オレオレ Live StreamingMediaRecorder と WebM で、オレオレ Live Streaming
MediaRecorder と WebM で、オレオレ Live Streamingmganeko
 
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
 Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術までAkihiro Suda
 
Unityでパフォーマンスの良いUIを作る為のTips
Unityでパフォーマンスの良いUIを作る為のTipsUnityでパフォーマンスの良いUIを作る為のTips
Unityでパフォーマンスの良いUIを作る為のTipsUnity Technologies Japan K.K.
 
点群を使いこなせ! 可視化なんて当たり前、xRと点群を組み合わせたUnityの世界 【Interact , Stipple】
点群を使いこなせ! 可視化なんて当たり前、xRと点群を組み合わせたUnityの世界 【Interact , Stipple】点群を使いこなせ! 可視化なんて当たり前、xRと点群を組み合わせたUnityの世界 【Interact , Stipple】
点群を使いこなせ! 可視化なんて当たり前、xRと点群を組み合わせたUnityの世界 【Interact , Stipple】Unity Technologies Japan K.K.
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学MITSUNARI Shigeo
 
MagicOnion~C#でゲームサーバを開発しよう~
MagicOnion~C#でゲームサーバを開発しよう~MagicOnion~C#でゲームサーバを開発しよう~
MagicOnion~C#でゲームサーバを開発しよう~torisoup
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けモノビット エンジン
 
WebRTC SFU mediasoup sample
WebRTC SFU mediasoup sampleWebRTC SFU mediasoup sample
WebRTC SFU mediasoup samplemganeko
 
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~UnityTechnologiesJapan002
 
【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説
【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説
【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説Unity Technologies Japan K.K.
 
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しようUnity Technologies Japan K.K.
 
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しようUnityTechnologiesJapan002
 
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例Naoya Kishimoto
 

What's hot (20)

なぜなにリアルタイムレンダリング
なぜなにリアルタイムレンダリングなぜなにリアルタイムレンダリング
なぜなにリアルタイムレンダリング
 
MediaRecorder と WebM で、オレオレ Live Streaming
MediaRecorder と WebM で、オレオレ Live StreamingMediaRecorder と WebM で、オレオレ Live Streaming
MediaRecorder と WebM で、オレオレ Live Streaming
 
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
 Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
 
Unityでパフォーマンスの良いUIを作る為のTips
Unityでパフォーマンスの良いUIを作る為のTipsUnityでパフォーマンスの良いUIを作る為のTips
Unityでパフォーマンスの良いUIを作る為のTips
 
点群を使いこなせ! 可視化なんて当たり前、xRと点群を組み合わせたUnityの世界 【Interact , Stipple】
点群を使いこなせ! 可視化なんて当たり前、xRと点群を組み合わせたUnityの世界 【Interact , Stipple】点群を使いこなせ! 可視化なんて当たり前、xRと点群を組み合わせたUnityの世界 【Interact , Stipple】
点群を使いこなせ! 可視化なんて当たり前、xRと点群を組み合わせたUnityの世界 【Interact , Stipple】
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学
 
MagicOnion~C#でゲームサーバを開発しよう~
MagicOnion~C#でゲームサーバを開発しよう~MagicOnion~C#でゲームサーバを開発しよう~
MagicOnion~C#でゲームサーバを開発しよう~
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
 
WebRTC SFU mediasoup sample
WebRTC SFU mediasoup sampleWebRTC SFU mediasoup sample
WebRTC SFU mediasoup sample
 
Photonのサービス選択の勘どころ
Photonのサービス選択の勘どころPhotonのサービス選択の勘どころ
Photonのサービス選択の勘どころ
 
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
 
Riderはいいぞ!
Riderはいいぞ!Riderはいいぞ!
Riderはいいぞ!
 
【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説
【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説
【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説
 
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
 
【Unity】Scriptable object 入門と活用例
【Unity】Scriptable object 入門と活用例【Unity】Scriptable object 入門と活用例
【Unity】Scriptable object 入門と活用例
 
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
 
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
 
5分でわかる Sensor SDK
5分でわかる Sensor SDK5分でわかる Sensor SDK
5分でわかる Sensor SDK
 
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
 
WebSocket / WebRTCの技術紹介
WebSocket / WebRTCの技術紹介WebSocket / WebRTCの技術紹介
WebSocket / WebRTCの技術紹介
 

Similar to スマホ(Android・iPhone)でWebRTC

.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指してAkira Inoue
 
.NET Coreとツール類の今
.NET Coreとツール類の今.NET Coreとツール類の今
.NET Coreとツール類の今Yuki Igarashi
 
スマートフォンアプリケーション開発の最新動向
スマートフォンアプリケーション開発の最新動向スマートフォンアプリケーション開発の最新動向
スマートフォンアプリケーション開発の最新動向Tsutomu Ogasawara
 
内蔵化、モバイル化に向かうDepthセンサー
内蔵化、モバイル化に向かうDepthセンサー内蔵化、モバイル化に向かうDepthセンサー
内蔵化、モバイル化に向かうDepthセンサーKaoru NAKAMURA
 
レポート
レポートレポート
レポートxin song
 
レポート
レポートレポート
レポートxin song
 
実践 Web App for Containers! ~コンテナ開発の基礎からDevOps環境の構築まで~
実践 Web App for Containers! ~コンテナ開発の基礎からDevOps環境の構築まで~実践 Web App for Containers! ~コンテナ開発の基礎からDevOps環境の構築まで~
実践 Web App for Containers! ~コンテナ開発の基礎からDevOps環境の構築まで~Saki Homma
 
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線Akira Inoue
 
Phone gap+javascriptスマホアプリ開発(入門編)
Phone gap+javascriptスマホアプリ開発(入門編)Phone gap+javascriptスマホアプリ開発(入門編)
Phone gap+javascriptスマホアプリ開発(入門編)Monaca
 
【16-D-4】3分ではじめるスマホアプリのビジュアル開発
【16-D-4】3分ではじめるスマホアプリのビジュアル開発【16-D-4】3分ではじめるスマホアプリのビジュアル開発
【16-D-4】3分ではじめるスマホアプリのビジュアル開発hmimura_embarcadero
 
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版DIVE INTO CODE Corp.
 
WebRTCライトニングトークス 〜 WebRTCを色々使ってみた話
WebRTCライトニングトークス 〜 WebRTCを色々使ってみた話WebRTCライトニングトークス 〜 WebRTCを色々使ってみた話
WebRTCライトニングトークス 〜 WebRTCを色々使ってみた話infocom corp.
 
Sharoid Service Menu
Sharoid Service MenuSharoid Service Menu
Sharoid Service Menusharoid
 
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~Saki Homma
 
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-Saki Homma
 
モダンWeb開発ワークショップ
モダンWeb開発ワークショップモダンWeb開発ワークショップ
モダンWeb開発ワークショップStaffnet_Inc
 
これからのNOTESモバイルアプリはこう作れ
これからのNOTESモバイルアプリはこう作れこれからのNOTESモバイルアプリはこう作れ
これからのNOTESモバイルアプリはこう作れMitsuru Katoh
 
Firefox OS - Blaze Your Own Path
Firefox OS - Blaze Your Own PathFirefox OS - Blaze Your Own Path
Firefox OS - Blaze Your Own Pathdynamis
 
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座DIVE INTO CODE Corp.
 
WebRTC on Edge
WebRTC on EdgeWebRTC on Edge
WebRTC on EdgeSaki Homma
 

Similar to スマホ(Android・iPhone)でWebRTC (20)

.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
 
.NET Coreとツール類の今
.NET Coreとツール類の今.NET Coreとツール類の今
.NET Coreとツール類の今
 
スマートフォンアプリケーション開発の最新動向
スマートフォンアプリケーション開発の最新動向スマートフォンアプリケーション開発の最新動向
スマートフォンアプリケーション開発の最新動向
 
内蔵化、モバイル化に向かうDepthセンサー
内蔵化、モバイル化に向かうDepthセンサー内蔵化、モバイル化に向かうDepthセンサー
内蔵化、モバイル化に向かうDepthセンサー
 
レポート
レポートレポート
レポート
 
レポート
レポートレポート
レポート
 
実践 Web App for Containers! ~コンテナ開発の基礎からDevOps環境の構築まで~
実践 Web App for Containers! ~コンテナ開発の基礎からDevOps環境の構築まで~実践 Web App for Containers! ~コンテナ開発の基礎からDevOps環境の構築まで~
実践 Web App for Containers! ~コンテナ開発の基礎からDevOps環境の構築まで~
 
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線
 
Phone gap+javascriptスマホアプリ開発(入門編)
Phone gap+javascriptスマホアプリ開発(入門編)Phone gap+javascriptスマホアプリ開発(入門編)
Phone gap+javascriptスマホアプリ開発(入門編)
 
【16-D-4】3分ではじめるスマホアプリのビジュアル開発
【16-D-4】3分ではじめるスマホアプリのビジュアル開発【16-D-4】3分ではじめるスマホアプリのビジュアル開発
【16-D-4】3分ではじめるスマホアプリのビジュアル開発
 
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版
 
WebRTCライトニングトークス 〜 WebRTCを色々使ってみた話
WebRTCライトニングトークス 〜 WebRTCを色々使ってみた話WebRTCライトニングトークス 〜 WebRTCを色々使ってみた話
WebRTCライトニングトークス 〜 WebRTCを色々使ってみた話
 
Sharoid Service Menu
Sharoid Service MenuSharoid Service Menu
Sharoid Service Menu
 
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
 
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
 
モダンWeb開発ワークショップ
モダンWeb開発ワークショップモダンWeb開発ワークショップ
モダンWeb開発ワークショップ
 
これからのNOTESモバイルアプリはこう作れ
これからのNOTESモバイルアプリはこう作れこれからのNOTESモバイルアプリはこう作れ
これからのNOTESモバイルアプリはこう作れ
 
Firefox OS - Blaze Your Own Path
Firefox OS - Blaze Your Own PathFirefox OS - Blaze Your Own Path
Firefox OS - Blaze Your Own Path
 
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
 
WebRTC on Edge
WebRTC on EdgeWebRTC on Edge
WebRTC on Edge
 

More from Natsuki Yamanaka

【2018/09/11】PAYでのReact Nativeにおける APIクライアント実装 について
【2018/09/11】PAYでのReact Nativeにおける APIクライアント実装 について【2018/09/11】PAYでのReact Nativeにおける APIクライアント実装 について
【2018/09/11】PAYでのReact Nativeにおける APIクライアント実装 についてNatsuki Yamanaka
 
2015 12 03_uiテストツールについて
2015 12 03_uiテストツールについて2015 12 03_uiテストツールについて
2015 12 03_uiテストツールについてNatsuki Yamanaka
 
アプリ申請の基礎 リジェクト周り
アプリ申請の基礎 リジェクト周りアプリ申請の基礎 リジェクト周り
アプリ申請の基礎 リジェクト周りNatsuki Yamanaka
 
多言語対応について 2016 07_25
多言語対応について 2016 07_25多言語対応について 2016 07_25
多言語対応について 2016 07_25Natsuki Yamanaka
 
2015 12 10_ipv6対応について
2015 12 10_ipv6対応について2015 12 10_ipv6対応について
2015 12 10_ipv6対応についてNatsuki Yamanaka
 
2015 11 05_ios9_新仕様まとめ_社内勉強会
2015 11 05_ios9_新仕様まとめ_社内勉強会2015 11 05_ios9_新仕様まとめ_社内勉強会
2015 11 05_ios9_新仕様まとめ_社内勉強会Natsuki Yamanaka
 
社内勉強会にて 音声ファイルフォーマットについて
社内勉強会にて 音声ファイルフォーマットについて社内勉強会にて 音声ファイルフォーマットについて
社内勉強会にて 音声ファイルフォーマットについてNatsuki Yamanaka
 
2015 03 26 社内勉強会_オープンソースソフトウェアライセンスについて
2015 03 26 社内勉強会_オープンソースソフトウェアライセンスについて2015 03 26 社内勉強会_オープンソースソフトウェアライセンスについて
2015 03 26 社内勉強会_オープンソースソフトウェアライセンスについてNatsuki Yamanaka
 

More from Natsuki Yamanaka (11)

【2018/09/11】PAYでのReact Nativeにおける APIクライアント実装 について
【2018/09/11】PAYでのReact Nativeにおける APIクライアント実装 について【2018/09/11】PAYでのReact Nativeにおける APIクライアント実装 について
【2018/09/11】PAYでのReact Nativeにおける APIクライアント実装 について
 
2015 12 03_uiテストツールについて
2015 12 03_uiテストツールについて2015 12 03_uiテストツールについて
2015 12 03_uiテストツールについて
 
アプリ申請の基礎 リジェクト周り
アプリ申請の基礎 リジェクト周りアプリ申請の基礎 リジェクト周り
アプリ申請の基礎 リジェクト周り
 
開発Tips集
開発Tips集開発Tips集
開発Tips集
 
3 d touchについて
3 d touchについて3 d touchについて
3 d touchについて
 
多言語対応について 2016 07_25
多言語対応について 2016 07_25多言語対応について 2016 07_25
多言語対応について 2016 07_25
 
2015 12 10_ipv6対応について
2015 12 10_ipv6対応について2015 12 10_ipv6対応について
2015 12 10_ipv6対応について
 
2015 11 05_ios9_新仕様まとめ_社内勉強会
2015 11 05_ios9_新仕様まとめ_社内勉強会2015 11 05_ios9_新仕様まとめ_社内勉強会
2015 11 05_ios9_新仕様まとめ_社内勉強会
 
社内勉強会にて 音声ファイルフォーマットについて
社内勉強会にて 音声ファイルフォーマットについて社内勉強会にて 音声ファイルフォーマットについて
社内勉強会にて 音声ファイルフォーマットについて
 
2015 03 26 社内勉強会_オープンソースソフトウェアライセンスについて
2015 03 26 社内勉強会_オープンソースソフトウェアライセンスについて2015 03 26 社内勉強会_オープンソースソフトウェアライセンスについて
2015 03 26 社内勉強会_オープンソースソフトウェアライセンスについて
 
Nodeについて
NodeについてNodeについて
Nodeについて
 

Recently uploaded

[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 

Recently uploaded (9)

[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 

スマホ(Android・iPhone)でWebRTC