webrtc笔记-信令部分(SDP)

本文深入探讨了WebRTC中的信令处理,特别是SDP在统一计划(Unified Plan)中的应用。内容包括SDP的网络和媒体信息处理,JsepTransportController和BaseChannel的角色,以及创建和交换SDP的过程。重点讨论了AddTracks、CreateOffer、SetLocalDescription等关键步骤,以及如何通过HTTP POST发送SDP字符串。此外,还提到了SDP的结构,如o行、m行、c行和a行,以及JsepSessionDescription等相关类。博客还链接了一个详细的SDP详解资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

webrtc处理两种数据,一种是协议相关的信令和媒体传输数据,一种是帧数据(主要是数字信号处理,将话筒、摄像设备采集的数字信号通过语音前端3A,编解码G711/H264/V8,渲染等算法进行处理)。主要关注协议相关的数据。

信令的一个主要功能是交换消息体,消息体可以是XML、X-Q931、SDP等,是一条消息的净荷部分,webrtc使用SDP描述媒体信息,默认使用Unified Plan。webrtc信令使用offer/answer也可使用sip协议交换SDP信息(通讯双方的网络、媒体等信息,SDP构建及交换主要使用WebRtcSessionDescriptionFactory类、Conductor类处理)。

SDP信息处理主要分两部分。网络(socket)信息主要使用JsepTransportController类处理,建立transport,connection用于收发数据;媒体编解码信息主要使用BaseChannel类处理,将信息设置到流,最终设置到channel(ChannelReceive/ChannelSend)用于处理数据。

SDP信息存储在JsepSessionDescription类,主要包括SessionDescription和JsepCandidateCollection信息。
Unified Plan,一个m行用一个ContentInfo存,会建立一个transceiver(mid-mline_index),一个transceiver只有一个sender/receiver(本端的SDP建sender,远端的SDP建receiver)。

transceiver的channel_成员变量是BaseChannel,BaseChannel的media_channel_成员变量WebRtcVoiceMediaChannel,sender/reciver的media_channel成员变量是WebRtcVoiceMediaChannel,BaseChannel主要用来将SDP的媒体信息set到WebRtcVoiceMediaChannel。

代码重要流程节点:
主叫
1、初始化AddTracks创建了msid:stream_id,audio_la

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值