Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
mganeko
PPTX, PDF
7,429 views
Amazon Kinesis Video Streams WebRTC 使ってみた
WebRTC Meetup Tokyo #23の資料です。Amazon Kinesis Video Streams WebRTC のブラウザ用SDKを使ってみた話、シグナリングチャネルの作り方など
Technology
◦
Read more
4
Save
Share
Embed
Embed presentation
Download
Downloaded 35 times
1
/ 36
2
/ 36
3
/ 36
4
/ 36
5
/ 36
6
/ 36
7
/ 36
8
/ 36
9
/ 36
10
/ 36
11
/ 36
12
/ 36
13
/ 36
Most read
14
/ 36
Most read
15
/ 36
16
/ 36
17
/ 36
18
/ 36
19
/ 36
20
/ 36
21
/ 36
22
/ 36
23
/ 36
24
/ 36
25
/ 36
26
/ 36
27
/ 36
28
/ 36
29
/ 36
30
/ 36
31
/ 36
32
/ 36
33
/ 36
34
/ 36
35
/ 36
Most read
36
/ 36
More Related Content
PDF
WebRTCの技術解説 公開版
by
Contest Ntt-west
PDF
AWSのログ管理ベストプラクティス
by
Akihiro Kuwano
PDF
TLS, HTTP/2演習
by
shigeki_ohtsu
PDF
[AKIBA.AWS] AWS Elemental MediaConvertから学ぶコーデック入門
by
Shuji Kikuchi
PDF
20200930 AWS Black Belt Online Seminar Amazon Kinesis Video Streams
by
Amazon Web Services Japan
PDF
分散トレーシング技術について(Open tracingやjaeger)
by
NTT Communications Technology Development
PDF
CDNの仕組み(JANOG36)
by
J-Stream Inc.
PDF
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
by
Amazon Web Services Japan
WebRTCの技術解説 公開版
by
Contest Ntt-west
AWSのログ管理ベストプラクティス
by
Akihiro Kuwano
TLS, HTTP/2演習
by
shigeki_ohtsu
[AKIBA.AWS] AWS Elemental MediaConvertから学ぶコーデック入門
by
Shuji Kikuchi
20200930 AWS Black Belt Online Seminar Amazon Kinesis Video Streams
by
Amazon Web Services Japan
分散トレーシング技術について(Open tracingやjaeger)
by
NTT Communications Technology Development
CDNの仕組み(JANOG36)
by
J-Stream Inc.
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
by
Amazon Web Services Japan
What's hot
PDF
SFUの話
by
tnoho
PDF
実践 WebRTC 〜最新事例と開発ノウハウの紹介〜
by
Yusuke Naka
PDF
Kubernetes 基盤における非機能試験の deepdive(Kubernetes Novice Tokyo #17 発表資料)
by
NTT DATA Technology & Innovation
PPTX
C#とILとネイティブと
by
信之 岩永
PPTX
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方
by
Hiroshi Tokumaru
PDF
DevOps with Database on AWS
by
Amazon Web Services Japan
PDF
日本語テストメソッドについて
by
kumake
PPTX
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
by
NTT DATA Technology & Innovation
PDF
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
by
NTT DATA Technology & Innovation
PDF
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
by
Yahoo!デベロッパーネットワーク
PDF
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
by
Hibino Hisashi
PDF
アプリ屋もDockerをドカドカ使おう ~ Docker入門
by
Hori Tasuku
PDF
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
by
Amazon Web Services Japan
PPTX
講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー
by
NGINX, Inc.
PPTX
KeycloakでAPI認可に入門する
by
Hitachi, Ltd. OSS Solution Center.
PDF
JCBの Payment as a Service 実現にむけたゼロベースの組織変革とテクニカル・イネーブラー(NTTデータ テクノロジーカンファレンス ...
by
NTT DATA Technology & Innovation
PPTX
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
by
NTT DATA Technology & Innovation
PDF
ソーシャルゲーム案件におけるDB分割のPHP実装
by
infinite_loop
PDF
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
by
NTT DATA Technology & Innovation
PDF
マイクロにしすぎた結果がこれだよ!
by
mosa siru
SFUの話
by
tnoho
実践 WebRTC 〜最新事例と開発ノウハウの紹介〜
by
Yusuke Naka
Kubernetes 基盤における非機能試験の deepdive(Kubernetes Novice Tokyo #17 発表資料)
by
NTT DATA Technology & Innovation
C#とILとネイティブと
by
信之 岩永
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方
by
Hiroshi Tokumaru
DevOps with Database on AWS
by
Amazon Web Services Japan
日本語テストメソッドについて
by
kumake
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
by
NTT DATA Technology & Innovation
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
by
NTT DATA Technology & Innovation
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
by
Yahoo!デベロッパーネットワーク
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
by
Hibino Hisashi
アプリ屋もDockerをドカドカ使おう ~ Docker入門
by
Hori Tasuku
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
by
Amazon Web Services Japan
講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー
by
NGINX, Inc.
KeycloakでAPI認可に入門する
by
Hitachi, Ltd. OSS Solution Center.
JCBの Payment as a Service 実現にむけたゼロベースの組織変革とテクニカル・イネーブラー(NTTデータ テクノロジーカンファレンス ...
by
NTT DATA Technology & Innovation
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
by
NTT DATA Technology & Innovation
ソーシャルゲーム案件におけるDB分割のPHP実装
by
infinite_loop
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
by
NTT DATA Technology & Innovation
マイクロにしすぎた結果がこれだよ!
by
mosa siru
Similar to Amazon Kinesis Video Streams WebRTC 使ってみた
PDF
20201125 EC Solution Seminar Live Commerce
by
Amazon Web Services Japan
PPTX
AWS Black Belt Online Seminar 2018 動画配信 on AWS
by
Amazon Web Services Japan
PDF
20180612 AWS Black Belt Online Seminar AWS で実現するライブ動画配信とリアルタイムチャットのアーキテクチャパターン
by
Amazon Web Services Japan
PDF
20180328 AWS Black Belt Online Seminar Amazon Kinesis Video Streams
by
Amazon Web Services Japan
PPTX
20180123 20分でlive配信aws media services(media live mediapackage)_pub
by
Kameda Harunobu
PDF
動画配信プラットフォームOn AWS
by
Kiyonori Kitasako
PDF
Let's begin WebRTC
by
yoshikawa_t
PDF
クラウドを取り巻くリニア配信技術
by
Masashi Ito
PDF
FMS Live streaming
by
Tetsuya Chiba
PDF
AWS Black Belt Online Seminar AWS re:Invent 2016で発表された新サービス・新機能の紹介 パート3
by
Amazon Web Services Japan
PDF
[要約] Building a Real-Time Bidding Platform on AWS #AWSAdTechJP
by
Eiji Shinohara
PDF
AWS Black Belt Online Seminar 2017 動画配信 on AWS
by
Amazon Web Services Japan
PDF
第3回 JAWS-UG Okayama 10分でつくる!?ライブストリーミングサーバー
by
Takeshi Furusato
PDF
AWS Black Belt Online Seminar 2017 AWS re:Invent 2017速報
by
Amazon Web Services Japan
PDF
AbemaTV が対峙する技術的課題と開発の現場
by
Yusuke Goto
PDF
Serverless Architecture on AWS (20151201版)
by
Keisuke Nishitani
20201125 EC Solution Seminar Live Commerce
by
Amazon Web Services Japan
AWS Black Belt Online Seminar 2018 動画配信 on AWS
by
Amazon Web Services Japan
20180612 AWS Black Belt Online Seminar AWS で実現するライブ動画配信とリアルタイムチャットのアーキテクチャパターン
by
Amazon Web Services Japan
20180328 AWS Black Belt Online Seminar Amazon Kinesis Video Streams
by
Amazon Web Services Japan
20180123 20分でlive配信aws media services(media live mediapackage)_pub
by
Kameda Harunobu
動画配信プラットフォームOn AWS
by
Kiyonori Kitasako
Let's begin WebRTC
by
yoshikawa_t
クラウドを取り巻くリニア配信技術
by
Masashi Ito
FMS Live streaming
by
Tetsuya Chiba
AWS Black Belt Online Seminar AWS re:Invent 2016で発表された新サービス・新機能の紹介 パート3
by
Amazon Web Services Japan
[要約] Building a Real-Time Bidding Platform on AWS #AWSAdTechJP
by
Eiji Shinohara
AWS Black Belt Online Seminar 2017 動画配信 on AWS
by
Amazon Web Services Japan
第3回 JAWS-UG Okayama 10分でつくる!?ライブストリーミングサーバー
by
Takeshi Furusato
AWS Black Belt Online Seminar 2017 AWS re:Invent 2017速報
by
Amazon Web Services Japan
AbemaTV が対峙する技術的課題と開発の現場
by
Yusuke Goto
Serverless Architecture on AWS (20151201版)
by
Keisuke Nishitani
More from mganeko
PDF
Google Meet でもバーチャル背景を使いたい (WebRTC Meetup Online)
by
mganeko
PPTX
Build Node.js-WASM/WASI Tiny compiler with Node.js
by
mganeko
PPTX
Node.jsでつくるNode.js ミニインタープリター&コンパイラー
by
mganeko
PPTX
Node.js x Headless Chrome for WeRTC MCU / Node.js x Chrome headless で、お手軽WebR...
by
mganeko
PPTX
Skywayのビデオチャットを録画しよう。そう、ブラウザでね
by
mganeko
PPTX
WebRTC mediasoup on raspberrypi3
by
mganeko
PPTX
WebRTC SFU Mediasoup Sample update
by
mganeko
PPTX
ブラウザでWebRTC - iOSゲートウェイ作ってみた
by
mganeko
PPTX
WebRTC SFU mediasoup sample
by
mganeko
PDF
Inside of 聖徳玉子 by O2
by
mganeko
PDF
Node.js with WebRTC DataChannel
by
mganeko
PPTX
WebRTC Build MCU on browser
by
mganeko
PPTX
PeerConnectionリレーとMediaRecorder
by
mganeko
PPTX
ここがつらいよWebRTC - WebRTC開発の落とし穴
by
mganeko
PPTX
Webrtc bootcamp handson
by
mganeko
PPTX
WebRTC multitrack / multistream
by
mganeko
PDF
WebRTC UserMedia Catalog: いろんなユーザメディア(MediaStream)を使ってみよう
by
mganeko
PDF
WebRTC multistream
by
mganeko
PPTX
Inside WebM
by
mganeko
PPTX
MediaRecorder と WebM で、オレオレ Live Streaming
by
mganeko
Google Meet でもバーチャル背景を使いたい (WebRTC Meetup Online)
by
mganeko
Build Node.js-WASM/WASI Tiny compiler with Node.js
by
mganeko
Node.jsでつくるNode.js ミニインタープリター&コンパイラー
by
mganeko
Node.js x Headless Chrome for WeRTC MCU / Node.js x Chrome headless で、お手軽WebR...
by
mganeko
Skywayのビデオチャットを録画しよう。そう、ブラウザでね
by
mganeko
WebRTC mediasoup on raspberrypi3
by
mganeko
WebRTC SFU Mediasoup Sample update
by
mganeko
ブラウザでWebRTC - iOSゲートウェイ作ってみた
by
mganeko
WebRTC SFU mediasoup sample
by
mganeko
Inside of 聖徳玉子 by O2
by
mganeko
Node.js with WebRTC DataChannel
by
mganeko
WebRTC Build MCU on browser
by
mganeko
PeerConnectionリレーとMediaRecorder
by
mganeko
ここがつらいよWebRTC - WebRTC開発の落とし穴
by
mganeko
Webrtc bootcamp handson
by
mganeko
WebRTC multitrack / multistream
by
mganeko
WebRTC UserMedia Catalog: いろんなユーザメディア(MediaStream)を使ってみよう
by
mganeko
WebRTC multistream
by
mganeko
Inside WebM
by
mganeko
MediaRecorder と WebM で、オレオレ Live Streaming
by
mganeko
Amazon Kinesis Video Streams WebRTC 使ってみた
1.
Amazon Kinesis Video Streams
WebRTC 使ってみた WebRTC Meetup Tokyo #23 がねこまさし @massie_g
2.
自己紹介 • がねこまさし /
@massie_g • インフォコム(株)の技術調査チームに所属 • WebRTC Meetup Tokyo スタッフ • 今日の元ネタ • Amazon Kinesis Video Streams WebRTC を動かしてみた • Qiita https://qiita.com/massie_g/items/b6d3513d06a28ba89677 2
3.
Amazon Kinesis Video
Stream (KVS)とは • https://aws.amazon.com/jp/kinesis/video-streams/ • 分析、機械学習 (ML)、再生、およびその他の処理のために • 接続されたデバイスから AWS へ動画を簡単かつ安全にストリーミン グできるようになります • Kinesis Video Streams は、数百万ものデバイスからの動画のスト リーミングデータを取り込むために… • ライブやオンデマンド視聴用の動画を再生したり • Amazon Rekognition Video との統合… コンピュータビジョンと動画 分析を活用するアプリケーションを迅速に構築することができます 動画の収集、分析、(配信)
4.
Amazon KVS WebRTCとは •
https://aws.amazon.com/jp/kinesis/video-streams/ • またKinesis Video Streams がサポートするオープンソースプロジェ クトの WebRTC は、 • リアルタイムのメディアストリーミング、ウェブブラウザ間のインタ ラクション、モバイルアプリケーション、シンプルな API によるコネ クテッドデバイスを可能にします • 用途としては、ビデオチャットやピアツーピアのメディアストリーミ ングが一般的です。 →通常のKVSと併用して使う想定
5.
Amazon KVS ユーズケースより KVS
WebRTC
6.
KVS WebRTCがサポートするもの(1) サーバー機能 • シグナリング •
P2P通信を始める前に、必要な情報を交換するステップ • Offer/Answer SDP の交換、ICE candidateの交換 • WebSocket利用 • マネージドSTUN/TURN • P2P通信でNATや越え、制限がある環境で通信を行うための仕組み • (が、自社の社内NWとインターネット側でまだうまく使えてない…) • 参考:WebRTCハンズオン 概要編(Qiita) • https://qiita.com/massie_g/items/916694413353a3293f73 • サーバー側でメディアを受信、保管、変換する機能は無し • → 従来のKVSの機能を使うのが前提
7.
KVS WebRTCがサポートするもの(2) クライアント機能 • クライアント用SDK •
ブラウザ用(JavaScript用) … シグナリング • https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-js • P2P通信そのものは、ブラウザの持つ機能を利用 • 組み込み用(C言語用) … シグナリング+(S)RTP通信 • https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-c • スマートデバイス用(iOS, Android)… シグナリング+?? • https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-ios • https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk- android
8.
KVS WebRTCの通信形態 • シグナリングチャネル(ルーム)ごとのシグナリング •
1つのMasterが参加 • 1つ以上複数のViewerが参加可能(現在、最大10まで) • P2P通信 • メディアの通信 • データの通信(DataChannel) • 片方向、双方向
9.
KVS WebRTCの通信形態: 1対n
10.
JavaScript用SDKのサンプル/Demo • ソースコード • https://github.com/mganeko/kvs_webrtc_example •
デモ: Master ← 複数Viewer • Master側… master_multiviewer.html • Viewer側 … viewer.html
11.
コード例 • SDK読み込み • https://sdk.amazonaws.com/js/aws-sdk-2.595.0.min.js •
https://unpkg.com/amazon-kinesis-video-streams-webrtc/dist/kvs- webrtc.min.js • シグナリングチャネルを準備 • AWS.KinesisVideoインスタンスを生成 • シグナリングチャネル用のエンドポイントを取得 • STUN/TURNサーバー(iceServers)の情報を取得 • KVSWebRTC.SignalingClient インスタンスを生成 • イベントハンドラを指定
12.
コード例:シグナリングチャネルを準備 • AWS.KinesisVideoインスタ ンスを生成 • シグナリングチャネル用のエ ンドポイントを取得 •
STUN/TURNサーバー (iceServers)の情報を取得 • KVSWebRTC.SignalingClient インスタンスを生成 • イベントハンドラを指定 const kinesisVideoClient = new AWS.KinesisVideo({ region, accessKeyId, secretAccessKey, });
13.
コード例:シグナリングチャネルを準備 • AWS.KinesisVideoインスタ ンスを生成 • シグナリングチャネル用の エンドポイントを取得 •
STUN/TURNサーバー (iceServers)の情報を取得 • KVSWebRTC.SignalingClie nt インスタンスを生成 • イベントハンドラを指定 const getSignalingChannelEndpointResponse = await kinesisVideoClient .getSignalingChannelEndpoint({ ChannelARN: channelARN, SingleMasterChannelEndpointConfiguration: { Protocols: ['WSS', 'HTTPS’], Role: KVSWebRTC.Role.MASTER, // or VIEWER }, }).promise(); const endpointsByProtocol = getSignalingChannelEndpointResponse .ResourceEndpointList.reduce( (endpoints, endpoint) => { endpoints[endpoint.Protocol] = endpoint.ResourceEndpoint; return endpoints; }, {});
14.
コード例 • AWS.KinesisVideoインスタ ンスを生成 • シグナリングチャネル用の エンドポイントを取得 •
STUN/TURNサーバー (iceServers)の情報を取得 • KVSWebRTC.SignalingClie nt インスタンスを生成 • イベントハンドラを指定 const kinesisVideoSignalingChannelsClient = new AWS.KinesisVideoSignalingChannels({ region, accessKeyId, secretAccessKey, endpoint: endpointsByProtocol.HTTPS, }); const getIceServerConfigResponse = await kinesisVideoSignalingChannelsClient .getIceServerConfig({ ChannelARN: channelARN, }).promise(); const iceServers = [ {urls: `stun:stun.kinesisvideo.${region} .amazonaws.com:443`} ]; getIceServerConfigResponse.IceServerList .forEach( iceServer => iceServers.push({ urls: iceServer.Uris, username: iceServer.Username, credential: iceServer.Password, }) );
15.
コード例:シグナリングチャネルを準備 • AWS.KinesisVideoインスタン スを生成 • シグナリングチャネル用のエン ドポイントを取得 •
STUN/TURNサーバー (iceServers)の情報を取得 • KVSWebRTC.SignalingClient インスタンスを生成 • イベントハンドラを指定 const signalingClient = new KVSWebRTC.SignalingClient({ channelARN, channelEndpoint: endpointsByProtocol.WSS, clientId, role: KVSWebRTC.Role.MASTER, // or VIEWER region, credentials: { accessKeyId, secretAccessKey, }, });
16.
コード例:シグナリングチャネルを準備 • AWS.KinesisVideoインスタ ンスを生成 • シグナリングチャネル用の エンドポイントを取得 •
STUN/TURNサーバー (iceServers)の情報を取得 • KVSWebRTC.SignalingClie nt インスタンスを生成 • イベントハンドラを指定 signalingClient.on('open', async () => { }); signalingClient.on('sdpAnswer', async answer => { }); // VIEWER用 signalingClient.on('sdpOffer’, async (offer, remoteClientId) => { } ); // MASTER用 signalingClient.on('iceCandidate’, (candidate, remoteClientId) => { peerConnection.addIceCandidate(candidate); } ); signalingClient.on('close', () => { });
17.
コード例:Viewer側 • Offerを送り、Answerを受け取る const offer
= await peerConnection.createOffer({ offerToReceiveAudio: true, offerToReceiveVideo: true, }); await peerConnection.setLocalDescription(offer); signalingClient.sendSdpOffer( peerConnection.localDescription ); // イベントハンドラ signalingClient.on('sdpAnswer’, async answer => { await peerConnection.setRemoteDescription(answer); } );
18.
コード例: Master側 • Offerを受け取り、Answerを返す //
イベントハンドラ signalingClient.on('sdpOffer', async (offer, remoteClientId) => { // … remoteClientId に対応する peerConnectionを準備する … await peerConnection.setRemoteDescription(offer); await peerConnection.setLocalDescription( await peerConnection.createAnswer({ offerToReceiveAudio: true, offerToReceiveVideo: true, }), ); signalingClient.sendSdpAnswer(peerConnection.localDescription, remoteClientId ); });
19.
コード例: ICE Candidate(共通) •
PeerConnectionがICE Candidateを生成したとき • ICE Candidateをシグナリングチャネルで受け取った時 // PeerConnectionがICE Candidateを生成したとき peer.addEventListener('icecandidate', ({ candidate }) => { if (candidate) { signalingClient.sendIceCandidate(candidate, remoteClientId); } else { // No more ICE candidates will be generated } }); // 相手からICE Candidateを受け取った時 signalingClient.on('iceCandidate', (candidate, remoteClientId) => { peer.addIceCandidate(candidate); });
20.
シグナリングの注意点 • Offerは、必ずMasterに届く • ViewerからOfferに送る際に、相手を指定する必要はない •
Answerは、相手(clientId)を指定してViewerに送る • Viewerは複数いる可能性があるので、clientIdで区別する • ICE candidateを送るとき • Viewer Offer の場合は、相手を指定しなくて良い • Offer Viewerの場合には、相手(clientId)を指定 • それ以外のアプリケーションメッセージは送れない • 切断通知には使えない
21.
シグナリングチャネルの作成 • WebRTCのアプリで良くある「ルーム」や「チャネル」に相当 • 同じ「シグナリングチャネル」に参加しているクライアント同士でシ グナリング→P2P通信が可能 •
シグナリングチャネルを作成する4つの方法 • AWSコンソールから作成 • AWSのコマンドラインツール(CLI)から作成 • AWSのSDKからAPIを利用して作成 • REST APIを利用して作成
22.
その前に、IAMの準備 • IAM(Identity and
Access Managemenent)でユーザを作成 • AmazonKinesisVideoStreamsFullAccess の権限を付与 • アクセスに必要な情報を記録しておく • アクセスキー • アクセスシークレットキー
23.
IAMでユーザー作成 (1)
24.
IAMでユーザー作成(2)
25.
IAMでユーザー作成(3)
26.
IAMでユーザー作成(4)
27.
AWSコンソールでシグナリングチャネルの作成
28.
AWSコンソールでシグナリングチャネルの作成
29.
AWSコンソールでシグナリングチャネルの作成
30.
CLIツールでシグナリングチャネルの作成 • CLIツールをインストール • アクセスキー/アクセスシークレットーキーを指定 •
設定ファイル or 環境変数 • macOSで設定ファイルの場合 ~/.aws/credentials [default] aws_access_key_id=xxxxxx aws_secret_access_key=xxxxxxxxx/xxxxxxx • us-west-2リージョンに “channel02”を作る場合 $ aws2 --region us-west-2 kinesisvideo create-signaling-channel --channel-name channel02 --channel-type SINGLE_MASTER { "ChannelARN": "arn:aws:kinesisvideo:us-west-2:xxxxxxxxxx:channel/channel02/xxxxxxxxx” } • ※ARNを記録しておく
31.
SDKでシグナリングチャネルの作成(JS) const kinesisVideoClient =
new AWS.KinesisVideo({ region, accessKeyId, secretAccessKey }); const kinesisvideo = new AWS.KinesisVideo(); const channel = 'channel03’; const params = { ChannelName: channel, ChannelType: 'SINGLE_MASTER’ }; kinesisvideo.createSignalingChannel(params, function (err, data) { if (err) console.log(err, err.stack); // エラー else console.log(data); // 成功、ARNがJSONで返ってくる }); DEMO
32.
REST API でシグナリングチャネルの作成 •
リージョン:us-west-2, チャネル名:chanel04 の場合 $ curl -X POST https://kinesisvideo.us-west-2.amazonaws.com/createSignalingChannel -H "Content-Type: application/json" -d '{"ChannelName": "channel04", "ChannelType": "SINGLE_MASTER"} ' -H "Authorization: AWS AWSAccessKeyId:Signature" ※ここの文字列の生成方法が、 よくわかってません
33.
KVS WebRTCの価格 • こちらのユースケースから •
https://aws.amazon.com/jp/kinesis/video-streams/pricing/ • 料金の例 2: WebRTC と KVSを使用するスマホ用ライブストリーミングア プリケーション • ライブメディアストリーミング用に KVS の WebRTC 機能を使用 • ユーザーが 100 人、それぞれ独自のシグナリングチャネル • 50 件のライブストリーミングセッションを経由 • 1 か月あたり合計 2,000 分間のライブストリーミング、TURN 20% (400分) • アクティブなシグナリングチャネル = 100 x (0.03 USD/月) = 3.0 USD • シグナリングメッセージ = 0.34 USD • TURN (分) = 100 ユーザー x 400 TURN ストリーミング時間 (分) • x (0.12 USD/1,000 TURN ストリーミング時間 (分)) = 4.8 USD • 合計 = 8.14 USD • 転送 1Mbps と仮定 • 40000 TURNストリーミング時間/月 → 300GB/月 • 転送料金 27 USD/月 (299GB分、us-west-2の場合)
34.
KVS WebRTCの価格 • 料金の例
3: ビデオストリームと WebRTC の両方を使用するスマートホームセ キュリティカメラ • ホームセキュリティシステムのプロバイダーには 1,000 人のユーザー • 各ユーザーの家には 1 台のカメラ、動きを検出するとストリーミング • ユーザーはコンパニオンアプリで 1 か月あたりに 100 回カメラに接続 • WebRTC によって、ライブビデオストリームの視聴や双方向のオーディオセッション • セッションの所要時間は 2 分間で、メディアストリームの 40% は TURN • WebRTC: 各カメラはそれぞれ独自のシグナリングチャネル • 合計で 1 か月あたり 1,000 件のアクティブなシグナリングチャネル • 各セッションが配信するシグナリングメッセージは 30 件で • 合計 3,000,000 件になります • カメラはそれぞれ TURN 経由の 80 分間のライブストリーミング、 • 1 か月に 80,000 TURN ストリーミング時間 (分) • 合計 = 46.35 USD • 転送 1Mbps と仮定 • 80000 TURNストリーミング時間/月 → 600GB/月 • 転送料金 54 USD/月 (599GB分、us-west-2の場合)
35.
KVS WebRTCの感想/まとめ • KVS
WebRTCは、KVSの使い方を広げるもの • KVS WebRTC 単独では、魅力が少ないかも • マネージドSTUN/TURNは魅力 • TURNのセッションのパスワード発行もやってくれる • 通信料は安くはない … 300GB/月 → 27USD • Vultr.com のIaaS … 1TB/月→ 5USD • シグナリングの縛りは強い • シグナリングチャネルにつながるまでの時間も数秒かかる • 用途 • 今のところ、ビデオチャットのようなコミュニケーション向けではない印象 • 他のサービスの方が使い勝手が良さそう(個人の感想) • IoTデバイスを使った、動画の収集+リアルタイムモニターのケースがマッチ
36.
THANK YOU! • ご質問があれば
Download