新野微网站建设,修改 wordpress 模版,jsp网站开发答辩,传媒公司主要经营范围目录
一、SDP标准规范
1. SDP结构
2. SDP内容及type类型
二、WebRTC中的SDP结构 1. 媒体信息描述
#xff08;1#xff09;SDP中媒体信息格式
i. “artpmap”属性
ii. “afmtp”属性
#xff08;2#xff09;SSRC与CNAME
#xff08;3#xff09;举个例子
1SDP中媒体信息格式
i. “artpmap”属性
ii. “afmtp”属性
2SSRC与CNAME
3举个例子
4PlanB与UnifiedPlan
2. 网络描述
3. 安全描述
1应用级防护
2信令级防护
3数据级防护
4举个例子
aice-ufrag和aice-pwd
afingerprint
asetup
4. 服务质量描述
三、SDP完整例子
四、ORTC SDP是一个比较老的协议发布于2006年以typevalue的格式描述会话内容。WebRTC引入SDP来描述媒体信息用于媒体协商时决定双方是否可以进行通信。
一、SDP标准规范
1. SDP结构 SDP由两部分构成即会话描述和媒体描述。 在整个SDP中只能有一个会话描述而媒体描述可以有多个。通常SDP中包含两个媒体描述一个音频媒体描述一个视频媒体描述。除会话描述是对整个SDP起约束作用外各媒体描述之间的约束互不影响。 SDP的组织结构 2. SDP内容及type类型 在SDP规范中除定义了SDP的结构外还对SDP的内容做了规定。规范中要求所有的描述都以行为单位描述格式如下
type value 其中type表示描述的目标它由单个字符构成value是对type的解释或约束。会话与媒体都有各自的type。
会话包含的type有vprotocol version协议版本、oowner/creator and session identifier会话的创建者、ssession name会话名、ttime the session is active会话时长。媒体包含的type主要是mmedia媒体。除了上面介绍的type外还有一些type是公共的这些类型既可以出现在会话中也可以出现在媒体中如cconnection information网络信息、aattribute属性等。
//会话描述
v0
o- 3409821183230872764 2 IN IP4 127.0.0.1
…
//媒体描述
maudio 9 UDP/TLS/RTP/SAVPF 111 103 104 …
…
artpmap :111 opus /48000/2
artpmap :103 ISAC /16000
artpmap :104 ISAC /32000
…二、WebRTC中的SDP结构 WebRTC为了实现音视频实时通信对标准SDP做了很大调整WebRTC中的SDP并没有打破标准SDP的结构它同样包括会话描述和媒体描述两大部分。所不同的是它对媒体描述中的内容做了大幅增加以满足自身的需求。 按功能WebRTC中SDP的媒体描述内容可划分成四大类媒体信息、网络描述、安全描述以及服务质量描述。 WebRTC中的SDP 1. 媒体信息描述
1SDP中媒体信息格式 SDP中媒体信息的具体格式
mmedia port/numbers transport fmt …
media表示媒体类型可以是audio、video等与音频媒体信息相比视频媒体信息要复杂一些。port/numbers表示该媒体使用的端口号。对于WebRTC而言由于它不使用SDP中描述的网络信息所以该端口号对它没任何意义。transport表示使用的传输协议可以是UDP、TCP等。fmt表示媒体数据类型一般为PayloadType列表其具体含义需要使用“artpmap”属性做进一步阐述。 在WebRTC的SDP中“artpmap”“afmtp”属性随处可见。无论是音频媒体中还是视频媒体中都使用它们对媒体做进一步的解释。
i. “artpmap”属性 rtpmaprtp map用于解释PayloadType使用的编解码器及其参数。其格式定义在RFC4566中
artpmap:payload type encoding name/clock rate[/encodingparameters]
ii. “afmtp”属性 fmtpformat parameters用于指定媒体数据格式。“afmtp”属性的格式与rtpmap一样也是定义在RFC4566的第6节中
afmtp:format format specific parameters
2SSRC与CNAME 除了音频媒体信息和视频媒体信息外媒体描述中还包括一项重要内容就是SSRCSynchronization Source。SSRC是媒体源的唯一标识每一路媒体流都有一个唯一的SSRC来标识它。 cnamecanonical name通常称为别名可以用在域名解析中。当想为某个域名起一个别名的时候就可以使用它。如在直播推/拉流中想将某个云厂商的推流地址push.xxx.yun.xxx.com换成你自己的地址push.advancedu.com就可以使用cname。cname在SDP中的作用与域名解析中的作用是一致的就是为媒体流起了一个别名。在同一个视频媒体描述中的两个SSRC后面都跟着同样的cname说明这两个SSRC属于同一个媒体流。
3举个例子
...
maudio 9 UDP/TLS/RTP/SAVPF 111 103 104 9 0 8 106 105 13 110 112 113 126
...
artpmap :111 opus /48000/2
artcp -fb:111 transport -cc
afmtp :111 minptime 10; useinbandfec 1
artpmap :103 ISAC /16000
artpmap :104 ISAC /32000
artpmap :9 G722 /8000
...
assrc -group:FID 1531262201 2412323032
// 视频流的SSRC
assrc :1531262201 cname:Hmks0 2 NwywExBs
…
// 丢包重传流的SSRC
assrc :2412323032 cname:Hmks0 2 NwywExBs
1. transport为UDP/TLS/RTP/SAVFP表示底层使用了哪些传输协议 传输时底层使用UDP在UDP之上使用了DTLS协议来交换证书证书交换好后媒体数据由RTP进行传输RTP运行在UDP之上保证传输的可靠性媒体数据音视频数据的安全性是由SRTP负责的即对RTP包中的Body部分进行加密。此外传输时还使用RTCP的feekback机制对传输信息进行实时反馈SAVPF以便进行拥塞控制。
2. fmtlist的值为一串从111到126的数字每个数字代表一个PayloadType不同的PayloadType表示媒体数据使用了不同的编解码器或编解码器参数。媒体描述还有很多细节是无法通过一条“m”行就能够描述清楚的必须通过“artpmap”对其做进一步解释才行。
3. Payload Type值为111的编码器是Opus其时钟频率采样率为48000音频通道数为2。同理PayloadType值为103的编码器是ISAC采样率为16000PayloadType值为104的编码器也是ISAC只不过其采样率变成了32000PayloadType值为9的编码器是G722采样率是8000……
4. afmtp :111 minptime 10; useinbandfec 1PayloadType值为111的数据Opus数据以10ms长的音频数据为一帧并且数据是经FECForward Error Correction前向纠错编码的。其中“usein bandfec1”是WebRTC针对Opus增加的fmtp值。
5. ssrc-group指明两个SSRC是有关联关系的后一个SSRC2412323032是前一个SSRC1531262201的重传流。也就是说1531262201是真正代表视频流的SSRC而2412323032是视频流1531262201丢包时使用的SSRC这就是为什么在同一个媒体描述中会有两个SSRC。所以虽然在同一个视频描述中有两个SSRC但对于该视频来说仍然只有唯一的SSRC用来标识它。
6. SSRC为1531262201的cname名字与SSRC为2412323032的cname名字是一模一样的说明这两个SSRC属于同一个媒体流。
4PlanB与UnifiedPlan 目前WebRTC中的SDP包括两种规格即PlanB和UnifiedPlan。PlanB由标准SDP演化而来而UnifiedPlan则是代替PlanB的SDP新规格。
在PlanB规格中只有两个媒体描述即音频媒体描述maudio……和视频媒体描述mvideo……。如果要传输多路视频则它们在视频媒体描述中需要通过SSRC来区分。在UnifiedPlan中可以有多个媒体描述因此对于上面多路视频的情况将其拆成多个视频媒体描述多行“mvideo……”即可。
2. 网络描述 WebRTC通常使用UDP用户数据报协议来传输数据。在UDP之上WebRTC使用RTP实时传输协议来传输音频和视频数据。RTP报文由头部Header和有效载荷Payload两部分组成。头部包含了一些元数据信息如序列号、时间戳和负载类型等。有效载荷则是音频或视频的实际数据。 这种基于UDP的传输方式可以提供较低的延迟和更好的实时性能适用于实时通信应用如音视频通话和实时流媒体等。 RTP报文的头部Header又包括常规Header和扩展Header扩展Header保存在SDP中。如“aextmap”extmap是extension map的缩写即RTP Header扩展映射表。
3. 安全描述 使用WebRTC实现对音视频通信产品进行防护有三个级别分别是应用级防护、信令级防护以及数据级防护。
1应用级防护 用户在使用音视频通信产品时一般都要先进行注册然后通过用户名/密码的方式登录到应用系统上。这一级防护称为应用级防护但这一级防护并不属于WebRTC的范畴。
2信令级防护 当用户通过第一级防护后就可以获得WebRTC信令服务器的地址并通过信令服务器进行媒体协商。媒体协商成功后通信双方便可以从彼此的SDP中获取对方的用户名/密码即ice-ufrag和ice-pwd信息。这两个信息的作用是验证用户的合法性其完整过程如下通信的双方彼此发送STUN Binding请求带着ice-ufrag和ice-pwd给对方当对方收到请求后会验证请求中的ice-ufrag和ice-pwd是否与自己SDP中的一致如果一致则说明该用户是合法的用户否则说明它是非法用户。
3数据级防护 当第二级防护通过之后通信的双方还会使用DTLS协议彼此交换证书证书中保存的最重要的信息就是公钥。例如ClientA向ClientB发送媒体数据ClientA需要用ClientB的公钥对数据加密加密后的数据再打包成SRTP[插图]发送给ClientB接收端ClientB需要使用自己的私钥才能将加密的数据解密。
4举个例子
…
m …
…
aice -ufrag:kSq
aice -pwd:MRW8liIi4S8OCRlMSftfJWF
…
afingerprint:sha -256 DB:43:34:45:52:D3:78:A3:92:6E:BB:FB:83:2E:7F:22:49:5B:A7:73:D4:E1:52:1C:67:7F:7F:EA:95:F1:05:50
asetup:actpass
… aice-ufrag和aice-pwd ice-ufrag表示username用户名ice-pwd表示password密码ice-ufrag和ice-pwd用于验证WebRTC客户端是否有效。 afingerprint 用于验证加密证书的有效性。当通信双方通过DTLS协议交换证书之前各端会先给各自的证书生成一个指纹fingerprint然后将指纹放到SDP中通过信令交换给对方。通过DTLS协议交换证书后双方会对拿到的证书重新生成指纹。然后将生成的指纹与SDP中的指纹进行比较如果两者一致则说明证书在传输中没有被篡改可以放心使用否则说明证书被篡改此时连接创建失败。 asetup 用于指明WebRTC终端使用DTLS协议交换证书时的角色。分别为active、passive以及actpass
active表示终端的角色为客户端passive表示终端的角色为服务端actpassactive与passive组合而成表示终端既可以是客户端又可以是服务端最终的角色由另一端的角色确定。 一般情况下第一个加入房间的终端默认为actpass后来加入的终端为active。因此通过“asetup”的属性值可以知道使用DTLS协议时通信双方哪个是客户端哪个是服务端。
4. 服务质量描述 媒体描述中的服务质量描述是由“artcp-fb”属性描述的。在WebRTC中rtcp-fbrtcp feedback有两层含义一是指RTCP消息中专门反馈信息的一类消息二是指SDP中使用的“artcp-fb”属性该属性可以用来设置WebRTC终端支持哪些rtcp feedback消息。
三、SDP完整例子
1 //
2 // SDP 会话描述
3 //
4 // 版本信息
5 v0
6 // 会话的创建者
7 o- 8567802084787497323 2 IN IP4 127.0.0.1
8 // 会话名
9 s-
10 // 会话时长
11 t0 0
12 // 音视频传输采用多路复用方式 通过同一个通道传输
13 // 这样可以减少对ICE 资源的消耗
14 agroup:BUNDLE 0 1
15 //WMS(WebRTC Media Stream)
16 // 因为上面的BUNDLE 使得音视频可以复用传输通道
17 // 所以WebRTC 定义一个媒体流来对音视频进行统一描述
18 // 媒体流中可以包含多路轨 音频轨、视频轨… … )
19 // 每个轨对应一个SSRC
20 amsid -semantic: WM S 3eofXQZ24BqbQPRkcL49QddC5s84gauyOuUt
21 //
22 // 音视频媒体描述
23 //
24 // 音频媒体描述
25 // 端口9 忽略 端口设置为0 表示不传输音频
26 maudio 9 UDP/TLS/RTP/SAVPF 111 103 104 9 0 8 106 105 13 110 112 113 126
27 // 网络描述, 忽略!WebRTC 不使用该属性
28 cIN IP4 0.0.0.0
29 // 忽略!WebRTC 不使用该属性
30 artcp:9 IN IP4 0.0.0.0
31 // 用于ICE 有效用户的验证
32 // ufrag 表示用户名( 随机值)
33 aice -ufrag:r8X
34 // 密码
35 aice -pwd:MdLpm2pegfysJ/VMCCGtZRpF
36 // 收信candidate 方式
37 aice -options:trickle
38 // 证书指纹 用于验证DTLS 证书有效性
39 afingerprint:sha -256 53:08:1A:66:24: C7 :45:31:0A:EA:9E:59:97: A9 :15:3A:EC :60:1F:85:85:5B:B8:EC:D4 :77:78:9A:46:09:03:2A
40 // 用于指定DTLS 用户角色
41 asetup:actpass
42 // BUNDLE 使用 0 表示音频
43 amid:0
44 // 音频传输时RTP 支持的扩展头
45 // 发送端是否音频level 扩展 可参考RFC6464
46 aextmap :1 urn:ietf:params:rtp -hdrext:ssrc -audio -level
47 //NTP 时间扩展头
48 aextmap :2 http://www.webrtc.org/experiments/rtp -hdrext/abs -send -time
49 //transport -CC 的扩展头
50 aextmap :3 http://www.ietf.org/id/draft -holmer -rmcat -transport -wide -cc -extensions -01
51 // 与RTCP 中的SDES(Source Description) 相关的扩展头
52 // 通过RTCP 的SDES 传输mid
53 aextmap :4 urn:ietf:params:rtp -hdrext:sdes:mid
54 // 通过RTCP 的SDES 传输rtp -stream -id
55 aextmap :5 urn:ietf:params:rtp -hdrext:sdes:rtp -stream -id
56 // 通过RTCP 的SDES 传输重传时的rtp -stream -id
57 aextmap :6 urn:ietf:params:rtp -hdrext:sdes:repaired -rtp -stream -id
58 // 音频数据传输方向
59 // sendrecv 既可以接收音频 又可以发送音频
60 asendrecv
61 // 记录音频与媒体流的关系
62 amsid:3 eofXQZ24BqbQPRkcL49QddC5s84gauyOuUt 67eb8a85 -f7c0 -4cad -bd62 -41 cae9517041
63 //RTCP 与RTP 复用传输通道
64 artcp -mux
65 //PT111 代表音频编码器opus/ 采样率48000/ 双通道
66 artpmap :111 opus /48000/2
67 // 使用Opus 时 支持RTCP 中的Transport -CC 反馈报文
68 artcp -fb:111 Transport -cc
69 // 使用Opus 时 每个视频帧的最小间隔为10ms , 使用带内频率
70 afmtp :111 minptime 10; useinbandfec 1
71 //PT103 代表音频编码器ISAC/ 采样率16000
72 artpmap :103 ISAC /16000
73 //PT104 代表音频编码器ISAC/ 采样率32000
74 artpmap :104 ISAC /32000
75 //PT9 代表音频编码器G722/ 采样率8000
76 artpmap :9 G722 /8000
77 //PT0 未压缩音频数据PCMU/ 采样率8000
78 artpmap :0 P C M U/8000
79 //PT8 未压缩音频数据PCMA/ 采样率8000
80 artpmap :8 P C M A/8000
81 //PT106 舒适噪声(Comfort Noise , CN)/ 采样率32000
82 artpmap :106 CN /32000
83 //PT106 舒适噪声/ 采样率16000
84 artpmap :105 CN /16000
85 //PT106 舒适噪声/ 采样率8000
86 artpmap :13 CN /8000
87 //PT110 SIP DTMF 电话按键/ 采样率48000
88 artpmap :110 telephone -event /48000
89 //PT112 SIP DTMF 电话按键/ 采样率32000
90 artpmap :112 telephone -event /32000
91 //PT113 SIP DTMF 电话按键/ 采样率16000
92 artpmap :113 telephone -event /16000
93 //PT116 SIP DTMF 电话按键/ 采样率8000
94 artpmap :126 telephone -event /8000
95 // 源933825788 的别名
96 assrc :933825788 cname:Tf3LnJwwJc0lgnxC
97 // 记录源SSRC 与音频轨和媒体流的关系
98 assrc :933825788 msid:3 eofXQZ24BqbQPRkcL49QddC5s84gauyOuUt 67eb8a85 -f7c0 -4cad -bd62 -41 cae9517041
99 // 记录源SSRC :933825788 属于哪个媒体流
100 assrc :933825788 mslabel :3 eofXQZ24BqbQPRkcL49QddC5s84gauyOuUt
101 // 记录源SSRC :933825788 属于哪个音频轨
102 assrc :933825788 label :67 eb8a85 -f7c0 -4cad -bd62 -41 cae9517041
103 //
104 // 视频媒体描述
105 //
106 // 视频媒体描述
107 mvideo 9 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 102 121 127 120 125 107
108 109 124 119 123 108 // 网络描述, 忽略!WebRTC 不使用该属性
109 cIN IP4 0.0.0.0
110 忽略!WebRTC 不使用该属性
111 artcp:9 IN IP4 0.0.0.0
112 // 与音频一样 用于验证用户的有效性
113 // 如果音视频复用传输通道 只用其中一个即可
114 aice -ufrag:r8X
115 aice -pwd:MdLpm2pegfysJ/VMCCGtZRpF
116 // 与音频一样 设置收集Candidate 的方式
117 aice -options:trickle
118 // 证书指纹 用于验证DTLS 证书有效性
119 afingerprint:sha -256 53:08:1A:66:24: C7 :45:31:0A:EA:9E:59:97: A9 :15:3A:EC :60:1F:85:85:5B:B8:EC:D4 :77:78:9A:46:09:03:2A
120 // 用于指定DTLS 用户角色
121 asetup:actpass
122 // media id 1
123 amid:1
124 // 视频传输时RTP 支持的扩展头
125 // toffset(TransportTime Offset)
126 //RTP 包中的timestamp 与实际发送时的偏差
127 aextmap :14 urn:ietf:params:rtp -hdrext:toffset
128 aextmap :2 http://www.webrtc.org/experiments/rtp -hdrext/abs -send -time
129 // 视频旋转角度的扩展头
130 aextmap :13 urn:3gpp:video -orientation
131 //Transport -CC 扩展头
132 aextmap :3 http://www.ietf.org/id/draft -holmer -rmcat -transport -wide -cc -extensions -01
133 // 发送端控制接收端渲染视频的延时时间
134 aextmap :12 http://www.webrtc.org/experiments/rtp -hdrext/playout -delay
135 // 指定视频的内容 它有两种值 未指定和屏幕共享
136 aextmap :11 http://www.webrtc.org/experiments/rtp -hdrext/video -content -type
137 // 该扩展仅在每个视频帧最后一个包中出现
138 // 其存放6 个时间戳 分别为
139 //1. 编码开始时间
140 //2. 编码完成时间
141 //3. 打包完成时间
142 //4. 离开pacer 的最后一个包的时间
143 //5. 预留时间1
144 //6. 预留时间2
145 aextmap :7 http://www.webrtc.org/experiments/rtp -hdrext/video -timing
146 aextmap :8 http://www.webrtc.org/experiments/rtp -hdrext/color -space
147 // 携带mid 的扩展头
148 aextmap :4 urn:ietf:params:rtp -hdrext:sdes:mid
149 // 携带rtp -stream -id 的扩展头
150 aextmap :5 urn:ietf:params:rtp -hdrext:sdes:rtp -stream -id
151 // 重传时携带的rtp -stream -id 的扩展头
152 aextmap :6 urn:ietf:params:rtp -hdrext:sdes:repaired -rtp -stream -id
153 // 视频数据传输方向
154 // sendrecv 既可以发送 又可以接收视频数据
155 asendrecv
156 // media stream id
157 amsid:3 eofXQZ24BqbQPRkcL49QddC5s84gauyOuUt f5d231d9 -f0f7 -4cd2 -b2bc -424 f37dfd003
158 //RTCP 与RTP 复用端口
159 artcp -mux
160 // 减少RTCP 尺寸
161 artcp -rsize
162 //PT96 代表音频编码器VP8/ 采样率为90000
163 artpmap :96 VP8 /90000
164 //PT96 支持RTCP 协议中的Goog -REMB 反馈
165 artcp -fb:96 goog -remb
166 //PT96 支持RTCP 协议中的Transport -CC 反馈
167 artcp -fb:96 transport -cc
168 //PT96 支持RTCP 协议中的fir 反馈
169 artcp -fb:96 ccm fir
170 //PT96 支持RTCP 中的nack 反馈
171 artcp -fb:96 nack
172 //PT96 支持RTCP 中的pli 反馈
173 artcp -fb:96 nack pli
174 //PT97 代表重传数据/ 采样率为90000
175 artpmap :97 rtx /90000
176 //PT97 与96 是绑定关系 说明97 是96 的重传数据
177 afmtp :97 apt 96
178 //PT98 代表音频编码器VP9/ 采样率为90000
179 artpmap :98 VP9 /90000
180 //PT98 支持RTCP 中的Goog -REMB 反馈
181 artcp -fb:98 goog -remb
182 //PT98 支持RTCP 中的Transport -CC 反馈
183 artcp -fb:98 transport -cc
184 //PT98 支持RTCP 中的fir 反馈
185 artcp -fb:98 ccm fir
186 //PT98 支持RTCP 中的nack 反馈
187 artcp -fb:98 nack
188 //PT98 支持RTCP 中的pli 反馈
189 artcp -fb:98 nack pli
190 // 使用VP9 时 视频帧的profile id 为0
191 //VP9 一共有4 种profile 1,2,3,4
192 //0 表示支持8bit 位深
193 // 和YUV4 :2:0 格式
194 afmtp :98 profile -id0
195 //PT99 代表重传数据/ 采样率90000
196 artpmap :99 rtx /90000
197 //PT99 与98 是绑定关系 因此99 是98 的重传数据
198 afmtp :99 apt 98
199 //PT100 代表音频编码器VP9/ 采样率90000
200 artpmap :100 VP9 /90000
201 //PT100 支持RTCP 中的Goog -REMB 反馈
202 artcp -fb:100 goog -remb
203 //PT100 支持RTCP 中的Transport -CC 反馈
204 artcp -fb:100 transport -cc
205 //PT100 支持RTCP 中的fir 反馈
206 artcp -fb:100 ccm fir
207 //PT100 支持RTCP 中的nack 反馈
208 artcp -fb:100 nack
209 //PT100 支持RTCP 中的pli 反馈
210 artcp -fb:100 nack pli
211 // 使用VP9 时 视频帧的profile id 为2
212 //VP9 一共有4 种profile 1,2,3,4
213 //2 表示支持10bit 、12bit 位深
214 // 和YUV4 :2:0 格式
215 afmtp :100 profile -id2
216 //PT101 代表重传数据/ 采样率为90000
217 artpmap :101 rtx /90000
218 //PT101 与100 是绑定关系 因此101 是100 的重传数据
219 afmtp :101 apt 100
220 //PT102 代表音频编码器H264/ 采样率为90000
221 artpmap :102 H264 /90000
222 //PT102 支持RTCP 中的Goog -REMB 反馈
223 artcp -fb:102 goog -remb
224 //PT102 支持RTCP 中的Transport -CC 反馈
225 artcp -fb:102 transport -cc
226 //PT102 支持RTCP 中的fir 反馈
227 artcp -fb:102 ccm fir
228 //PT102 支持RTCP 中的nack 反馈
229 artcp -fb:102 nack
230 //PT102 支持RTCP 中的pli 反馈
231 artcp -fb:102 nack pli
232 afmtp :102 level -asymmetry -allowed 1; packetization -mode 1; profile -level -id 42001f
233 //PT121 代表重传数据/ 采样率为90000
234 artpmap :121 rtx /90000
235 //PT121 与102 是绑定关系 因此121 是102 的重传数据
236 afmtp :121 apt 102
237 //PT127 代表音频编码器H264/ 采样率为90000
238 artpmap :127 H264 /90000
239 //PT127 支持RTCP 中的Goog -REMB 反馈
240 artcp -fb:127 goog -remb
241 //PT127 支持RTCP 中的Transport -CC 反馈
242 artcp -fb:127 transport -cc
243 //PT127 支持RTCP 中的fir 反馈
244 artcp -fb:127 ccm fir
245 //PT127 支持RTCP 中的nack 反馈
246 artcp -fb:127 nack
247 //PT127 支持RTCP 中的pli 反馈
248 artcp -fb:127 nack pli
249 afmtp :127 level -asymmetry -allowed 1; packetization -mode 0; profile -level -id 42001f
250 //PT120 代表重传数据/ 采样率为90000
251 artpmap :120 rtx /90000
252 //PT127 与120 是绑定关系 因此127 是120 的重传数据
253 afmtp :120 apt 127
254 //PT125 代表音频编码器H264/ 采样率为90000
255 artpmap :125 H264 /90000
256 //PT125 支持RTCP 中的Goog -REMB 反馈
257 artcp -fb:125 goog -remb
258 //PT125 支持RTCP 中的Transport -CC 反馈
259 artcp -fb:125 transport -cc
260 //PT127 支持RTCP 中的fir 反馈
261 artcp -fb:125 ccm fir
262 //PT127 支持RTCP 中的nack 反馈
263 artcp -fb:125 nack
264 //PT127 支持RTCP 中的pli 反馈
265 artcp -fb:125 nack pli
266 afmtp :125 level -asymmetry -allowed 1; packetization -mode 1; profile -level -id42 e01f
267 //PT107 代表重传数据/ 采样率为90000
268 artpmap :107 rtx /90000
269 //PT107 与125 是绑定关系 因此177 是125 的重传数据
270 afmtp :107 apt 125
271 //PT108 代表音频编码器H264/ 采样率为90000
272 artpmap :108 H264 /90000
273 //PT108 支持RTCP 中的Goog -REMB 反馈
274 artcp -fb:108 goog -remb
275 //PT108 支持RTCP 中的Transport -CC 反馈
276 artcp -fb:108 transport -cc
277 //PT108 支持RTCP 中的fir 反馈
278 artcp -fb:108 ccm fir
279 //PT108 支持RTCP 中的nack 反馈
280 artcp -fb:108 nack
281 //PT108 支持RTCP 中的pli 反馈
282 artcp -fb:108 nack pli
283 afmtp :108 level -asymmetry -allowed 1; packetization -mode 0; profile -level -id42 e01f
284 //PT109 代表重传数据/ 采样率为90000
285 artpmap :109 rtx /90000
286 //PT109 与108 是绑定关系 因此109 是108 的重传数据
287 afmtp :109 apt 108
288 //PT124 代表视频使用red fec 技术/ 采样率为90000
289 artpmap :124 red /90000
290 //PT119 代表重传数据/ 采样率为90000
291 artpmap :119 rtx /90000
292 //PT 1119 与124 是绑定关系 因此119 是124 的重传数据
293 afmtp :119 apt 124
294 //PT123 代表视频使用ulp fec 技术/ 采样率为90000
295 artpmap :123 ulpfec /90000
296 //ssrc -group 表示几个源之间的关系
297 // 其格式为assrc -group:semantics ssrc -id … 参考RFC5576
298 //FID(Flow ID), 表示这几个源都是数据流
299 // 其中 1101026881 是正常的视频流
300 // 而后面的ssrc 35931176 是前面的ssrc 的重传流
301 assrc -group:FID 1101026881 35931176
302 // 源1101026881 的别名为Tf3LnJwwJc0lgnxC
303 assrc :1101026881 cname:Tf3LnJwwJc0lgnxC
304 // 下面的描述行指明了源1101026881 与媒体流ID(Media Stream ID) 和轨的关系
305 // 在一个媒体流中可以有多路轨(track), 每个轨对应一个ssrc
306 assrc :1101026881 msid:3 eofXQZ24BqbQPRkcL49QddC5s84gauyOuUt f5d231d9 -f0f7 -4cd2 -b2bc -424 f37dfd003
307 // 下面描述行指明了源1101026881 所属的媒体流的label(Media Stream lable)
308 assrc :1101026881 mslabel :3 eofXQZ24BqbQPRkcL49QddC5s84gauyOuUt
309 // 下面描述行指明了源1101026881 对应的媒体轨 同时它也是视频设备的label
310 assrc :1101026881 label:f5d231d9 -f0f7 -4cd2 -b2bc -424 f37dfd003
311 // 源35931176 的别名为Tf3LnJwwJc0lgnxC
312 assrc :35931176 cname:Tf3LnJwwJc0lgnxC
313 // 下面的信息与源1101026881 的信息相同 不做解释
314 assrc :35931176 msid:3 eofXQZ24BqbQPRkcL49QddC5s84gauyOuUt f5d231d9 -f0f7 -4cd2 -b2bc -424 f37dfd003
315 assrc :35931176 mslabel :3 eofXQZ24BqbQPRkcL49QddC5s84gauyOuUt
316 assrc :35931176 label:f5d231d9 -f0f7 -4cd2 -b2bc -424 f37dfd003
四、ORTC SDP太“古老”了。本不应该在WebRTC这样“新”的项目中引入该协议很多人对此也提出了同样的质疑因此以微软为首的ORTC组织提出了替换SDP的解决方案。 ORTCObject Real-Time Communication为开发基于WebRTC的应用程序提供了非常强大的API其底层不再使用SDP同时也不再需要Offer/Answer机制而是将原来SDP中的内容分别放到Sender、Receiver、Transport对象中通过对象完成之前的工作。 文章转载自: http://www.morning.ryfq.cn.gov.cn.ryfq.cn http://www.morning.zdfrg.cn.gov.cn.zdfrg.cn http://www.morning.pzqnj.cn.gov.cn.pzqnj.cn http://www.morning.kdjtt.cn.gov.cn.kdjtt.cn http://www.morning.nqgds.cn.gov.cn.nqgds.cn http://www.morning.rwyd.cn.gov.cn.rwyd.cn http://www.morning.zqcsj.cn.gov.cn.zqcsj.cn http://www.morning.jcffp.cn.gov.cn.jcffp.cn http://www.morning.twwts.com.gov.cn.twwts.com http://www.morning.rykw.cn.gov.cn.rykw.cn http://www.morning.wnjrf.cn.gov.cn.wnjrf.cn http://www.morning.sjpht.cn.gov.cn.sjpht.cn http://www.morning.wbnsf.cn.gov.cn.wbnsf.cn http://www.morning.pfggj.cn.gov.cn.pfggj.cn http://www.morning.wwwghs.com.gov.cn.wwwghs.com http://www.morning.lqznq.cn.gov.cn.lqznq.cn http://www.morning.tymwx.cn.gov.cn.tymwx.cn http://www.morning.hbhnh.cn.gov.cn.hbhnh.cn http://www.morning.rbmnq.cn.gov.cn.rbmnq.cn http://www.morning.ltrz.cn.gov.cn.ltrz.cn http://www.morning.mzhjx.cn.gov.cn.mzhjx.cn http://www.morning.ljxps.cn.gov.cn.ljxps.cn http://www.morning.tgydf.cn.gov.cn.tgydf.cn http://www.morning.kwrzg.cn.gov.cn.kwrzg.cn http://www.morning.qwbtr.cn.gov.cn.qwbtr.cn http://www.morning.lwtfr.cn.gov.cn.lwtfr.cn http://www.morning.qmwzz.cn.gov.cn.qmwzz.cn http://www.morning.tfrmx.cn.gov.cn.tfrmx.cn http://www.morning.sqnrz.cn.gov.cn.sqnrz.cn http://www.morning.ykqbs.cn.gov.cn.ykqbs.cn http://www.morning.rybr.cn.gov.cn.rybr.cn http://www.morning.psxwc.cn.gov.cn.psxwc.cn http://www.morning.ghzfx.cn.gov.cn.ghzfx.cn http://www.morning.txtzr.cn.gov.cn.txtzr.cn http://www.morning.mmxnb.cn.gov.cn.mmxnb.cn http://www.morning.tzzfy.cn.gov.cn.tzzfy.cn http://www.morning.xsklp.cn.gov.cn.xsklp.cn http://www.morning.wrlxt.cn.gov.cn.wrlxt.cn http://www.morning.bkpbm.cn.gov.cn.bkpbm.cn http://www.morning.snjpj.cn.gov.cn.snjpj.cn http://www.morning.yfffg.cn.gov.cn.yfffg.cn http://www.morning.thwhn.cn.gov.cn.thwhn.cn http://www.morning.mqdr.cn.gov.cn.mqdr.cn http://www.morning.cwpny.cn.gov.cn.cwpny.cn http://www.morning.hjbrd.cn.gov.cn.hjbrd.cn http://www.morning.bslkt.cn.gov.cn.bslkt.cn http://www.morning.mtrz.cn.gov.cn.mtrz.cn http://www.morning.fwkq.cn.gov.cn.fwkq.cn http://www.morning.bmmyx.cn.gov.cn.bmmyx.cn http://www.morning.abgy8.com.gov.cn.abgy8.com http://www.morning.fncgw.cn.gov.cn.fncgw.cn http://www.morning.yfcyh.cn.gov.cn.yfcyh.cn http://www.morning.npbkx.cn.gov.cn.npbkx.cn http://www.morning.gwjqq.cn.gov.cn.gwjqq.cn http://www.morning.kzxlc.cn.gov.cn.kzxlc.cn http://www.morning.hqgxz.cn.gov.cn.hqgxz.cn http://www.morning.lpnb.cn.gov.cn.lpnb.cn http://www.morning.txjrc.cn.gov.cn.txjrc.cn http://www.morning.qckwj.cn.gov.cn.qckwj.cn http://www.morning.jxgyg.cn.gov.cn.jxgyg.cn http://www.morning.ltzkk.cn.gov.cn.ltzkk.cn http://www.morning.kfqzd.cn.gov.cn.kfqzd.cn http://www.morning.ggnfy.cn.gov.cn.ggnfy.cn http://www.morning.nrcbx.cn.gov.cn.nrcbx.cn http://www.morning.lfttb.cn.gov.cn.lfttb.cn http://www.morning.zfcfx.cn.gov.cn.zfcfx.cn http://www.morning.hqmfn.cn.gov.cn.hqmfn.cn http://www.morning.sogou66.cn.gov.cn.sogou66.cn http://www.morning.nmyrg.cn.gov.cn.nmyrg.cn http://www.morning.csnmd.cn.gov.cn.csnmd.cn http://www.morning.wfpmt.cn.gov.cn.wfpmt.cn http://www.morning.mnmrx.cn.gov.cn.mnmrx.cn http://www.morning.etsaf.com.gov.cn.etsaf.com http://www.morning.jpfpc.cn.gov.cn.jpfpc.cn http://www.morning.lgphx.cn.gov.cn.lgphx.cn http://www.morning.mtktn.cn.gov.cn.mtktn.cn http://www.morning.hylbz.cn.gov.cn.hylbz.cn http://www.morning.chmcq.cn.gov.cn.chmcq.cn http://www.morning.gwmjy.cn.gov.cn.gwmjy.cn http://www.morning.bccls.cn.gov.cn.bccls.cn