webrtc的sdp相关结构1

sdp结构简介

sdp在JsepSessionDescription这一个结构中,下面主要分为SessionDescription和JsepCandidateCollection,本文介绍SessionDescription

根据webrtc的SessionDescription数据结构,主要分为3个,分别为ContentInfos,

TransportInfos和ContentGroups。他们都是vector。其中体量最大的数据结构是ContentInfos,里面存放有编解码能力,ssrc的相关信息,带宽能力等等。

其次是TransportInfos,里面存放的是用于打洞的ice用户名和密码等。

最小的结构是ContentGroups,里面存放的是一些字符串

SessionDescription具体结构

1.TransportInfo

1.1 content_name: 用于a=mid属性,表示对应media的名称

1.2 description:详见后面第7条

2.ContentGroup

2.1 semantics_:类型,有bundle。a=group

2.2 content_names_:一个group的media的名字的集合,比如包含”video”,”audio”

3.ContentInfo:

3.1 name:和TransportInfo中的name一样

3.2 type:协议是否是SCTP协议

3.3 rejected:是否拒绝对方的media,如果拒绝,会设置端口为0。

3.4 bundle_only:a=bundle-only属性,表示和其他media公用一个端口,前提是该media的port需要设置为0,如果不是0,就默认不是共用端口(备注:同时需要a=group属性来做支撑,不然怎么知道该media和哪个media进行的绑定)

3.5 description:详见后面第4条

  1. MediaContentDescription(该结构在ContentInfo中的description)

4.1 rtcp_mux_:rtp属性和rtcp属性是否公用一个端口, a=rtcp-mux

4.2 rtcp_reduced_size_:a=rtcp-rsize,表示缩小rtcp包,有固定算法

4.3 bandwidth_:带宽属性,a=bs

4.4 protocol_:media的类型,m= protocol属性

4.5 cryptos_

4.6 crypto_required_

4.7 rtp_header_extensions_:a=extmap

4.8 rtp_header_extensions_set_:有extension设置,就为true

4.9 multistream_:如果客户端支持多个流,就为true(代码中表示有rtx或者flexfec的流,就会设置为true)

4.10 streams_:存放ssrc的相关信息

4.11 conference_mode_:a=x-google-flag:conference,会议

4.12 partial_:目前webrtc没用

4.13 buffered_mode_latency_:目前webrtc没用

4.14 direction_:是收发,还是只收,还是只发,还是闲置状态

4.15 connection_address_:自己的ip和port

  1. StreamParamsVec(该结构在MediaContentDescription中的streams_)

StreamParamsVec为StreamParams的std::vector,以下解析的是StreamParams结构

5.1 groupid

5.2 id

5.3 ssrcs:存放所有的ssrc,a=ssrc

5.4 ssrc_groups:ssrc组信息,是fec还是sim还是fid。a=ssrc-group

5.5 type:

5.6 display:

5.7 cname: 一个endpoint只有一个cname。a=cname,a=ssrc cname

5.8 sync_label:代表msid。a=msid-semantic a=ssrc msid

6 Codec(该结构在ContentInfo中的description)

6.1 id:payload的id。a=fmtp,a=rtpmap,m=

6.2 name: payload的名字。

6.3 clockrate:比特率。a=rtpmap

6.4 params:参数。a=fmtp

6.5 feedback_params:a=rtcp-fb

7 TransportDescription(该结构在TransportDescription中的description)

7.1 transport_options:a=ice-options

7.2 ice_ufrag:ice的用户名, a=ice-ufrag

7.3 ice_pwd:ice的密码, a=ice-pwd

7.4 ice_mode:ice的连接类型,是full,还是lite。

7.5 connection_role:a=setup,表示连接中的角色,是主动连接,被动连接等

7.6 identity_fingerprint:a=fingerprint,加密算法

这里写图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值