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
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
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
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
12k
2026_devsumi_ozono.pdf
o3
3
470
山手線を徒歩で一周してわかった、 位置情報アプリは「足」が最強のデバッガー
hinakko
0
140
Microsoft 365 Copilot chat -tekoälypalvelun tietosuojaongelmat
hponka
0
860
Gitは怖い?共有ワークスペースから始めるSnowflakeチーム開発
coco_se
0
200
[2026-09-11]SREは誰のもの?運用エンジニアが始める 「SRE領域への越境」とチームの進化の軌跡 〜Road to NEXT CRE
tosite
0
200
AIで仕事のやり方を変える
matsu7874
3
1.1k
2026-09-10 【Snowflake World Tour Tokyo 2026】dbt Core と Snowflake で実現する多層的なデータガバナンス / Multi-Layered Data Governance Powered by dbt Core and Snowflake
civitaspo
0
380
Deploying a Full-Stack Bun-Native Framework on Cloudflare Workers
7nohe
0
160
越境するなら専門用語を使うな高校校歌 / If you wanna cross border, you shouldn't use jargon
vtryo
0
130
銀行勘定系システムにおける開発プロセス刷新×AIによる環境モダナイゼーション / Development Process Transformation and AI-Driven Environment Modernization
muit
0
1.5k
現場で役立つ技術負債の効果的な返済方法
masuda220
PRO
1
780
Featured
See All Featured
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
From π to Pie charts
rasagy
0
360
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
540
Ruling the World: When Life Gets Gamed
codingconduct
0
330
We Have a Design System, Now What?
morganepeng
55
8.3k
For a Future-Friendly Web
brad_frost
183
10k
Are puppies a ranking factor?
jonoalderson
2
3.9k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.7k
Claude Code のすすめ
schroneko
67
230k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.9k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
410
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
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