Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
SDP for WebRTC
-From Basics to Maniacs-
WebRTC Meetup Tokyo #7
@iwashi86
1
●Attribute
・Name -> Yoshimasa IWASE
・Twitter -> @iwashi86
・Web -> iwashi.co
●Work @ NTT Communications
・SkyWay(WebRTC)の裏側の...
今日のお話
SDP
注:ORTCが来たら大体忘れていいことが多いです。
ただし、本質的にメディア通信に必要な情報(ICEとか)は
ORTCでも同じであるため、今後も役立つと思います。
3
v=0
o=- 7919192553830045546 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE video
a=msid-semantic: WMS IJaEuKH4cYDg9YxONEt16kn...
5
Webデベロッパ -> こう見えてるはず
本LTのゴール
・SDPの読み方の基本を理解
・ちょっとマニアックな部分も理解
・嫌悪感を軽減
6
そもそも
何故
SDPが必要?
7
柔軟にメディア疎通するためには
通信条件のネゴシエーションが必要
8
昔々
最近
条件が一緒なので
ネゴシエーション不要
Aが使える Aが使える
VP8とH264
が使える
VP8だけ
使える
VP8とH264が使えるよ、と申し出る
VP8だけ...
このようなモデルを
オファーアンサーモデル(RFC 3264)と呼ぶ
9
VP8とH264が使えるよ、と申し出る
VP8だけ使えるよ、と答える
オファー(Offer)
アンサー(Answer)
Agent
(Offerer)
Agent
(An...
SDPはオファーとアンサーの
記述方法(表現形式)とやりとりの仕組み
10
VP8とH264が使えるよ、と申し出る
VP8だけ使えるよ、と答える
オファー(Offer)
アンサー(Answer)
Agent
(Offerer)
Agent
(A...
オファーアンサーモデルには
セッション(親) と メディア(子) の概念がある
11
Agent
(Offerer)
Agent
(Answerer)
セッション
(複数のメディアを含む総体)
音声メディア
映像メディア
データメディア
補足:...
そのためSDPにも
①セッション記述部 と ②メディア記述部 がある
12
v=0
o=mozilla...THIS_IS_SDPARTA-37.0 256835513207089710 0 IN IP4 0.0.0.0
s=-
t=0 0
a...
そのためSDPにも
①セッション記述部 と ②メディア記述部 がある
13
v=0
o=mozilla...THIS_IS_SDPARTA-37.0 256835513207089710 0 IN IP4 0.0.0.0
s=-
t=0 0
a...
以降
SDP詳説
14
まず①セッション記述部から
15
v=0
o=mozilla...THIS_IS_SDPARTA-37.0 256835513207089710 0 IN IP4 0.0.0.0
s=-
t=0 0
a=sendrecv
a=fingerpri...
①セッション記述部 詳説
16
v=0
o=mozilla...THIS_IS_SDPARTA-37.0 256835513207089710 0 IN IP4 0.0.0.0
s=-
t=0 0
a=sendrecv
a=fingerprin...
v= はバージョン
17
v=0
o=mozilla...THIS_IS_SDPARTA-37.0 256835513207089710 0 IN IP4 0.0.0.0
s=-
t=0 0
a=sendrecv
a=fingerprint:s...
o= には作成者を
18
v=0
o=mozilla...THIS_IS_SDPARTA-37.0 256835513207089710 0 IN IP4 0.0.0.0
s=-
t=0 0
a=sendrecv
a=fingerprint:s...
s= は忘れてください
19
v=0
o=mozilla...THIS_IS_SDPARTA-37.0 256835513207089710 0 IN IP4 0.0.0.0
s=-
t=0 0
a=sendrecv
a=fingerprint...
t= も忘れてください
20
v=0
o=mozilla...THIS_IS_SDPARTA-37.0 256835513207089710 0 IN IP4 0.0.0.0
s=-
t=0 0
a=sendrecv
a=fingerprint...
これまで出てきた行は
必須かつ順序固定
21
v=0
o=mozilla...THIS_IS_SDPARTA-37.0 256835513207089710 0 IN IP4 0.0.0.0
s=-
t=0 0
a=sendrecv
a=fin...
ちなみに、MozillaはSDP作成時に
ユーモア混入中
22
v=0
o=mozilla...THIS_IS_SDPARTA-37.0 256835513207089710 0 IN
IP4 0.0.0.0
s=-
t=0 0
a=sendr...
23
完全にパロってる
a= 以降は拡張属性
WebRTC的には超重要
24
v=0
o=mozilla...THIS_IS_SDPARTA-37.0 256835513207089710 0 IN IP4 0.0.0.0
s=-
t=0 0
a=sendrecv
a...
特にWebRTC的に重要なのが下2つ
25
v=0
o=mozilla...THIS_IS_SDPARTA-37.0 256835513207089710 0 IN IP4 0.0.0.0
s=-
t=0 0
a=sendrecv
a=fing...
次
26
②メディア記述部
27
v=0
o=mozilla...THIS_IS_SDPARTA-37.0 256835513207089710 0 IN IP4 0.0.0.0
s=-
t=0 0
a=sendrecv
a=fingerprint:sh...
メディア記述部には必要なメディアの数だけ
m=で始まるブロックが存在
28
m=audio 59540 RTP/SAVPF 109 9 0 8
c=IN IP4 123.123.123.123
a=candidate:0 1 UDP 21303...
Audioを取り上げて
WebRTC的に重要な項目を説明
29
m=audio 59540 RTP/SAVPF 109 9 0 8
c=IN IP4 123.123.123.123
a=candidate:0 1 UDP 2130379007 ...
以降、Audioを取り上げて
WebRTC的に重要な項目を説明
30
m=audio 59540 RTP/SAVPF 109 9 0 8
c=IN IP4 123.123.123.123
a=candidate:0 1 UDP 21303790...
m= にはメディア種別・Port・
プロトコル・ペイロードタイプを書く
31
m=audio 59540 RTP/SAVPF 109 9 0 8
c=IN IP4 123.123.123.123
a=candidate:0 1 UDP 2130...
ペイロードタイプは
2箇所に分かれて記載される
32
m=audio 59540 RTP/SAVPF 109 9 0 8
c=IN IP4 123.123.123.123
a=candidate:0 1 UDP 2130379007 192.1...
rtpmapには ペイロードタイプ・コーデック名・
クロックレート・その他パラメータを記載
33
m=audio 59540 RTP/SAVPF 109 9 0 8
c=IN IP4 123.123.123.123
a=candidate:0 ...
ちょっと戻って大事なこと:
m=のペイロードタイプは優先度順
34
m=audio 59540 RTP/SAVPF 109 9 0 8
c=IN IP4 123.123.123.123
a=candidate:0 1 UDP 213037900...
c= にはIPアドレスを
35
m=audio 59540 RTP/SAVPF 109 9 0 8
c=IN IP4 123.123.123.123
a=candidate:0 1 UDP 2130379007 192.168.1.8 5954...
以降は a= なので
全て拡張属性だが、WebRTC的に超重要
36
m=audio 59540 RTP/SAVPF 109 9 0 8
c=IN IP4 123.123.123.123
a=candidate:0 1 UDP 21303790...
a=candidate はICE候補
37
m=audio 59540 RTP/SAVPF 109 9 0 8
c=IN IP4 123.123.123.123
a=candidate:0 1 UDP 2130379007 192.168.1....
a=sendrecvは双方向通信という意味
38
m=audio 59540 RTP/SAVPF 109 9 0 8
c=IN IP4 123.123.123.123
a=candidate:0 1 UDP 2130379007 192.168...
a=end-of-candidates はtrickleICEの完了
39
m=audio 59540 RTP/SAVPF 109 9 0 8
c=IN IP4 123.123.123.123
a=candidate:0 1 UDP 21303...
a=extmap は RTP Headerを拡張する
40
m=audio 59540 RTP/SAVPF 109 9 0 8
c=IN IP4 123.123.123.123
a=candidate:0 1 UDP 2130379007 19...
a=ice-pwd と a=ice-ufrag は
ICEのユーザ名・パスワード
41
m=audio 59540 RTP/SAVPF 109 9 0 8
c=IN IP4 123.123.123.123
a=candidate:0 1 UDP...
a=midは多重化の識別子
42
m=audio 59540 RTP/SAVPF 109 9 0 8
c=IN IP4 123.123.123.123
a=candidate:0 1 UDP 2130379007 192.168.1.8 595...
a=rtcp-mux はRTPとRTCPを多重化する
43
m=audio 59540 RTP/SAVPF 109 9 0 8
c=IN IP4 123.123.123.123
a=candidate:0 1 UDP 2130379007 19...
a=setup:actpass でDTLSを使う
44
m=audio 59540 RTP/SAVPF 109 9 0 8
c=IN IP4 123.123.123.123
a=candidate:0 1 UDP 2130379007 192....
a=ssrcはRTPで利用する
参加者の識別子のこと
45
m=audio 59540 RTP/SAVPF 109 9 0 8
c=IN IP4 123.123.123.123
a=candidate:0 1 UDP 2130379007 19...
Videoは略(RFC読もう)
46
m=audio 59540 RTP/SAVPF 109 9 0 8
c=IN IP4 123.123.123.123
a=candidate:0 1 UDP 2130379007 192.168.1.8 5...
ということで
47
48
こう見えていたのが
v=0
o=- 7919192553830045546 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE video
a=msid-semantic: WMS IJaEuKH4cYDg9YxONEt16kn...
おしまい!
50
NTTコミュニケーションズの
新卒採用(WebRTCに限らず)に
興味がある方がいれば
@iwashi86 までご連絡ください!
ちょっと宣伝
Prochain SlideShare
Chargement dans…5
×
Prochain SlideShare
ラズパイでWebRTC ヾ(*´∀`*)ノキャッキャ uv4l-webrtc 軽くハックしてみたよ!
Suivant
Télécharger pour lire hors ligne et voir en mode plein écran

23

Partager

Télécharger pour lire hors ligne

SDP for WebRTC - From Basics to Maniacs -

Télécharger pour lire hors ligne

注:
http://www.slideshare.net/iwashi86/webrtc-for-sdp
が更新版です。

WebRTC Meetup Tokyo #7にて発表したスライド。
資料で書ききれていない説明はこちらの動画から。
http://youtu.be/Y92Z349RhuI?t=2h5m29s

Livres associés

Gratuit avec un essai de 30 jours de Scribd

Tout voir

SDP for WebRTC - From Basics to Maniacs -

  1. 1. SDP for WebRTC -From Basics to Maniacs- WebRTC Meetup Tokyo #7 @iwashi86 1
  2. 2. ●Attribute ・Name -> Yoshimasa IWASE ・Twitter -> @iwashi86 ・Web -> iwashi.co ●Work @ NTT Communications ・SkyWay(WebRTC)の裏側の開発運用 ・HTML5 Experts.jpというWebメディアの編集 2
  3. 3. 今日のお話 SDP 注:ORTCが来たら大体忘れていいことが多いです。 ただし、本質的にメディア通信に必要な情報(ICEとか)は ORTCでも同じであるため、今後も役立つと思います。 3
  4. 4. v=0 o=- 7919192553830045546 2 IN IP4 127.0.0.1 s=- t=0 0 a=group:BUNDLE video a=msid-semantic: WMS IJaEuKH4cYDg9YxONEt16knZtoFuZZ4ioQRq m=video 51986 RTP/SAVPF 100 116 117 96 c=IN IP4 192.168.123.1 a=rtcp:51986 IN IP4 192.168.123.1 a=candidate:964645231 1 udp 2122260223 192.168.123.1 51986 typ host generation 0 a=candidate:964645231 2 udp 2122260223 192.168.123.1 51986 typ host generation 0 a=candidate:678703848 1 udp 2122194687 192.168.100.1 49989 typ host generation 0 a=candidate:678703848 2 udp 2122194687 192.168.100.1 49989 typ host generation 0 a=candidate:2178013618 1 udp 2122129151 192.168.33.1 55585 typ host generation 0 a=candidate:2178013618 2 udp 2122129151 192.168.33.1 55585 typ host generation 0 a=candidate:4278134664 1 udp 2122063615 192.168.1.8 50973 typ host generation 0 a=candidate:4278134664 2 udp 2122063615 192.168.1.8 50973 typ host generation 0 a=candidate:2013048223 1 tcp 1518280447 192.168.123.1 0 typ host tcptype active generation 0 a=candidate:2013048223 2 tcp 1518280447 192.168.123.1 0 typ host tcptype active generation 0 a=candidate:1727516184 1 tcp 1518214911 192.168.100.1 0 typ host tcptype active generation 0 a=candidate:1727516184 2 tcp 1518214911 192.168.100.1 0 typ host tcptype active generation 0 a=candidate:3478267202 1 tcp 1518149375 192.168.33.1 0 typ host tcptype active generation 0 a=candidate:3478267202 2 tcp 1518149375 192.168.33.1 0 typ host tcptype active generation 0 a=candidate:2960972664 1 tcp 1518083839 192.168.1.8 0 typ host tcptype active generation 0 a=candidate:2960972664 2 tcp 1518083839 192.168.1.8 0 typ host tcptype active generation 0 a=ice-ufrag:oaw7CiwPrr8SugF+ a=ice-pwd:6Wvv5xxI8Es575wFb5Houqlg a=ice-options:google-ice a=fingerprint:sha-256 11:01:4A:47:81:4F:EA:E0:0B:02:FA:9E:D4:CF:CF:95:C4:50:D6:CE:16:DF:37:AE:B0:FD:F2:B2:C5:E7:DD:30 a=setup:actpass a=mid:video a=extmap:2 urn:ietf:params:rtp-hdrext:toffset a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time a=sendrecv a=rtcp-mux a=rtpmap:100 VP8/90000 a=rtpmap:116 red/90000 a=rtpmap:117 ulpfec/90000 a=rtpmap:96 rtx/90000 a=fmtp:96 apt=100 4 VoIP上がりの人 -> 多少読める
  5. 5. 5 Webデベロッパ -> こう見えてるはず
  6. 6. 本LTのゴール ・SDPの読み方の基本を理解 ・ちょっとマニアックな部分も理解 ・嫌悪感を軽減 6
  7. 7. そもそも 何故 SDPが必要? 7
  8. 8. 柔軟にメディア疎通するためには 通信条件のネゴシエーションが必要 8 昔々 最近 条件が一緒なので ネゴシエーション不要 Aが使える Aが使える VP8とH264 が使える VP8だけ 使える VP8とH264が使えるよ、と申し出る VP8だけ使えるよ、と答える ネゴシエーションで柔軟に通信条件を変更できる! 通信条件は簡単には変えられない…
  9. 9. このようなモデルを オファーアンサーモデル(RFC 3264)と呼ぶ 9 VP8とH264が使えるよ、と申し出る VP8だけ使えるよ、と答える オファー(Offer) アンサー(Answer) Agent (Offerer) Agent (Answerer) メディア(音声・映像・データ)
  10. 10. SDPはオファーとアンサーの 記述方法(表現形式)とやりとりの仕組み 10 VP8とH264が使えるよ、と申し出る VP8だけ使えるよ、と答える オファー(Offer) アンサー(Answer) Agent (Offerer) Agent (Answerer) メディア(音声・映像・データ) <SDPの例> v=0 o=- 7919192553830045546 2 IN IP4 127.0.0.1 s=- t=0 0 a=group:BUNDLE video a=msid-semantic: WMS IJaEuKH4cYDg9YxONEt16knZtoFuZZ4ioQRq m=video 51986 RTP/SAVPF 100 116 117 96 c=IN IP4 192.168.123.1 a=rtcp:51986 IN IP4 192.168.123.1 a=candidate:964645231 1 udp 2122260223 (略)
  11. 11. オファーアンサーモデルには セッション(親) と メディア(子) の概念がある 11 Agent (Offerer) Agent (Answerer) セッション (複数のメディアを含む総体) 音声メディア 映像メディア データメディア 補足:メディアとは、実際の音声ストリームデータ等を指す
  12. 12. そのためSDPにも ①セッション記述部 と ②メディア記述部 がある 12 v=0 o=mozilla...THIS_IS_SDPARTA-37.0 256835513207089710 0 IN IP4 0.0.0.0 s=- t=0 0 a=sendrecv a=fingerprint:sha-256 2B:71:C0:1A:D5:5F:E9:AD:4E:C0:A8:B2:14:06:0E:DE:B8:83:FD:0F:02:8A:CD:22:E5:32:52:91:65:32:95:69 a=group:BUNDLE sdparta_0 sdparta_1 a=ice-options:trickle m=audio 59540 RTP/SAVPF 109 9 0 8 c=IN IP4 123.123.123.123 a=candidate:0 1 UDP 2130379007 192.168.1.8 59540 typ host a=candidate:2 1 UDP 2128609535 192.168.33.1 65026 typ host a=candidate:4 1 UDP 2128543999 192.168.100.1 50644 typ host a=candidate:6 1 UDP 2128478463 192.168.123.1 53189 typ host a=candidate:0 2 UDP 2130379006 192.168.1.8 50370 typ host a=candidate:2 2 UDP 2128609534 192.168.33.1 63402 typ host a=candidate:4 2 UDP 2128543998 192.168.100.1 59589 typ host a=candidate:6 2 UDP 2128478462 192.168.123.1 58005 typ host a=sendrecv a=end-of-candidates a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level a=ice-pwd:55104ba020a9bb780a06b8a8db085a6e a=ice-ufrag:24b20be8 a=mid:sdparta_0 a=rtcp-mux a=rtpmap:109 opus/48000/2 a=rtpmap:9 G722/8000/1 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=setup:actpass a=ssrc:2602856860 cname:{4518e50c-1e53-9640-88cb-56d3189fb9b8} m=video 53336 RTP/SAVPF 120 126 97 c=IN IP4 123.123.123.123 以下略 ①セッション記述部 ②メディア記述部 Firefox Beta(37.0)で 取得した生SDPです
  13. 13. そのためSDPにも ①セッション記述部 と ②メディア記述部 がある 13 v=0 o=mozilla...THIS_IS_SDPARTA-37.0 256835513207089710 0 IN IP4 0.0.0.0 s=- t=0 0 a=sendrecv a=fingerprint:sha-256 2B:71:C0:1A:D5:5F:E9:AD:4E:C0:A8:B2:14:06:0E:DE:B8:83:FD:0F:02:8A:CD:22:E5:32:52:91:65:32:95:69 a=group:BUNDLE sdparta_0 sdparta_1 a=ice-options:trickle m=audio 59540 RTP/SAVPF 109 9 0 8 c=IN IP4 123.123.123.123 a=candidate:0 1 UDP 2130379007 192.168.1.8 59540 typ host a=candidate:2 1 UDP 2128609535 192.168.33.1 65026 typ host a=candidate:4 1 UDP 2128543999 192.168.100.1 50644 typ host a=candidate:6 1 UDP 2128478463 192.168.123.1 53189 typ host a=candidate:0 2 UDP 2130379006 192.168.1.8 50370 typ host a=candidate:2 2 UDP 2128609534 192.168.33.1 63402 typ host a=candidate:4 2 UDP 2128543998 192.168.100.1 59589 typ host a=candidate:6 2 UDP 2128478462 192.168.123.1 58005 typ host a=sendrecv a=end-of-candidates a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level a=ice-pwd:55104ba020a9bb780a06b8a8db085a6e a=ice-ufrag:24b20be8 a=mid:sdparta_0 a=rtcp-mux a=rtpmap:109 opus/48000/2 a=rtpmap:9 G722/8000/1 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=setup:actpass a=ssrc:2602856860 cname:{4518e50c-1e53-9640-88cb-56d3189fb9b8} m=video 53336 RTP/SAVPF 120 126 97 c=IN IP4 123.123.123.123 以下略 ①セッション記述部 ②メディア記述部 Firefox Beta(37.0)で 取得した生SDPです TIPS: セッション記述部とメディア記述部の見分け方は m= で始まる行を探すこと
  14. 14. 以降 SDP詳説 14
  15. 15. まず①セッション記述部から 15 v=0 o=mozilla...THIS_IS_SDPARTA-37.0 256835513207089710 0 IN IP4 0.0.0.0 s=- t=0 0 a=sendrecv a=fingerprint:sha-256 2B:71:C0:1A:D5:5F:E9:AD:4E:C0:A8:B2:14:06:0E:DE:B8:83:FD:0F:02:8A:CD:22:E5:32:52:91:65:32:95:69 a=group:BUNDLE sdparta_0 sdparta_1 a=ice-options:trickle m=audio 59540 RTP/SAVPF 109 9 0 8 c=IN IP4 123.123.123.123 a=candidate:0 1 UDP 2130379007 192.168.1.8 59540 typ host a=candidate:2 1 UDP 2128609535 192.168.33.1 65026 typ host a=candidate:4 1 UDP 2128543999 192.168.100.1 50644 typ host a=candidate:6 1 UDP 2128478463 192.168.123.1 53189 typ host a=candidate:0 2 UDP 2130379006 192.168.1.8 50370 typ host a=candidate:2 2 UDP 2128609534 192.168.33.1 63402 typ host a=candidate:4 2 UDP 2128543998 192.168.100.1 59589 typ host a=candidate:6 2 UDP 2128478462 192.168.123.1 58005 typ host a=sendrecv a=end-of-candidates a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level a=ice-pwd:55104ba020a9bb780a06b8a8db085a6e a=ice-ufrag:24b20be8 a=mid:sdparta_0 a=rtcp-mux a=rtpmap:109 opus/48000/2 a=rtpmap:9 G722/8000/1 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=setup:actpass a=ssrc:2602856860 cname:{4518e50c-1e53-9640-88cb-56d3189fb9b8} m=video 53336 RTP/SAVPF 120 126 97 c=IN IP4 123.123.123.123 以下略 ①セッション記述部 ②メディア記述部 ちなみに、 Firefox Beta(37.0)で取得した生SDPです
  16. 16. ①セッション記述部 詳説 16 v=0 o=mozilla...THIS_IS_SDPARTA-37.0 256835513207089710 0 IN IP4 0.0.0.0 s=- t=0 0 a=sendrecv a=fingerprint:sha-256 2B:71:C0:1A:D5:5F:E9:AD:4E:C0:A8:B2:14:06:0E:DE:B8:83:FD:0F:02:8A:CD:22:E5:32:52:91:65:32:95: 69 a=group:BUNDLE sdparta_0 sdparta_1 a=ice-options:trickle 上から1つずつチェックしていきます
  17. 17. v= はバージョン 17 v=0 o=mozilla...THIS_IS_SDPARTA-37.0 256835513207089710 0 IN IP4 0.0.0.0 s=- t=0 0 a=sendrecv a=fingerprint:sha-256 2B:71:C0:1A:D5:5F:E9:AD:4E:C0:A8:B2:14:06:0E:DE:B8:83:FD:0F:02:8A:CD:22:E5:32:52:91:65:32:95: 69 a=group:BUNDLE sdparta_0 sdparta_1 a=ice-options:trickle Versionの略。 どのSDPバージョンを使うか指定する。 WebRTC的には割とどうでもいい。
  18. 18. o= には作成者を 18 v=0 o=mozilla...THIS_IS_SDPARTA-37.0 256835513207089710 0 IN IP4 0.0.0.0 s=- t=0 0 a=sendrecv a=fingerprint:sha-256 2B:71:C0:1A:D5:5F:E9:AD:4E:C0:A8:B2:14:06:0E:DE:B8:83:FD:0F:02:8A:CD:22:E5:32:52:91:65:32:95: 69 a=group:BUNDLE sdparta_0 sdparta_1 a=ice-options:trickle Originの略。 だれがSDPを作成したのかということ。 WebRTC的には割とどうでもいい。
  19. 19. s= は忘れてください 19 v=0 o=mozilla...THIS_IS_SDPARTA-37.0 256835513207089710 0 IN IP4 0.0.0.0 s=- t=0 0 a=sendrecv a=fingerprint:sha-256 2B:71:C0:1A:D5:5F:E9:AD:4E:C0:A8:B2:14:06:0E:DE:B8:83:FD:0F:02:8A:CD:22:E5:32:52:91:65:32:95: 69 a=group:BUNDLE sdparta_0 sdparta_1 a=ice-options:trickle Session nameの略。 どうでもいいので忘れてください。
  20. 20. t= も忘れてください 20 v=0 o=mozilla...THIS_IS_SDPARTA-37.0 256835513207089710 0 IN IP4 0.0.0.0 s=- t=0 0 a=sendrecv a=fingerprint:sha-256 2B:71:C0:1A:D5:5F:E9:AD:4E:C0:A8:B2:14:06:0E:DE:B8:83:FD:0F:02:8A:CD:22:E5:32:52:91:65:32:95: 69 a=group:BUNDLE sdparta_0 sdparta_1 a=ice-options:trickle Time zonesの略で、開始・終了時刻を書く どうでもい(ry
  21. 21. これまで出てきた行は 必須かつ順序固定 21 v=0 o=mozilla...THIS_IS_SDPARTA-37.0 256835513207089710 0 IN IP4 0.0.0.0 s=- t=0 0 a=sendrecv a=fingerprint:sha-256 2B:71:C0:1A:D5:5F:E9:AD:4E:C0:A8:B2:14:06:0E:DE:B8:83:FD:0F:02:8A:CD:22:E5:32:52:91:65:32:95: 69 a=group:BUNDLE sdparta_0 sdparta_1 a=ice-options:trickle 必ず v,o,s,t の順で現れます。 この v,o,s,t はSDPでは必須ヘッダのため省略NGです。 // 割とどうでもいいけど、消すと SDPのParseにコケて(たぶん)動きません
  22. 22. ちなみに、MozillaはSDP作成時に ユーモア混入中 22 v=0 o=mozilla...THIS_IS_SDPARTA-37.0 256835513207089710 0 IN IP4 0.0.0.0 s=- t=0 0 a=sendrecv a=fingerprint:sha-256 2B:71:C0:1A:D5:5F:E9:AD:4E:C0:A8:B2:14:06:0E:DE:B8:83:FD:0F:02:8A:CD:22:E5:32:52:91:65:32:95: 69 a=group:BUNDLE sdparta_0 sdparta_1 a=ice-options:trickle
  23. 23. 23 完全にパロってる
  24. 24. a= 以降は拡張属性 WebRTC的には超重要 24 v=0 o=mozilla...THIS_IS_SDPARTA-37.0 256835513207089710 0 IN IP4 0.0.0.0 s=- t=0 0 a=sendrecv a=fingerprint:sha-256 2B:71:C0:1A:D5:5F:E9:AD:4E:C0:A8:B2:14:06:0E:DE:B8:83:FD:0F:02:8A:CD:22:E5:32:52:91:65:32:95: 69 a=group:BUNDLE sdparta_0 sdparta_1 a=ice-options:trickle
  25. 25. 特にWebRTC的に重要なのが下2つ 25 v=0 o=mozilla...THIS_IS_SDPARTA-37.0 256835513207089710 0 IN IP4 0.0.0.0 s=- t=0 0 a=sendrecv a=fingerprint:sha-256 2B:71:C0:1A:D5:5F:E9:AD:4E:C0:A8:B2:14:06:0E:DE:B8:83:FD:0F:02:8A:CD:22:E5:32:52:91:65:32:95: 69 a=group:BUNDLE sdparta_0 sdparta_1 a=ice-options:trickle 音声(audio)と映像(video)を多重化する sdparta_0は単なる識別子(後で出てく る) TrickleICE※を利用する ※http://iwashi.co/2014/05/13/trickleice/
  26. 26. 次 26
  27. 27. ②メディア記述部 27 v=0 o=mozilla...THIS_IS_SDPARTA-37.0 256835513207089710 0 IN IP4 0.0.0.0 s=- t=0 0 a=sendrecv a=fingerprint:sha-256 2B:71:C0:1A:D5:5F:E9:AD:4E:C0:A8:B2:14:06:0E:DE:B8:83:FD:0F:02:8A:CD:22:E5:32:52:91:65:32:95:69 a=group:BUNDLE sdparta_0 sdparta_1 a=ice-options:trickle m=audio 59540 RTP/SAVPF 109 9 0 8 c=IN IP4 123.123.123.123 a=candidate:0 1 UDP 2130379007 192.168.1.8 59540 typ host a=candidate:2 1 UDP 2128609535 192.168.33.1 65026 typ host a=candidate:4 1 UDP 2128543999 192.168.100.1 50644 typ host a=candidate:6 1 UDP 2128478463 192.168.123.1 53189 typ host a=candidate:0 2 UDP 2130379006 192.168.1.8 50370 typ host a=candidate:2 2 UDP 2128609534 192.168.33.1 63402 typ host a=candidate:4 2 UDP 2128543998 192.168.100.1 59589 typ host a=candidate:6 2 UDP 2128478462 192.168.123.1 58005 typ host a=sendrecv a=end-of-candidates a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level a=ice-pwd:55104ba020a9bb780a06b8a8db085a6e a=ice-ufrag:24b20be8 a=mid:sdparta_0 a=rtcp-mux a=rtpmap:109 opus/48000/2 a=rtpmap:9 G722/8000/1 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=setup:actpass a=ssrc:2602856860 cname:{4518e50c-1e53-9640-88cb-56d3189fb9b8} m=video 53336 RTP/SAVPF 120 126 97 c=IN IP4 123.123.123.123 以下略 ①セッション記述部 ②メディア記述部
  28. 28. メディア記述部には必要なメディアの数だけ m=で始まるブロックが存在 28 m=audio 59540 RTP/SAVPF 109 9 0 8 c=IN IP4 123.123.123.123 a=candidate:0 1 UDP 2130379007 192.168.1.8 59540 typ host a=sendrecv a=end-of-candidates a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level a=ice-pwd:55104ba020a9bb780a06b8a8db085a6e a=ice-ufrag:24b20be8 a=mid:sdparta_0 a=rtcp-mux a=rtpmap:109 opus/48000/2 a=rtpmap:9 G722/8000/1 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=setup:actpass a=ssrc:2602856860 cname:{4518e50c-1e53-9640-88cb-56d3189fb9b8} m=video 53336 RTP/SAVPF 120 126 97 c=IN IP4 123.123.123.123 a=candidate:0 1 UDP 2130379007 192.168.1.8 53336 typ host a=sendrecv a=end-of-candidates a=fmtp:120 max-fs=12288;max-fr=60 a=fmtp:126 profile-level-id=42e01f;level-asymmetry-allowed=1;packetization-mode=1 a=fmtp:97 profile-level-id=42e01f;level-asymmetry-allowed=1 a=ice-pwd:55104ba020a9bb780a06b8a8db085a6e a=ice-ufrag:24b20be8 a=mid:sdparta_1 a=rtcp-mux a=rtpmap:120 VP8/90000 a=rtpmap:126 H264/90000 a=rtpmap:97 H264/90000 a=setup:actpass a=ssrc:2337298562 cname:{4518e50c-1e53-9640-88cb-56d3189fb9b8} メディア記述部[1] メディア記述部[2]
  29. 29. Audioを取り上げて WebRTC的に重要な項目を説明 29 m=audio 59540 RTP/SAVPF 109 9 0 8 c=IN IP4 123.123.123.123 a=candidate:0 1 UDP 2130379007 192.168.1.8 59540 typ host a=sendrecv a=end-of-candidates a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level a=ice-pwd:55104ba020a9bb780a06b8a8db085a6e a=ice-ufrag:24b20be8 a=mid:sdparta_0 a=rtcp-mux a=rtpmap:109 opus/48000/2 a=rtpmap:9 G722/8000/1 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=setup:actpass a=ssrc:2602856860 cname:{4518e50c-1e53-9640-88cb-56d3189fb9b8} m=video 53336 RTP/SAVPF 120 126 97 c=IN IP4 123.123.123.123 a=candidate:0 1 UDP 2130379007 192.168.1.8 53336 typ host a=sendrecv a=end-of-candidates a=fmtp:120 max-fs=12288;max-fr=60 a=fmtp:126 profile-level-id=42e01f;level-asymmetry-allowed=1;packetization-mode=1 a=fmtp:97 profile-level-id=42e01f;level-asymmetry-allowed=1 a=ice-pwd:55104ba020a9bb780a06b8a8db085a6e a=ice-ufrag:24b20be8 a=mid:sdparta_1 a=rtcp-mux a=rtpmap:120 VP8/90000 a=rtpmap:126 H264/90000 a=rtpmap:97 H264/90000 a=setup:actpass a=ssrc:2337298562 cname:{4518e50c-1e53-9640-88cb-56d3189fb9b8} メディア記述部[1] メディア記述部[2]
  30. 30. 以降、Audioを取り上げて WebRTC的に重要な項目を説明 30 m=audio 59540 RTP/SAVPF 109 9 0 8 c=IN IP4 123.123.123.123 a=candidate:0 1 UDP 2130379007 192.168.1.8 59540 typ host a=sendrecv a=end-of-candidates a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level a=ice-pwd:55104ba020a9bb780a06b8a8db085a6e a=ice-ufrag:24b20be8 a=mid:sdparta_0 a=rtcp-mux a=rtpmap:109 opus/48000/2 a=rtpmap:9 G722/8000/1 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=setup:actpass a=ssrc:2602856860 cname:{4518e50c-1e53-9640-88cb-56d3189fb9b8}
  31. 31. m= にはメディア種別・Port・ プロトコル・ペイロードタイプを書く 31 m=audio 59540 RTP/SAVPF 109 9 0 8 c=IN IP4 123.123.123.123 a=candidate:0 1 UDP 2130379007 192.168.1.8 59540 typ host a=sendrecv a=end-of-candidates a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level a=ice-pwd:55104ba020a9bb780a06b8a8db085a6e a=ice-ufrag:24b20be8 a=mid:sdparta_0 a=rtcp-mux a=rtpmap:109 opus/48000/2 a=rtpmap:9 G722/8000/1 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=setup:actpass a=ssrc:2602856860 cname:{4518e50c-1e53-9640-88cb-56d3189fb9b8} 音声 ポート番号 プロトコル RTP/SAVPFは、SRTP/SRTCPと考えて いいです。RFC5124参照。 ペイロードタイプ (次頁で後述)
  32. 32. ペイロードタイプは 2箇所に分かれて記載される 32 m=audio 59540 RTP/SAVPF 109 9 0 8 c=IN IP4 123.123.123.123 a=candidate:0 1 UDP 2130379007 192.168.1.8 59540 typ host a=sendrecv a=end-of-candidates a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level a=ice-pwd:55104ba020a9bb780a06b8a8db085a6e a=ice-ufrag:24b20be8 a=mid:sdparta_0 a=rtcp-mux a=rtpmap:109 opus/48000/2 a=rtpmap:9 G722/8000/1 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=setup:actpass a=ssrc:2602856860 cname:{4518e50c-1e53-9640-88cb-56d3189fb9b8} 下のrtpmap属性とリンクしており 下側に詳細なコーデック情報が記載される
  33. 33. rtpmapには ペイロードタイプ・コーデック名・ クロックレート・その他パラメータを記載 33 m=audio 59540 RTP/SAVPF 109 9 0 8 c=IN IP4 123.123.123.123 a=candidate:0 1 UDP 2130379007 192.168.1.8 59540 typ host a=sendrecv a=end-of-candidates a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level a=ice-pwd:55104ba020a9bb780a06b8a8db085a6e a=ice-ufrag:24b20be8 a=mid:sdparta_0 a=rtcp-mux a=rtpmap:109 opus/48000/2 a=rtpmap:9 G722/8000/1 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=setup:actpass a=ssrc:2602856860 cname:{4518e50c-1e53-9640-88cb-56d3189fb9b8} Opusという名前のコーデックで 秒間48,000回サンプリングして 2チャネル使う ということ https://tools.ietf.org/html/draft-spittka-payload-rtp-opus-03
  34. 34. ちょっと戻って大事なこと: m=のペイロードタイプは優先度順 34 m=audio 59540 RTP/SAVPF 109 9 0 8 c=IN IP4 123.123.123.123 a=candidate:0 1 UDP 2130379007 192.168.1.8 59540 typ host a=sendrecv a=end-of-candidates a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level a=ice-pwd:55104ba020a9bb780a06b8a8db085a6e a=ice-ufrag:24b20be8 a=mid:sdparta_0 a=rtcp-mux a=rtpmap:109 opus/48000/2 a=rtpmap:9 G722/8000/1 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=setup:actpass a=ssrc:2602856860 cname:{4518e50c-1e53-9640-88cb-56d3189fb9b8} これがコーデック選択の優先度で、 109を再優先で使いたいということ (つまりopusをデフォルトで使いたくて、 その他はフォールバックみたいなもの)
  35. 35. c= にはIPアドレスを 35 m=audio 59540 RTP/SAVPF 109 9 0 8 c=IN IP4 123.123.123.123 a=candidate:0 1 UDP 2130379007 192.168.1.8 59540 typ host a=sendrecv a=end-of-candidates a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level a=ice-pwd:55104ba020a9bb780a06b8a8db085a6e a=ice-ufrag:24b20be8 a=mid:sdparta_0 a=rtcp-mux a=rtpmap:109 opus/48000/2 a=rtpmap:9 G722/8000/1 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=setup:actpass a=ssrc:2602856860 cname:{4518e50c-1e53-9640-88cb-56d3189fb9b8} INternetのIPv4アドレスで、 123.123.123.123 という値を使う
  36. 36. 以降は a= なので 全て拡張属性だが、WebRTC的に超重要 36 m=audio 59540 RTP/SAVPF 109 9 0 8 c=IN IP4 123.123.123.123 a=candidate:0 1 UDP 2130379007 192.168.1.8 59540 typ host a=sendrecv a=end-of-candidates a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level a=ice-pwd:55104ba020a9bb780a06b8a8db085a6e a=ice-ufrag:24b20be8 a=mid:sdparta_0 a=rtcp-mux a=rtpmap:109 opus/48000/2 a=rtpmap:9 G722/8000/1 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=setup:actpass a=ssrc:2602856860 cname:{4518e50c-1e53-9640-88cb-56d3189fb9b8} 拡張属性
  37. 37. a=candidate はICE候補 37 m=audio 59540 RTP/SAVPF 109 9 0 8 c=IN IP4 123.123.123.123 a=candidate:0 1 UDP 2130379007 192.168.1.8 59540 typ host a=sendrecv a=end-of-candidates a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level a=ice-pwd:55104ba020a9bb780a06b8a8db085a6e a=ice-ufrag:24b20be8 a=mid:sdparta_0 a=rtcp-mux a=rtpmap:109 opus/48000/2 a=rtpmap:9 G722/8000/1 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=setup:actpass a=ssrc:2602856860 cname:{4518e50c-1e53-9640-88cb-56d3189fb9b8} 2130378007という優先度で、192.168.1.8の UDPポート59540は通信できる可能性がある ローカルのICE候補ですよ ということ (詳細はRFC5245参照)
  38. 38. a=sendrecvは双方向通信という意味 38 m=audio 59540 RTP/SAVPF 109 9 0 8 c=IN IP4 123.123.123.123 a=candidate:0 1 UDP 2130379007 192.168.1.8 59540 typ host a=sendrecv a=end-of-candidates a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level a=ice-pwd:55104ba020a9bb780a06b8a8db085a6e a=ice-ufrag:24b20be8 a=mid:sdparta_0 a=rtcp-mux a=rtpmap:109 opus/48000/2 a=rtpmap:9 G722/8000/1 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=setup:actpass a=ssrc:2602856860 cname:{4518e50c-1e53-9640-88cb-56d3189fb9b8} 音声を送信・受信両方やりますよという意味
  39. 39. a=end-of-candidates はtrickleICEの完了 39 m=audio 59540 RTP/SAVPF 109 9 0 8 c=IN IP4 123.123.123.123 a=candidate:0 1 UDP 2130379007 192.168.1.8 59540 typ host a=sendrecv a=end-of-candidates a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level a=ice-pwd:55104ba020a9bb780a06b8a8db085a6e a=ice-ufrag:24b20be8 a=mid:sdparta_0 a=rtcp-mux a=rtpmap:109 opus/48000/2 a=rtpmap:9 G722/8000/1 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=setup:actpass a=ssrc:2602856860 cname:{4518e50c-1e53-9640-88cb-56d3189fb9b8} ICE候補収集(harvest)が終わったという意味 draft-ietf-mmusic-trickle-ice-02
  40. 40. a=extmap は RTP Headerを拡張する 40 m=audio 59540 RTP/SAVPF 109 9 0 8 c=IN IP4 123.123.123.123 a=candidate:0 1 UDP 2130379007 192.168.1.8 59540 typ host a=sendrecv a=end-of-candidates a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level a=ice-pwd:55104ba020a9bb780a06b8a8db085a6e a=ice-ufrag:24b20be8 a=mid:sdparta_0 a=rtcp-mux a=rtpmap:109 opus/48000/2 a=rtpmap:9 G722/8000/1 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=setup:actpass a=ssrc:2602856860 cname:{4518e50c-1e53-9640-88cb-56d3189fb9b8} urn:ietf:params:rtp-hdrext:ssrc-audio-level でRTP Headerを拡張する
  41. 41. a=ice-pwd と a=ice-ufrag は ICEのユーザ名・パスワード 41 m=audio 59540 RTP/SAVPF 109 9 0 8 c=IN IP4 123.123.123.123 a=candidate:0 1 UDP 2130379007 192.168.1.8 59540 typ host a=sendrecv a=end-of-candidates a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level a=ice-pwd:55104ba020a9bb780a06b8a8db085a6e a=ice-ufrag:24b20be8 a=mid:sdparta_0 a=rtcp-mux a=rtpmap:109 opus/48000/2 a=rtpmap:9 G722/8000/1 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=setup:actpass a=ssrc:2602856860 cname:{4518e50c-1e53-9640-88cb-56d3189fb9b8} ICEのユーザ名とパスワード
  42. 42. a=midは多重化の識別子 42 m=audio 59540 RTP/SAVPF 109 9 0 8 c=IN IP4 123.123.123.123 a=candidate:0 1 UDP 2130379007 192.168.1.8 59540 typ host a=sendrecv a=end-of-candidates a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level a=ice-pwd:55104ba020a9bb780a06b8a8db085a6e a=ice-ufrag:24b20be8 a=mid:sdparta_0 a=rtcp-mux a=rtpmap:109 opus/48000/2 a=rtpmap:9 G722/8000/1 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=setup:actpass a=ssrc:2602856860 cname:{4518e50c-1e53-9640-88cb-56d3189fb9b8} (セッション記述部から1行再掲) a=group:BUNDLE sdparta_0 sdparta_1
  43. 43. a=rtcp-mux はRTPとRTCPを多重化する 43 m=audio 59540 RTP/SAVPF 109 9 0 8 c=IN IP4 123.123.123.123 a=candidate:0 1 UDP 2130379007 192.168.1.8 59540 typ host a=sendrecv a=end-of-candidates a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level a=ice-pwd:55104ba020a9bb780a06b8a8db085a6e a=ice-ufrag:24b20be8 a=mid:sdparta_0 a=rtcp-mux a=rtpmap:109 opus/48000/2 a=rtpmap:9 G722/8000/1 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=setup:actpass a=ssrc:2602856860 cname:{4518e50c-1e53-9640-88cb-56d3189fb9b8} RTPとRTCPを多重化、詳細はRFC5761。 (本来は別々のPortだが、UDPホールパンチ等 のコストを減らせる)
  44. 44. a=setup:actpass でDTLSを使う 44 m=audio 59540 RTP/SAVPF 109 9 0 8 c=IN IP4 123.123.123.123 a=candidate:0 1 UDP 2130379007 192.168.1.8 59540 typ host a=sendrecv a=end-of-candidates a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level a=ice-pwd:55104ba020a9bb780a06b8a8db085a6e a=ice-ufrag:24b20be8 a=mid:sdparta_0 a=rtcp-mux a=rtpmap:109 opus/48000/2 a=rtpmap:9 G722/8000/1 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=setup:actpass a=ssrc:2602856860 cname:{4518e50c-1e53-9640-88cb-56d3189fb9b8} DTLSを使いはじめようという意味 RFC5763参照
  45. 45. a=ssrcはRTPで利用する 参加者の識別子のこと 45 m=audio 59540 RTP/SAVPF 109 9 0 8 c=IN IP4 123.123.123.123 a=candidate:0 1 UDP 2130379007 192.168.1.8 59540 typ host a=sendrecv a=end-of-candidates a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level a=ice-pwd:55104ba020a9bb780a06b8a8db085a6e a=ice-ufrag:24b20be8 a=mid:sdparta_0 a=rtcp-mux a=rtpmap:109 opus/48000/2 a=rtpmap:9 G722/8000/1 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=setup:actpass a=ssrc:2602856860 cname:{4518e50c-1e53-9640-88cb-56d3189fb9b8} SSRCはランダムに割り振られ変わる CNAMEはランダムに変わってもわかる ように紐付けする名前
  46. 46. Videoは略(RFC読もう) 46 m=audio 59540 RTP/SAVPF 109 9 0 8 c=IN IP4 123.123.123.123 a=candidate:0 1 UDP 2130379007 192.168.1.8 59540 typ host a=sendrecv a=end-of-candidates a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level a=ice-pwd:55104ba020a9bb780a06b8a8db085a6e a=ice-ufrag:24b20be8 a=mid:sdparta_0 a=rtcp-mux a=rtpmap:109 opus/48000/2 a=rtpmap:9 G722/8000/1 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=setup:actpass a=ssrc:2602856860 cname:{4518e50c-1e53-9640-88cb-56d3189fb9b8} m=video 53336 RTP/SAVPF 120 126 97 c=IN IP4 123.123.123.123 a=candidate:0 1 UDP 2130379007 192.168.1.8 53336 typ host a=sendrecv a=end-of-candidates a=fmtp:120 max-fs=12288;max-fr=60 a=fmtp:126 profile-level-id=42e01f;level-asymmetry-allowed=1;packetization-mode=1 a=fmtp:97 profile-level-id=42e01f;level-asymmetry-allowed=1 a=ice-pwd:55104ba020a9bb780a06b8a8db085a6e a=ice-ufrag:24b20be8 a=mid:sdparta_1 a=rtcp-mux a=rtpmap:120 VP8/90000 a=rtpmap:126 H264/90000 a=rtpmap:97 H264/90000 a=setup:actpass a=ssrc:2337298562 cname:{4518e50c-1e53-9640-88cb-56d3189fb9b8} メディア記述部[1] メディア記述部[2] 説明略!
  47. 47. ということで 47
  48. 48. 48 こう見えていたのが
  49. 49. v=0 o=- 7919192553830045546 2 IN IP4 127.0.0.1 s=- t=0 0 a=group:BUNDLE video a=msid-semantic: WMS IJaEuKH4cYDg9YxONEt16knZtoFuZZ4ioQRq m=video 51986 RTP/SAVPF 100 116 117 96 c=IN IP4 192.168.123.1 a=rtcp:51986 IN IP4 192.168.123.1 a=candidate:964645231 1 udp 2122260223 192.168.123.1 51986 typ host generation 0 a=candidate:964645231 2 udp 2122260223 192.168.123.1 51986 typ host generation 0 a=candidate:678703848 1 udp 2122194687 192.168.100.1 49989 typ host generation 0 a=candidate:678703848 2 udp 2122194687 192.168.100.1 49989 typ host generation 0 a=candidate:2178013618 1 udp 2122129151 192.168.33.1 55585 typ host generation 0 a=candidate:2178013618 2 udp 2122129151 192.168.33.1 55585 typ host generation 0 a=candidate:4278134664 1 udp 2122063615 192.168.1.8 50973 typ host generation 0 a=candidate:4278134664 2 udp 2122063615 192.168.1.8 50973 typ host generation 0 a=candidate:2013048223 1 tcp 1518280447 192.168.123.1 0 typ host tcptype active generation 0 a=candidate:2013048223 2 tcp 1518280447 192.168.123.1 0 typ host tcptype active generation 0 a=candidate:1727516184 1 tcp 1518214911 192.168.100.1 0 typ host tcptype active generation 0 a=candidate:1727516184 2 tcp 1518214911 192.168.100.1 0 typ host tcptype active generation 0 a=candidate:3478267202 1 tcp 1518149375 192.168.33.1 0 typ host tcptype active generation 0 a=candidate:3478267202 2 tcp 1518149375 192.168.33.1 0 typ host tcptype active generation 0 a=candidate:2960972664 1 tcp 1518083839 192.168.1.8 0 typ host tcptype active generation 0 a=candidate:2960972664 2 tcp 1518083839 192.168.1.8 0 typ host tcptype active generation 0 a=ice-ufrag:oaw7CiwPrr8SugF+ a=ice-pwd:6Wvv5xxI8Es575wFb5Houqlg a=ice-options:google-ice a=fingerprint:sha-256 11:01:4A:47:81:4F:EA:E0:0B:02:FA:9E:D4:CF:CF:95:C4:50:D6:CE:16:DF:37:AE:B0:FD:F2:B2:C5:E7:DD:30 a=setup:actpass a=mid:video a=extmap:2 urn:ietf:params:rtp-hdrext:toffset a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time a=sendrecv a=rtcp-mux a=rtpmap:100 VP8/90000 a=rtpmap:116 red/90000 a=rtpmap:117 ulpfec/90000 a=rtpmap:96 rtx/90000 a=fmtp:96 apt=100 49 こうなったはず!
  50. 50. おしまい! 50 NTTコミュニケーションズの 新卒採用(WebRTCに限らず)に 興味がある方がいれば @iwashi86 までご連絡ください! ちょっと宣伝
  • RuiKobayashi

    Feb. 19, 2020
  • ssusera02304

    May. 23, 2019
  • diskshima

    Jul. 31, 2017
  • hirsaeki

    Apr. 2, 2017
  • tdtsh

    Sep. 27, 2016
  • KenTakehara

    Sep. 13, 2016
  • KimuraHiroshi

    Apr. 4, 2016
  • KanSakamoto

    Jan. 28, 2016
  • yukainoue

    Jan. 20, 2016
  • AliceKuonji2012

    Jan. 16, 2016
  • skitaoka

    Nov. 18, 2015
  • YoshioOkumura

    Nov. 13, 2015
  • nagasama

    Aug. 15, 2015
  • yugoshimizu

    May. 10, 2015
  • goforbroke

    Mar. 12, 2015
  • SatoshiHiroi

    Mar. 12, 2015
  • hondahiroyuki

    Mar. 11, 2015
  • yoshiakisugimoto9

    Mar. 11, 2015
  • numeha

    Mar. 11, 2015
  • UshioShibusawa

    Mar. 11, 2015

注: http://www.slideshare.net/iwashi86/webrtc-for-sdp が更新版です。 WebRTC Meetup Tokyo #7にて発表したスライド。 資料で書ききれていない説明はこちらの動画から。 http://youtu.be/Y92Z349RhuI?t=2h5m29s

Vues

Nombre de vues

21 888

Sur Slideshare

0

À partir des intégrations

0

Nombre d'intégrations

11 372

Actions

Téléchargements

72

Partages

0

Commentaires

0

Mentions J'aime

23

×