webrtc框架sdp44

报价和响应都属于会话描述协议SDP )。

SDP是描述会话的协议,通常一次音视频通话最基本需要的媒体描述是什么?

最基本的是音视频数据格式和网络传输目的地,当然也包括其他配置信息。

为什么双方要描述媒体信息?

由于通信双方的媒体能力不正确,例如在视频通话中,一个客户端支持H264、VP8,另一个客户端只支持H264。 例双方正常动作时

的通话,视频格式那个只能使用H264。 因为在视频传输过程中编码和解码也有关系,所以用VP8的编码H264无法解码。

以下是OfferSDP的部分说明。

{

type=提供,##SDP型

数据=

{

说明: SDP :

v=0 ##SDP协议版本,值固定为0

o=-89818842460660585432使用inip 4127.0.0 # # IP v4

s=-

t=0

a=组:捆绑0 1

a=退出地图-允许混合

a=msid-semantic 3360 WMS0buaxaggmqzg 89 Eznopnajjj4m9i9 ka 246 Bt

m=音频9 UDP/TLS/RTP/saVPF 1110310490810610513110112113126 # #音频的传输描述UDP/TLS/RTP/SA VPF

c=IN IP4 0.0.0.0 ##网络连接IPV4

a=rtcp:9 IN IP4 0.0.0.0 ##显示了RTCP使用的IP和端口

a=ice-u标志: udx/# # ice用户名

a=ice-pwd : ovznphualcf 9u a2 hqg2px/# # ice密码

a=ICE-options:trickle ##表示本地支持的ice选项

a=fingerprint : sha-256 DC :4 A33608433606 F3360183: D :253:2 B :6 B :7 B :1 B :1 FA :1 FA : D 2:10 D 2:11 a :3:6 a :6:2 e 3: d 6: d 6: e 63360 c 433607436089:9 d # # dtls证书的说明

a=setup:actpass ##可以用作服务器,也可以用作客户端选项,由answer确定

a=mid:0 ##介质的id

##扩展头

a=EXT map :1 URN : IETF :参数: RTP-HDR EXT : SSRC -音频-级别# #介绍了本地支持的RTP扩展

a=ext map :2http://www.webrtc.org/experiments/RTP-HDR ext/ABS-send-time # #介绍了本地支持的RTP扩展

a=ext map :http://www.IETF.org/id /草案热电偶传输宽带抄表扩展- 01 # #在本地受支持

a=EXT map :4 URN : IETF :参数: RTP-HDR EXT : SDES 3360 MID # #介绍了本地支持的RTP扩展

a=EXT map :5 URN : IETF :参数: RTP-HDR EXT : SDES 3360 RTP-Stream-ID # #介绍了本地支持的RTP扩展

a=ext map :6 URN : IETF :参数: RTP-HDR EXT : SDES : repaired-RTP-Stream-ID # #是本地支持的RTP扩展

接收# # #流的方式接收发送

a=发送记录

a=msid :0 buaxaggmqzg 89 Eznopnajjj 4m9i9ka 246 BT 371 D4C 12-F60C-4 DF5-8D D6-1B 6D 25 AC 5a5e

rtcp rtc共享端口的多路复用

a=rtcp-mux

a=rtpmap:111 opus/48000/2 ##编码格式与m=audio之后的111个编号相对应

a=RTCP-FB :111传输- CC # #编码格式与m=audio后的111个号码相对应

a=fmtp :111分钟时间=10; useinbandfec=1 ##编码格式对应于m=audio后的111个编号

a=rtpmap:103 ISAC/16000 ##与音频编码格式、采样率m=audio之后的103个号码相对应

a=rtpmap:104 ISAC/32000 ##音频编码格式,采样率m=对应于音频之后的104个号码

a=rtpmap:9 G722/8000 ##对应于音频编码格式、采样率m=audio之后的9个号码

a=rtpmap:0 PCMU/8000 ##对应于音频编码格式、采样率m=audio之后的0的编号

a

=rtpmap:8 PCMA/8000 ## 音频编码格式、采样率 m=audio 后面的8的编号对应

a=rtpmap:106 CN/32000 ## 音频采样率 m=audio后面的106的编号对应

a=rtpmap:105 CN/16000 ## 音频采样率 m=audio后面的105的编号对应

a=rtpmap:13 CN/8000 ## 音频采样率 m=audio后面的13的编号对应

a=rtpmap:110 telephone-event/48000

a=rtpmap:112 telephone-event/32000

a=rtpmap:113 telephone-event/16000

a=rtpmap:126 telephone-event/8000

a=ssrc:3550220746 cname:A2E1dRlLVRKOhRFm

a=ssrc:3550220746 msid:0BUAXaGgmqZg89ezNoPNAJjJ4M9I9ka246bT 371d4c12-f60c-4df5-8dd6-1b6d25ac5a5e

a=ssrc:3550220746 mslabel:0BUAXaGgmqZg89ezNoPNAJjJ4M9I9ka246bT

a=ssrc:3550220746 label:371d4c12-f60c-4df5-8dd6-1b6d25ac5a5e

m=video 9 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 102 121 127 120 125 107 108 109 124 119 123 118 114 115 116 ##视频的传输方式 UDP/TLS/RTP/SAVPF

c=IN IP4 0.0.0.0

a=rtcp:9 IN IP4 0.0.0.0

a=ice-ufrag:uDX/ ##ICE用户名

a=ice-pwd:OVzNPHUALcf+9uA2H+Qg2px/ ##ICE密码

a=ice-options:trickle ##描述了本地支持的ICE选项

a=fingerprint:sha-256 DC:4A:84:6F:18:D3:25:2B:6E:7B:1E:FA:D2:01:82:AE:E7:5E:40:2A:8A:33:6A:32:2E:D6:D6:E6:C4:74:89:9D ##DTLS证书描述

a=setup:actpass

a=mid:1

a=extmap:14 urn:ietf:params:rtp-hdrext:toffset

a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time

a=extmap:13 urn:3gpp:video-orientation

a=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01

a=extmap:12 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay

a=extmap:11 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type

a=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-timing

a=extmap:8 http://www.webrtc.org/experiments/rtp-hdrext/color-space

a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid

a=extmap:5 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id

a=extmap:6 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id

a=sendrecv

a=msid:0BUAXaGgmqZg89ezNoPNAJjJ4M9I9ka246bT fa5bc625-14ac-4b7d-95ce-e7c5c589a1d6

a=rtcp-mux

a=rtcp-rsize

a=rtpmap:96 VP8/90000

a=rtcp-fb:96 goog-remb

a=rtcp-fb:96 transport-cc

a=rtcp-fb:96 ccm fir

a=rtcp-fb:96 nack

a=rtcp-fb:96 nack pli

a=rtpmap:97 rtx/90000

a=fmtp:97 apt=96

a=rtpmap:98 VP9/90000

a=rtcp-fb:98 goog-remb

a=rtcp-fb:98 transport-cc

a=rtcp-fb:98 ccm fir

a=rtcp-fb:98 nack

a=rtcp-fb:98 nack pli

a=fmtp:98 profile-id=0

a=rtpmap:99 rtx/90000

## 99 与 98关联通道; 98有数据丢失重传到99

a=fmtp:99 apt=98

a=rtpmap:100 VP9/90000

a=rtcp-fb:100 goog-remb

a=rtcp-fb:100 transport-cc

a=rtcp-fb:100 ccm fir

a=rtcp-fb:100 nack

a=rtcp-fb:100 nack pli

a=fmtp:100 profile-id=2

a=rtpmap:101 rtx/90000

a=fmtp:101 apt=100

a=rtpmap:102 H264/90000

a=rtcp-fb:102 goog-remb

a=rtcp-fb:102 transport-cc

a=rtcp-fb:102 ccm fir

a=rtcp-fb:102 nack

a=rtcp-fb:102 nack pli

a=fmtp:102 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f

a=rtpmap:121 rtx/90000

a=fmtp:121 apt=102

a=rtpmap:127 H264/90000

a=rtcp-fb:127 goog-remb

a=rtcp-fb:127 transport-cc

a=rtcp-fb:127 ccm fir

a=rtcp-fb:127 nack

a=rtcp-fb:127 nack pli

a=fmtp:127 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42001f

a=rtpmap:120 rtx/90000

a=fmtp:120 apt=127

a=rtpmap:125 H264/90000

a=rtcp-fb:125 goog-remb

a=rtcp-fb:125 transport-cc

a=rtcp-fb:125 ccm fir

a=rtcp-fb:125 nack

a=rtcp-fb:125 nack pli

a=fmtp:125 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f

a=rtpmap:107 rtx/90000

a=fmtp:107 apt=125

a=rtpmap:108 H264/90000

a=rtcp-fb:108 goog-remb

a=rtcp-fb:108 transport-cc

a=rtcp-fb:108 ccm fir

a=rtcp-fb:108 nack

a=rtcp-fb:108 nack pli

a=fmtp:108 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42e01f

a=rtpmap:109 rtx/90000

a=fmtp:109 apt=108

a=rtpmap:124 H264/90000

a=rtcp-fb:124 goog-remb

a=rtcp-fb:124 transport-cc

a=rtcp-fb:124 ccm fir

a=rtcp-fb:124 nack

a=rtcp-fb:124 nack pli

a=fmtp:124 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=4d001f

a=rtpmap:119 rtx/90000

a=fmtp:119 apt=124

a=rtpmap:123 H264/90000

a=rtcp-fb:123 goog-remb

a=rtcp-fb:123 transport-cc

a=rtcp-fb:123 ccm fir

a=rtcp-fb:123 nack

a=rtcp-fb:123 nack pli

a=fmtp:123 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=64001f

a=rtpmap:118 rtx/90000

a=fmtp:118 apt=123

a=rtpmap:114 red/90000 ##丢包的策略

a=rtpmap:115 rtx/90000

a=fmtp:115 apt=114

a=rtpmap:116 ulpfec/90000 ## 带宽允许的情况下,多传包

a=ssrc-group:FID 795740467 1564603005

a=ssrc:795740467 cname:A2E1dRlLVRKOhRFm

a=ssrc:795740467 msid:0BUAXaGgmqZg89ezNoPNAJjJ4M9I9ka246bT fa5bc625-14ac-4b7d-95ce-e7c5c589a1d6

a=ssrc:795740467 mslabel:0BUAXaGgmqZg89ezNoPNAJjJ4M9I9ka246bT

a=ssrc:795740467 label:fa5bc625-14ac-4b7d-95ce-e7c5c589a1d6

##

a=ssrc:1564603005 cname:A2E1dRlLVRKOhRFm

a=ssrc:1564603005 msid:0BUAXaGgmqZg89ezNoPNAJjJ4M9I9ka246bT fa5bc625-14ac-4b7d-95ce-e7c5c589a1d6

a=ssrc:1564603005 mslabel:0BUAXaGgmqZg89ezNoPNAJjJ4M9I9ka246bT

a=ssrc:1564603005 label:fa5bc625-14ac-4b7d-95ce-e7c5c589a1d6

“,

“type”:”offer”},

“from”:”061762″,

“media”:”video”,

“roomId”:”99″,

“sessionId”:”061762-347690″,

“to”:”347690″

}

备注:

可以通过修改a=rtpmap 编码的顺序来达到优先使用某种编码的目的

可以关注,后续会持续分享,大家多多交流。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注