Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
新SkyWayの魅⼒と今後の展望
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Yusuke Naka
April 06, 2023
Technology
880
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
新SkyWayの魅⼒と今後の展望
新SkyWay ローンチイベントでお話した資料です。
https://go.skyway.ntt.com/skyway_event_20230222
Yusuke Naka
April 06, 2023
More Decks by Yusuke Naka
See All by Yusuke Naka
WebRTCの技術概要 / SkyWayの紹介
yusuke84
0
1.1k
WebRTCにおけるオーディオとの付き合い方
yusuke84
2
1.7k
あえてWebエンジニア以外の人に聞いてほしいWebRTCの話
yusuke84
3
11k
小さく始めろ、評価は期待するな、理解ある上司を探せ、プロダクト愛を持て!
yusuke84
0
1.9k
新米コミュニティマネージャーが実践した開発者コミュニティ0to1
yusuke84
1
760
Other Decks in Technology
See All in Technology
AI Made Us Faster at Solving the Wrong Problems
marceloancelmo
0
160
IoTデバイスを繋げるプロトコルMatterをAndroidで使用する方法
harutiro
0
120
2026-10-01_MagicPod_QAハーネスエンジニアリングとQA組織の未来像
ynisqa1988
1
530
[2026 Oracle Technical Deep Dive] Apache Iceberg × Oracle AI Database -Oracle Autonomous AI Lakehouseが実現するAI時代のデータ基盤- (2026年9月17日開催)
oracle4engineer
PRO
0
110
SDDの運用にめげずに向き合った話
sansantech
PRO
0
130
AIは爆速なのに、私が詰まっていた話 ― 音声入力と鳴くマスコットでボトルネックを削る
yama3133
0
520
組み立てて楽しむ AWS Blocks 入門
kmiya84377
0
210
[2026 Oracle Technical Deep Dive] OCI AI Resilience -OCIのセキュリティ対策機能をきちんと使いこなす- (2026年9月17日開催)
oracle4engineer
PRO
0
130
Codex概要
ymiya55
0
400
ファミコンでPHPを動かす / PHP on the Famicom side b
tomzoh
0
140
OpenSharing について熱く語る〜AI アセットの共有について〜
kameitomohiro
0
230
React Nativeでの OTA Updateって、 どう説明する?
ichiki1023
0
150
Featured
See All Featured
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
860
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.6k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
46k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
540
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.4k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.7k
From π to Pie charts
rasagy
1
390
Transcript
SkyWay CONNECT 〜あなたと創る、新しいオンラインコミュニケーション〜 新SkyWayの魅⼒と今後の展望 NTTコミュニケーションズ株式会社 SkyWay推進室 担当課⻑ 兼 プロダクトマネージャー 仲
裕介 ※ 2023.02.22開催イベントの発表資料を公開⽤に⼀部修正しています
SkyWay推進室 担当課⻑ 兼 プロダクトマネージャー 仲 裕介 SkyWayとの関わり 2013.12 ⽴ち上げメンバー4⼈のうちの⼀⼈としてSkyWayを創業 DevOps
/ プリセールス / 開発者マーケティング(DevRel)全てを担う WebRTC Meetup / WebRTC Beginners Tokyo 等の開発者向け勉強会を⽴ち上げ 2017.09 商⽤化を社内で推し進め、正式リリースを達成 正式リリース後は、プリセールス / ポストセールス / DevRelに注⼒ 2020.10 プロダクトマネージャーに就任し、新SkyWay構想の具体化を推進 2022.02 社内向けのα版を経てSkyWay Betaとしてオープンベータ公開 2022.02 SkyWay推進室の⽴ち上げに関する実務を推進 2023.01 新SkyWayをサービスリリース 横浜市在住、最近の趣味は⾃転⾞
ü SkyWayの概要とチャレンジ ü 新SkyWayの特徴 ü 今後の展開(ロードマップ) ü 新しくなっても変わらないこと 今⽇お伝えすること
WebRTCを使ったビデオや音声通話を、簡単に実装できるSDK(WebRTC PaaS) 数十行のプログラムを書くだけで 様々な通話形態のリアルタイムコミュニケーションを Webサイトやアプリケーションに追加し、エンドユーザーに提供できる ※ WebRTC … ビデオ・音声通話の標準技術 ※
SDK … ソフトウェアの部品 ※ PaaS … アプリ開発に必要な機能を提供するサービス ※ 通話形態 … 1対1通話や多人数通話 など SkyWayとは
SkyWayで UXを向上
数字で⾒るSkyWay
SkyWayのチャレンジ
ü 安定性・機能拡張性を考慮したプラットフォームの刷新 ü 多様化するニーズに対応するための後⽅互換性を担保しな いAPIの刷新 SkyWayのチャレンジ
ü 安定性・機能拡張性を考慮したプラットフォームの刷新 ü 多様化するニーズに対応するための後⽅互換性を担保しな いAPIの刷新 SkyWayのチャレンジ
ü 安定性・機能拡張性を考慮したプラットフォームの刷新 ü 多様化するニーズに対応するための後⽅互換性を担保しな いAPIの刷新 SkyWayのチャレンジ
新SkyWayの特徴
ü Pub/SubモデルのAPI ü 同時通話⼈数の拡⼤ ü SFU Botの導⼊ ü サイマルキャストの導⼊ ü
認証・認可機能の充実化 ü 旧SkyWayからの細かな改善点 いいね︕ 新SkyWayの特徴
Pub/SubモデルのAPI Channel (Room) // P2P方式のRoom情報を取得(なければ作成) const room = await SkyWayRoom.FindOrCreate(context,
{ type: 'p2p', name: roomNameInput.value, }); // Roomに参加する const me = await room.join(); myId.textContent = me.id; // 自分の音声と映像をPublish(送信) await me.publish(audio); await me.publish(video); 送信側の実装イメージ // 受信ボタンをクリックしたら subscribeButton.onclick = async () => { // 送信されているメディアをSubscribe(受信) const { stream } = await me.subscribe(publication.id); // メディア再生用のHTMLエレメントを作成(映像の場合) let newMedia = document.createElement('video’); // 受信したメディアにHTMLエレメントを適用 stream.attach(newMedia); // 再生する newMedia.play(); 受信側の実装イメージ ※Roomパッケージを利用した場合のイメージ ※説明上不要な部分は省略 Pub/Subモデルのイメージ
映像や⾳声の柔軟な送受信が可能になるため端末負荷を抑えられる • 例 • スマホで通話に参加している⼈は映像を受信しない • 画⾯上表⽰されていない⼈の映像は受信しない 柔軟なユースケースに対応できる • 例
• オンラインフィットネスなどで、講師の映像は⽣徒全員に送り たいけど、⽣徒の映像は講師にしか送りたくない Pub/Subモデルのメリット
項⽬ システム上限 ⽬安 Channelあたりの最⼤参加可能Member数 320 最⼤同時通話⼈数(映像・⾳声) ※ SFU利⽤時 100 ※1⼈が最⼤99⼈に送信可能
※SFU botも数に含む 映像: 50 ※端末負荷が⾼いため現実ライン 最⼤同時通話⼈数(映像・⾳声・データ) ※ P2P(Mesh)利⽤時 15 映像: 4 ※端末負荷が⾼いため現実ライン ※ 旧SkyWayのSFUを使った最大通話人数は20名程度 Channel(Room) A B C D E F 旧SkyWayと新SkyWayの⼤きな違いは、 Channel(Room)への参加⼈数 =通話⼈数 ではないこと 同時通話⼈数の拡⼤
SFU Botの導⼊ A B C SFU bot SFUで1:多配信 P2Pで会話 ChannelにSFU
botを参加させることで多人数通話を実現 同⼀のChannel内で SFU経由とそれ以外の 通話が共存可能 今後botとしてSFU以 外の機能も提供予定 (録⾳録画 botなど) Publish Subscribe // SFU botを利用するための準備 const plugin = new SfuBotPlugin(); const context = await SkyWayContext.Create(token); context.registerPlugin(plugin); const channel = await SkyWayChannel.FindOrCreate(context, { name: channelNameInput.value, }); // Channelにbotが居なければ参加させる if (channel.bots.length === 0) { await plugin.createBot(channel); } const bot = channel.bots[0] ?? (await plugin.createBot(channel)); const me = await channel.join(); myId.textContent = me.id; { // メディアをPublish const publication = await me.publish(audio); // PublishしたメディアをSFU botに転送させる await bot.startForwarding(publication); } // 受信ボタンをクリックしたら subscribeButton.onclick = async () => { // SFU botが転送しているメディアをSubscribe(受信)する const { stream, subscription } = await me.subscribe(publication.id); SFU Botに送信する際の実装イメージ SFU Botから受信する際の実装イメージ Channel
サイマルキャストの導⼊ SFU bot ChannelにSFU botを参加させることで多人数通話を実現 Publish const publication = await
me.publish(video, { // Publishする際にencodingパラメーターで品質を設定 encodings: [ { maxBitrate: 80_000, id: 'low' }, { maxBitrate: 200_000, id: 'middle' }, { maxBitrate: 400_000, id: 'high' }, ], }); await bot.startForwarding(publication); 送信側の実装イメージ Channel Hight Middle Low 品質の異なる複数の映像を送信 A B 広帯域 狭帯域 Subscribe Subscribe ※解像度、ビットレート、フレームレート(iOS/Androidは今後対応) で品質を設定可能 // 受信する際に品質を指定する場合 const { stream, subscription } = await me.subscribe(publication.id, { preferredEncodingId: 'low' }); // 受信した後に品質を切り替える場合 const { stream, subscription } = await me.subscribe(publication.id, { preferredEncodingId: 'low' }); const switchEncodingSetting = async () => { if (subscription.preferredEncoding === 'low’) // 品質lowの場合、Hightに切り替える subscription.changePreferredEncoding('high'); } else { subscription.changePreferredEncoding('low'); } } 受信側の実装イメージ ※その時の通信環境等を踏まえて最適な品質を選択するため明示的に選択しなくても良い ※制御が効くまでにタイムラグがあるため予め選択してもよい
認証・認可機能の充実化 SkyWay Auth Tokenを使うことで柔軟な認証・認可を実現 02を実現するための認証情報設定例 Aチーム所属 Aチーム 会議室 Bチーム 会議室
視聴のみ 参加者 発⾔可能 参加者 管理者権限 悪意のある 参加者 強制退室 ⼊室の権限管理 01 参加者ごとの権限設定 02 管理者権限による 参加者の操作 03 const token = new SkyWayAuthToken({jti: uuidV4(), iat: nowInSec(), exp: nowInSec() + 60 * 60 * 24, scope: { app: { id: appId, actions: ["read"], channels: [ { name: 'roomA', action: ["create", "delete"], members: [ { // スピーカーAはRoomAでメディアの送受信が可能 name: 'speakerA', actions: ["create", "delete"], publication: { action: ["create", "delete"] }, subscription: { action: ["create", "delete"] } }, { // スピーカーA以外のRoomA参加者はメディアの受信のみが可能 name: '*', actions: ["create", "delete"], publication: { action: [] }, subscription: { action: ["create", "delete"] } } ], ※スペースの関係で以下省略
コーデックの選択肢拡⼤ • SFUで利⽤できるサポートコーデックにH264を追加※1 • VP9, AV1, Opus/RED(パケロス耐性向上)を指定可能※2 • ⾮発話区間の帯域削減が可能なOpus DTXを利⽤可能※1
※1: JavaScript SDKのみ ※2: P2P通話のみ (JavaScript SDKはSFUでVP9を利⽤できる) iOS SDK / Android SDKの機能を充実 • 映像ファイルや任意の映像ソースの送信に対応 • iOS / Android ともに画⾯共有が可能 • 受信した映像フレームにアクセスできる(UI表⽰以外の使い ⽅が可能)※3 • ソースコードを公開 ※3: Android SDKのみ 旧SkyWayからのその他の変更点 詳しくは開発者ドキュメントをご覧ください https://skyway.ntt.com/ja/docs/
今後の展開
今後の展開 4⽉〜5⽉ バーチャル背景実装⽤ ライブラリ提供(Web版) 5⽉〜6⽉ TURNサーバ IPアドレス公開 7⽉〜9⽉ 録⾳・録画機能 ベータ提供開始
8⽉〜10⽉ 通話状況分析機能 ベータ提供開始 2023年 通話品質や状況を可視化、通話不具合の 原因調査などを⽤意にするためのダッシ ュボードを提供 ※2023/4/4時点の想定であり提供内容や時期を約束するものでは有りません 現時点では時期は未定ですが今後提供を視野に検討していくもの • ノイズキャンセリング • SDKラインナップ拡充(Unityなどのニーズに対応) • お客様のバックエンドサーバからSkyWayを操作するAPI • 超低遅延配信 • 通信負荷低減 ※ 細かな改善やSDKの使い勝手向上などは継続して実施!
新しくなっても変わらないもの
新しくなっても変わらないもの 無料 すぐに試せる 手軽さ 国内でSkyWay とWebRTCに詳 しいエンジニア が直接サポート 提供 Made
in Japan 通信会社提供 安心感 日本人エンジ ニアの事を第 一に考えた 情報発信
THANK YOU FOR YOUR ATTENTION