Sdp Plan-b UnifiedPlan

Unified Plan and Plan B were two competing IETF drafts for the negotiation and exchange of multiple media sources (AKA MediaStreamTracks, or MSTs) between two WebRTC endpoints. 
Unified Plan 和 Plan B 和 Plan A是SDP协商中,多路媒体流的协商方式。

unified-plan文档

unified-plan

Plan-b 和 Unified-plan 区别

In Plan B, one m= section is used for audio and one m= section is used for video, with the media stream identification attribute, or mid, set to “audio” or “video” respectively. If multiple tracks of the same kind are in an offer, multiple a=ssrc lines are listed under the same m= section.

In Unified Plan, one m= section means one sending and/or one receiving track. The mid is its identifier. If multiple tracks are used, multiple m= sections are created。
  • 在Plan-b中, 音频只有一个m=, 视频只有一个m= 。 当有多路媒体流时, 根据ssrc 区分。
  • 在Unified-plan 中, 每路流都有一个m=。
  • 当只有一个路视频流,一路音频流时,两者格式兼容。
  • 对比下图中,发送两路音频流时的区别。
plan-bunified-plan
在这里插入图片描述在这里插入图片描述 在这里插入图片描述在这里插入图片描述

其它

  1. https://tools.ietf.org/html/draft-roach-mmusic-unified-plan-00
  2. chrome 支持计划:https://webrtc.org/web-apis/chrome/unified-plan/
  3. firefox 支持unified-plan, mid 长度不能超过16位
  4. chrome unified-plan 需要确保协商结束后发送视频流,否则会 Failed to set local answer sdp: Failed to process the bundled m= section.
  5. 修改chrome://flags 设置sdp 格式
  6. chrome 下72 默认格式unified-plan , 通过getConfiguration 查看当前peer 格式, 在低版本的chrome里,就算强制声明参数unified-plan ,还是会使用plan-b。格式以getConfiguration 返回的为准。
type: offer, sdp: v=0
o=mediasoup 76760093 1 IN IP4 0.0.0.0
s=-
t=0 0
a=ice-lite
a=fingerprint:sha-256 75:E9:8A:3C:96:49:89:97:18:A3:0D:73:E9:9A:59:D1:8A:B4:15:A9:8F:C4:DE:91:8F:5D:E3:73:0D:E2:00:4E
a=msid-semantic: WMS *
a=group:BUNDLE audio-1 video-1 j6gtnlva p0o0fho7 i860vo1m xwa9siz1
m=audio 7 RTP/SAVPF 100
c=IN IP4 127.0.0.1
a=rtpmap:100 opus/48000/2
a=fmtp:100 minptime=10;useinbandfec=1
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=extmap:5 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id
a=setup:actpass
a=mid:audio-1
a=recvonly
a=ice-ufrag:3lw1e76eix7edjcm
a=ice-pwd:cidqjcjfv28re4t7djaf410gkzpoblq4
a=candidate:udpcandidate 1 udp 1078862079 10.1.133.155 19211 typ host
a=end-of-candidates
a=ice-options:renomination
a=rtcp-mux
a=rtcp-rsize
m=video 7 RTP/SAVPF 123 101
c=IN IP4 127.0.0.1
a=rtpmap:123 VP8/90000
a=rtpmap:101 rtx/90000
a=fmtp:101 apt=123
a=rtcp-fb:123 goog-remb
a=rtcp-fb:123 ccm fir
a=rtcp-fb:123 nack
a=rtcp-fb:123 nack pli
a=extmap:2 urn:ietf:params:rtp-hdrext:toffset
a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:4 urn:3gpp:video-orientation
a=extmap:5 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id
a=setup:actpass
a=mid:video-1
a=recvonly
a=ice-ufrag:3lw1e76eix7edjcm
a=ice-pwd:cidqjcjfv28re4t7djaf410gkzpoblq4
a=candidate:udpcandidate 1 udp 1078862079 10.1.133.155 19211 typ host
a=end-of-candidates
a=ice-options:renomination
a=rtcp-mux
a=rtcp-rsize
m=video 7 RTP/SAVPF 123 101
c=IN IP4 127.0.0.1
a=rtpmap:123 VP8/90000
a=rtpmap:101 rtx/90000
a=fmtp:101 apt=123
a=rtcp-fb:123 goog-remb
a=rtcp-fb:123 ccm fir
a=rtcp-fb:123 nack
a=rtcp-fb:123 nack pli
a=extmap:2 urn:ietf:params:rtp-hdrext:toffset
a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:4 urn:3gpp:video-orientation
a=extmap:5 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id
a=setup:actpass
a=mid:j6gtnlva
a=msid:kREh1yv7S0I5syCOntCAIUBeMoesO6v5RlkL 28c40df0-83b8-46c7-bd06-34e7e6fc8fa0
a=sendonly
a=ice-ufrag:3lw1e76eix7edjcm
a=ice-pwd:cidqjcjfv28re4t7djaf410gkzpoblq4
a=candidate:udpcandidate 1 udp 1078862079 10.1.133.155 19211 typ host
a=end-of-candidates
a=ice-options:renomination
a=ssrc:4131643841 cname:pYEUk1YEO5F9x9T/
a=ssrc:1251779610 cname:pYEUk1YEO5F9x9T/
a=ssrc-group:FID 4131643841 1251779610
a=rtcp-mux
a=rtcp-rsize
m=audio 7 RTP/SAVPF 100
c=IN IP4 127.0.0.1
a=rtpmap:100 opus/48000/2
a=fmtp:100 minptime=10;useinbandfec=1
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=extmap:5 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id
a=setup:actpass
a=mid:p0o0fho7
a=msid:kREh1yv7S0I5syCOntCAIUBeMoesO6v5RlkL 1271c25f-e4e8-4763-8770-2f043f426445
a=sendonly
a=ice-ufrag:3lw1e76eix7edjcm
a=ice-pwd:cidqjcjfv28re4t7djaf410gkzpoblq4
a=candidate:udpcandidate 1 udp 1078862079 10.1.133.155 19211 typ host
a=end-of-candidates
a=ice-options:renomination
a=ssrc:4125350497 cname:pYEUk1YEO5F9x9T/
a=rtcp-mux
a=rtcp-rsize
m=video 7 RTP/SAVPF 123 101
c=IN IP4 127.0.0.1
a=rtpmap:123 VP8/90000
a=rtpmap:101 rtx/90000
a=fmtp:101 apt=123
a=rtcp-fb:123 goog-remb
a=rtcp-fb:123 ccm fir
a=rtcp-fb:123 nack
a=rtcp-fb:123 nack pli
a=fmtp:123 x-google-min-bitrate=140;x-google-max-bitrate=180;x-google-start-bitrate=160;x-google-min-bitrate=140;x-google-max-bitrate=180;x-google-start-bitrate=160;x-google-min-bitrate=140;x-google-max-bitrate=180;x-google-start-bitrate=160
a=extmap:2 urn:ietf:params:rtp-hdrext:toffset
a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:4 urn:3gpp:video-orientation
a=extmap:5 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id
a=setup:actpass
a=mid:i860vo1m
a=msid:nbwkpaLOrbf3snCxWpLgPCi01iwx6ghw9xu2 1098359b-2cc9-4b96-b7f4-6aa2b7c40031
a=sendonly
a=ice-ufrag:3lw1e76eix7edjcm
a=ice-pwd:cidqjcjfv28re4t7djaf410gkzpoblq4
a=candidate:udpcandidate 1 udp 1078862079 10.1.133.155 19211 typ host
a=end-of-candidates
a=ice-options:renomination
a=ssrc:2368086230 cname:QVg07Awk9yf5LedF
a=ssrc:2368086230 cname:QVg07Awk9yf5LedF
a=ssrc-group:FID 2368086230 2368086230
a=rtcp-mux
a=rtcp-rsize
m=audio 7 RTP/SAVPF 100
c=IN IP4 127.0.0.1
a=rtpmap:100 opus/48000/2
a=fmtp:100 minptime=10;useinbandfec=1
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=extmap:5 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id
a=setup:actpass
a=mid:xwa9siz1
a=msid:nbwkpaLOrbf3snCxWpLgPCi01iwx6ghw9xu2 357db268-a530-4b09-98e9-8ad599921249
a=sendonly
a=ice-ufrag:3lw1e76eix7edjcm
a=ice-pwd:cidqjcjfv28re4t7djaf410gkzpoblq4
a=candidate:udpcandidate 1 udp 1078862079 10.1.133.155 19211 typ host
a=end-of-candidates
a=ice-options:renomination
a=ssrc:1666321053 cname:QVg07Awk9yf5LedF
a=rtcp-mux
a=rtcp-rsize
type: offer, sdp: v=0
o=mediasoup 24017464 1 IN IP4 0.0.0.0
s=-
t=0 0
a=ice-lite
a=fingerprint:sha-256 75:E9:8A:3C:96:49:89:97:18:A3:0D:73:E9:9A:59:D1:8A:B4:15:A9:8F:C4:DE:91:8F:5D:E3:73:0D:E2:00:4E
a=msid-semantic: WMS *
a=group:BUNDLE audio-tracks video-tracks
m=audio 7 RTP/SAVPF 100
c=IN IP4 127.0.0.1
a=rtpmap:100 opus/48000/2
a=fmtp:100 minptime=10;useinbandfec=1
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=setup:actpass
a=mid:audio-tracks
a=sendrecv
a=ice-ufrag:vdb6b4984o7dkf16
a=ice-pwd:4agfo1y9pl4ylg2zxrx4lufimetfuxzc
a=candidate:udpcandidate 1 udp 1078862079 10.1.133.155 51891 typ host
a=end-of-candidates
a=ice-options:renomination
a=ssrc:1689928828 cname:tw9LY2QY98p9spEm
a=ssrc:1689928828 msid:NSyf3jpXBCyhNnds6Shejy3vfxXmQRpVkcpQ 9f9624db-1c35-49a0-9898-2d578606961d
a=ssrc:2064048689 cname:0SQ2ImcTH1runIhp
a=ssrc:2064048689 msid:FWqQatBcsifPcujegGiIXt2BgBNSS89G20VC 06c7586a-c83e-4a5a-a06c-d126c49a810d
a=rtcp-mux
a=rtcp-rsize
m=video 7 RTP/SAVPF 123 101
c=IN IP4 127.0.0.1
a=rtpmap:123 VP8/90000
a=rtpmap:101 rtx/90000
a=fmtp:101 apt=123
a=rtcp-fb:123 goog-remb
a=rtcp-fb:123 ccm fir
a=rtcp-fb:123 nack
a=rtcp-fb:123 nack pli
a=fmtp:123 x-google-min-bitrate=140;x-google-max-bitrate=180;x-google-start-bitrate=160
a=extmap:2 urn:ietf:params:rtp-hdrext:toffset
a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:4 urn:3gpp:video-orientation
a=setup:actpass
a=mid:video-tracks
a=sendrecv
a=ice-ufrag:vdb6b4984o7dkf16
a=ice-pwd:4agfo1y9pl4ylg2zxrx4lufimetfuxzc
a=candidate:udpcandidate 1 udp 1078862079 10.1.133.155 51891 typ host
a=end-of-candidates
a=ice-options:renomination
a=ssrc:1028448819 cname:tw9LY2QY98p9spEm
a=ssrc:1028448819 msid:NSyf3jpXBCyhNnds6Shejy3vfxXmQRpVkcpQ e59b243c-f944-471b-b410-45a80db0797e
a=ssrc:788703880 cname:tw9LY2QY98p9spEm
a=ssrc:788703880 msid:NSyf3jpXBCyhNnds6Shejy3vfxXmQRpVkcpQ e59b243c-f944-471b-b410-45a80db0797e
a=ssrc:2889626611 cname:0SQ2ImcTH1runIhp
a=ssrc:2889626611 msid:FWqQatBcsifPcujegGiIXt2BgBNSS89G20VC c73ef760-4a91-4077-9bf1-fbdda5c10c71
a=ssrc:4061195486 cname:0SQ2ImcTH1runIhp
a=ssrc:4061195486 msid:FWqQatBcsifPcujegGiIXt2BgBNSS89G20VC c73ef760-4a91-4077-9bf1-fbdda5c10c71
a=ssrc-group:FID 1028448819 788703880
a=ssrc-group:FID 2889626611 4061195486
a=rtcp-mux
a=rtcp-rsize
### 回答1: SDP(软件定义网络)白皮书和SDP架构指南是一份详细描述SDP架构、原理和实施指导的文件。SDP架构指南主要旨在帮助企业和组织了解和应用SDP技术,以实现更灵活、高效、安全的网络管理和应用交付。 SDP架构指南首先介绍了SDP的基本概念和关键特性,包括虚拟化、面向应用的安全性和可编程性等。它强调了SDP的重点是将网络功能虚拟化,并将原本集中在网络中心的控制功能分布到整个网络中的各个节点。这种架构的好处是可以提高网络的灵活性和可扩展性,并且能够更好地应对网络变化和需求变化。 SDP架构指南还介绍了SDP的核心组件,包括SDP控制器、SDP代理和SDP网关。它们共同协作,实现SDP网络的构建和管理。其中,SDP控制器负责集中管理整个网络,包括资源分配、策略配置和安全策略等;SDP代理负责网络功能的虚拟化和应用交付;SDP网关则用于连接SDP网络和传统网络,实现互联互通。 此外,SDP架构指南还详细介绍了SDP的实施指南和最佳实践。它阐述了SDP的部署和配置步骤,包括网络规划、安全策略设计和SDP控制器的配置等。它还提供了一些实例和案例分析,以帮助读者更好地理解和应用SDP技术。 总之,SDP白皮书和SDP架构指南是一份权威的技术文档,它为企业和组织提供了SDP架构和实施的全面指导。通过应用SDP技术,可以实现网络的灵活性、可扩展性和安全性的提升,进而推动数字化转型和业务创新。 ### 回答2: SDP白皮书是一份关于SDP架构指南的文档,旨在向读者介绍SDP(软件定义网络平台)架构的基本概念和原则。 SDP是一种新兴的网络架构,旨在提供一种可编程的、灵活的网络环境,以满足不断变化的业务需求。该架构基于软件定义网络(SDN)和网络功能虚拟化(NFV)技术,通过将网络控制平面与数据平面分离,实现网络的灵活性和可编程性。 SDP架构指南提供了SDP的详细设计和部署指南。首先,它介绍了SDP架构中的关键概念,如虚拟网络功能(VNF)、网络切片和网络编排。然后,它讨论了SDP与传统网络架构的区别和优势,如可靠性、灵活性和可扩展性。 此外,SDP白皮书深入探讨了SDP的关键组成部分,如控制器、虚拟化基础设施管理器(VIM)和VNF管理器(VNFM)。它还提供了一些实际的示例和案例研究,以帮助读者更好地理解和应用SDP架构。 最后,SDP架构指南还涉及了SDP的安全性和隐私保护方面,并提供了一些最佳实践和建议,以确保SDP网络的安全性和可信度。 总而言之,SDP白皮书是一份关于SDP架构指南的重要文档,通过详细描述SDP架构的原则、组成部分和部署指南,为读者提供了实施和利用SDP架构的基础知识和指导。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值