webrtc-CreateOffer分析

本文详细分析了WebRTC中CreateOffer的目的、收集信息、交换过程以及Offer的内容和结构。通过SDP协议,解释了Offer如何描述音视频通讯参数,并探讨了Source、Track和Stream之间的关系。此外,还提及了SCTP在DataChannel中的应用。
摘要由CSDN通过智能技术生成

WebRTC CreateOffer 分析

1. CreateOffer 的目的

   WebRTC 主要用于 peer 之间音视频通讯,而通讯前需要协商一些参数,比如编解码器、传输协议等。
所以CreareOffer 的目的就在于搜集本地相关参数,用于初始化一次 session.

2. CreateOffer 主要收集了哪些信息

   a. 要传输什么:即媒体相关信息,主要是 audio、video、data,以及相应支持的参数;


   b. 怎么传输:即传输地址、策略、协议等;

3. Offer 如何交换

   WebRTC 中 Offer 及与之对应的 Answer 都通过信令服务器使用 SDP 交换。


   SDP:Session Description Protocol 会话描述协议,广泛用于多媒体会话中会话信息的描述,它定义了会话描述的规范、语义,并不限制传输层协议。


   由于 SDP 协议需要支持各种异构的终端(如PC、电话等)、异构的网络、异构的系统等,所以其使用场景和交互定义相当复杂,建议先了解其基础规范:RFC4566


  附:WebRTC 中,各场景下 SDP 交互示例:WebRTC中的SDP

4. Offer 长啥样

   由于 SDP 是一个纯文本协议,且以行为组织单位,所以一个 Offer 其实就是一个多行字符串。


   一个包含 audio、video、data 的 Offer 示例:

    v=0
    o=- 139014573241466234 2 IN IP4 127.0.0.1
    s=-
    t=0 0
    a=group:BUNDLE 0 1 2
    a=msid-semantic: WMS stream_id
    m=audio 9 UDP/TLS/RTP/SAVPF 111 103 104 9 102 0 8 106 105 13 110 112 113 126
    c=IN IP4 0.0.0.0
    a=rtcp:9 IN IP4 0.0.0.0
    a=ice-ufrag:Ysdw
    a=ice-pwd:R2xJhQfg5pS3D+zt9g/IvB1V
    a=ice-options:trickle
    a=fingerprint:sha-256 81:81:2F:DE:C5:FD:42:FB:DD:A8:3C:05:94:60:56:A2:D6:BC:72:59:39:C9:27:6E:43:B6:12:92:F9:1E:19:1B
    a=setup:actpass
    a=mid:0
    a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
    a=extmap:9 urn:ietf:params:rtp-hdrext:sdes:mid
    a=extmap:13 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id
    a=extmap:14 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id
    a=sendrecv
    a=msid:stream_id audio_label
    a=rtcp-mux
    a=rtpmap:111 opus/48000/2
    a=rtcp-fb:111 transport-cc
    a=fmtp:111 minptime=10;useinbandfec=1
    a=rtpmap:103 ISAC/16000
    a=rtpmap:104 ISAC/32000
    a=rtpmap:9 G722/8000
    a=rtpmap:102 ILBC/8000
    a=rtpmap:0 PCMU/8000
    a=rtpmap:8 PCMA/8000
    a=rtpmap:106 CN/32000
    a=rtpmap:105 CN/16000
    a=rtpmap:13 CN/8000
    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:2221963028 cname:jmpt/WDLtG9Ys2lu
    a=ssrc:2221963028 msid:stream_id audio_label
    a=ssrc:2221963028 mslabel:stream_id
    a=ssrc:2221963028 label:audio_label
    m=video 9 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 127 124 125
    c=IN IP4 0.0.0.0
    a=rtcp:9 IN IP4 0.0.0.0
    a=ice-ufrag:Ysdw
    a=ice-pwd:R2xJhQfg5pS3D+zt9g/IvB1V
    a=ice-option
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值