网站开发要懂英文吗,科技制作网站,企业怎么建设自己的网站首页,网站建设厦门同安一#xff0c;什么是SDP
WebRTC 是 Web Real-Time Communication#xff0c;即网页实时通信的缩写#xff0c;是 RTC 协议的一种Web实现#xff0c;项目由 Google 开源#xff0c;并和 IETF 和 W3C 制定了行业标准。
WebRTC是点对点通讯#xff0c;他的通话建立需要交换…一什么是SDP
WebRTC 是 Web Real-Time Communication即网页实时通信的缩写是 RTC 协议的一种Web实现项目由 Google 开源并和 IETF 和 W3C 制定了行业标准。
WebRTC是点对点通讯他的通话建立需要交换媒体信息才能建立媒体信息的载体就是SDP。SDP(Session Description Protocol) 是一种会话描述协议基于文本其本身并不属于传输协议需要依赖其它的传输协议比如 SIP HTTP自定义的信令等来交换必要的媒体信息用于两个会话实体之间的媒体协商同时SDP也不是只为WebRTC使用其他的传输比如RTSPSIP通话也是通过SDP进行媒体协商。
SDP是由多行文本组成的一个纯文本协议如果将SDP从语义上分解成不同组件来描述一个多媒体会话信息那么SDP由以下部分组成
a,会话级别描述 b,网络描述 c,媒体级别描述 d,安全描述 e,DTLS角色 f,ICE策略 g,QoS,Grouping传输描述 一个标准的WebRTC通话的建立至少需要一次Offer/Answer交互如下所示
二为什么SDP又分PlanB 与 UnifiedPlan
WebRTC的单个通道是可以传输多路音视频流的。而PlanB 和 UnifiedPlan 其实就是 WebRTC 在多路媒体源multi media source场景下的不同的两种SDP 协商方式。WebRTC引入了 Stream 和 Track 的概念一个流Stream 可能包含音轨AudioTrack 和 视轨VideoTrack当有多路 Stream 时就会有更多的 Track那么UnifiedPlan就是每一个 Track 唯一对应一个自己的 M 描述而Plan B就是每一个 M line 描述了多个 Track(track id)。
我们来详细的介绍一下PlanB 和 UnifiedPlan 的区分
对于 PlanB 来说由于只有一个 M(audio) 和 M(video)隶属于同一个M line的编码格式是相同的当有多路媒体流(一路流就是一个track)时则根据 SSRC 去区分意味着在 PlanB 中一个Mline中含有多个SSRC的流这些媒体流共用同一个编码格式。 对于 UnifiedPlan 来说由于可以有多个 M(audio) 和 M(video)每路流(一路流就是一个track)都有自己的 M Line每个 M line都能够指示自己的编码格式。
示例如下
APlan-B BUnifiedPlan 从上面可以看出UnifiedPlan相对要更清晰更精简一点。WebRTC在M79版本之后正式的支持了UnifiedPlan这也让其成为了现在的主流SDP交互方式。
三anyRTC对WebRTC的支持
anyRTC早在WebRTC的创建初期就是其忠实的追随者从2015年开始一直保持着WebRTC-Master的代码更新我们也经历了WebRTC的api设计的一次次变迁。
现在anyRTC公有云推流端支持SimulCast方式推送多码率的视频流拉流端支持单通道多路流的方式。
同时anyRTC的著名开源项目anyRTC-RTMP-OpenSource也支持WebRTC的推拉流。