Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
2016.8時点WebRTCの標準化動向からいくつか / WebRTC Standards ...
Search
iwashi
November 27, 2022
Technology
260
0
Share
2016.8時点 WebRTCの標準化動向からいくつか / WebRTC Standards trends at 2016.8
WebRTC Meetup Tokyo #11 での発表資料です。
動画は↓にあります
https://youtu.be/0RYWw1nPxio?t=1h27m51s
iwashi
November 27, 2022
More Decks by iwashi
See All by iwashi
AIはプロダクト開発をどう変えたか?〜 3つの役割から見る「変化」と「未来」〜 / How AI Transformed Product Development: A Look at "Change" and "Future" via Three Roles
iwashi86
3
1.2k
ざっくり学ぶ 『エンジニアリングリーダー 技術組織を育てるリーダーシップと セルフマネジメント』 / 50 minute Engineering Leader
iwashi86
12
7.1k
最高のステークホルダーになるために / Striving to be the best stakeholder
iwashi86
11
5.1k
n=1の経験が紡ぐエンジニアリングマネジメントの可能性 / The Possibilities of Engineering Management from n=1 Experiences
iwashi86
23
17k
エンジニアリングが好きな私たちのためのエンジニアリングマネジャー入門 / Engineering management for the rest of us
iwashi86
25
6.3k
エレガントパズル 30分 ダイジェスト版/ Elegant Puzzle 30min Digest
iwashi86
6
770
エレガントパズル エンジニアのマネジメントという難問にあなたはどう立ち向かうのか / Elegant Puzzle
iwashi86
18
5.1k
ベロシティを高く保つ仕事のすすめ方 / Maintaining a High Velocity as Productivity Hacks
iwashi86
54
23k
マネージャー&リーダー向け 社内トレーニング / Training of management and leadership for Stockmark
iwashi86
64
33k
Other Decks in Technology
See All in Technology
TypeScript Compiler APIとPHP-Parserを活用し、TypeScriptとPHPで型を共有する
shuta13
0
300
long-running-tasks
cipepser
2
450
ITエンジニアを取り巻く環境とキャリアパス / A career path for Japanese IT engineers
takatama
4
1.8k
Spring AI × MCP 入門〜AIエージェントへのツール公開、境界設計から始める最小構成 〜
yuyamiyamoto
0
190
電子辞書Brainをネットに繋げてみた(自力編)
raspython3
0
390
ポスター発表&デモと総括 / Poster Presentations & Demonstrations and Summary
ks91
PRO
0
180
Javaで学ぶSOLID原則
negima
1
250
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
5
1.7k
JEP 522 Deep Dive - G1 GC同期コスト削減によるスループット向上を徹底検証&解説
tabatad
1
510
A Harness for Behaviour: how to get AI to generate code that does what we intend, or "TDD in the age of AI"
xpmatteo
1
530
脅威をエンジニアリングの糧にして:恐怖を乗り越えた先にあったもの / Turn threats into fuel for engineering: what lay beyond overcoming fear
nrslib
1
360
イベントストーミングとKiroの仕様駆動開発で実現する要件の認識合わせプロセス
syobochim
7
1k
Featured
See All Featured
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
290
Heart Work Chapter 1 - Part 1
lfama
PRO
7
36k
Docker and Python
trallard
47
3.9k
Test your architecture with Archunit
thirion
1
2.3k
Odyssey Design
rkendrick25
PRO
2
650
We Have a Design System, Now What?
morganepeng
55
8.2k
How STYLIGHT went responsive
nonsquared
100
6.1k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
200
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
199
74k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.4k
Un-Boring Meetings
codingconduct
0
300
Transcript
2016/8月時点 WebRTCの標準化動向からいくつか 2016/8/8(Mon) @ WebRTC Meetup Tokyo #11 @iwashi86
▪名前 @iwashi86 ▪仕事 SkyWayの開発・運用
WebRTCの標準化団体
役割の違い ネットワークを流れる プロトコル側を規定 ブラウザのAPI側を規定
Changes since May 13, 2016 Changes since February 15, 2016
Changes since November 23, 2015 進化スピードが速い
正しい技術記事 無くなる問題! 英語も古い記事が多いので注意
None
圧倒的感謝
【本LTの内容】 現在の最新実装ではなく、 将来どうなっていくか、という仕様を紹介 (個人的に開発者へ影響がありそうな仕様をピックアップ) 【本LTのゴール】 WebRTCの未来を知っていること
先に注意 W3C仕様は、ブラウザに実装されてないものが多いので、 `undefined` が出ても泣かないこと!
本題
まずW3C側から
RTCRtpTranceiver ・MediaStreamTrackの送受信をコントロール RTCRtpSender RTCRtpReceiver ・Chrome/Firefox共に未実装 = RTCPeerConnection.getTransceivers() は undefined ・Firefoxは、
getSenders() / getReceivers() が存在
RTCRtpTranceiver.setDirection ・setDirection(“方向属性”) で、メディアの送受信方向・非活性を設定可能 ・方向属性に設定できるもの ・sendrecv ・sendonly ・recvonly ・inactive ・今同じことする場合 ⇒
RTCRtpTranceiver.setCodecPreference ・setCodecPreference(“codec名”) で、コーデックの優先順序を設定可能 ・今同じことをする場合は、 createOffer/Answerで作成したSDPを修正
RTCRtpTranceiver.setCodecPreference ・setCodecPreference(“codec名”) で、コーデックの優先順序を設定可能 ・今同じことをする場合は、 createOffer/Answerで作成したSDPを修正 ・Tips:VP8やめたいとき ・正しいのは関連するVP8の記述を削除 ・ハックなのは、VP8をhogeなどに置換。 結果として、ネゴシエーションで合意取れず、 他のコーデックが選択される
RTCRtpSender.setParameter ・setParameter(RTCRtpParameters) で、コーデックのオプションやRTCPの扱いを設定 ・できることの例 ・maxBitrateを設定 ・解像度を優先するか、フレームレートを優先するか選択 ・maintain-framerate ・maintain-resolution ・balanced ・ちなみに、RIDというsimulcast向けのヘッダ設定もこれ
IETFの話
IETF96 (2016/7実施) は省略 ・IETF96の議論内容はニッチすぎて、 本Meetupでは有用なものが少ないと判断 ・ニッチな例 (rtcweb WGより) ・max-bundleが指定されたにも関わらず エンドポイントがbundleしてないメディアを
送ってきたらどう振る舞うべきか? ⇒結論:最初のm-lineを採用して残りはreject
代わりに面白そうな仕様を2つ 1. Mobility with TURN (TRAM WGより) (draft-ietf-tram-turn-mobility-03) 2. ICE
Network Cost (ICE WGへの個人ドラフト) (draft-thatcher-ice-network-cost-00)
代わりに面白そうな仕様を2つ 1. Mobility with TURN (draft-ietf-tram-turn-mobility-03) 2. ICE Network Cost
(draft-thatcher-ice-network-cost-00)
Mobility with TURN で解決したいこと • モバイルで移動中にIPが変わることがある • 例: 会社から外出 Wifi(TURN)
-> LTE • このときの現在のWebRTCの動作 ⇒ 一度、切断して再接続 • しかも変更後もTURN経由になった場合※は • Allocation Request • Create Permission • SDP再度交換 (ICE候補の交換) • ICEでホールパンチング というめんどくさい手順を踏まないといけない ※ 日本は代表キャリアがP2Pを通すので比較的レア
Mobility with TURN の解決方法
Mobility with TURN の解決方法 この部分は IPを変更しない (PeerAから見える IPは同じ。TURNが 変更を吸収する。)
代わりに面白そうな仕様を2つ 1. Mobility with TURN (draft-ietf-tram-turn-mobility-03) 2. ICE Network Cost
(draft-thatcher-ice-network-cost-00)
ICE Network Cost で解決したいこと • ICEで候補を集めた結果、以下の経路候補ができた 1. Wifi <-> Wifi
2. Wifi <-> LTE 3. LTE <-> Wifi 4. LTE <-> LTE • このとき、どれを選べばいいのか?
ICE Network Cost で解決したいこと • ICEで候補を集めた結果、以下の経路候補ができた 1. Wifi <-> Wifi
2. Wifi <-> LTE 3. LTE <-> Wifi 4. LTE <-> LTE • このとき、どれを選べばいいのか? • 日本での通信事情・金銭面を考えると もちろん[1]の Wifi <-> Wifi が望ましい • しかし、仮に重要通信で金銭面を考慮しなくて良い &Wifiが混雑していてLTEのが通信品質が良いなら?
ICE Network Cost で解決方法 • ICEの候補情報にネットワークコストを付与 つまり: a=candidate …(略)...
network-id=1 network-cost=50 • 経路は、ネットワークコストを加味して選定 • ICE Priorityも考慮要素 • ネットワークコストの算出ロジックは実装依存
まとめ • W3C: • RTCRtpTranceiver/Sender の中から setDirection()、setCodecPreference() を紹介 • IETF:
• Mobility with TURN • ICE Network Cost
(時間あれば)参考として • IETFは、誰でも参加できます • IETF97は11月でソウル • オンラインで良いなら無料 • IETF96の議論模様は Youtube
で公開 https://www.youtube.com/channel/UC8dtK9njBLdFnBahHFp0eZQ • 標準化というと堅苦しそうですが、 どのようにしてRFCが制定されていくのか、 一度、様子を覗いてみてはいかがでしょうか? • なおW3Cは、会員(有償)じゃないと参加困難…