【音视频】通俗讲SDP会话描述/协商协议

当两个设备(比如你的手机和朋友的手机)要进行视频通话或语音聊天时,它们需要先互相"沟通"一下,确认"我们能用什么语言交流"(比如音频编解码器)、"在哪个频道上通话"(比如IP地址和端口)等问题。SDP(会话描述协议)就是为这次"沟通"提供标准格式的说明书。

🍽 把SDP想象成一份菜单

你可以把SDP理解为一顿多媒体大餐的"菜单 "或"宴会筹备清单 "。这份清单是基于文本的,每一行都遵循 =<类型><值> 的简单格式,清晰列出了这顿"大餐"的各项信息。

这份"菜单"主要包含两大部分:

  • 会话级描述 :好比是整场宴会的通用信息 。包括宴会名称(s=)、发起人信息(o=)、宴会有效的起止时间(t=)以及网络连接的基本信息(c=)等。这些信息对整个会话有效,是所有媒体流的默认设置。
  • 媒体级描述 :则像是针对每道具体菜肴 的说明。例如,会详细描述"音频"这道菜:用什么方式传输(传输协议,如RTP/UDP)、送到哪个端口(端口号)、具体是哪道菜(编码格式,如OPUS、G.711),以及这道菜有什么特点(通过属性行 a= 描述,如采样率)等。一个SDP里可以包含多个媒体描述,比如同时描述音频流和视频流。

会话级描述中的信息是默认值,媒体级描述可以继承或覆盖这些默认值。

🤝 SDP是如何工作的?

SDP本身并不能直接传送数据,它需要"搭乘"其他的传输协议,比如SIP(用于网络电话)、RTSP(用于流媒体)或在WebRTC中通过信令通道来交换。

一个常见的工作模式是 Offer/Answer 模型

  1. 发起方 生成一个SDP Offer(就像主人先拟好一份初步的菜单草稿),说明自己支持的能力。
  2. 接收方 收到Offer后,会根据自己的能力进行匹配,生成一个SDP Answer(就像客人根据忌口和喜好确认菜单),最终双方协商出一致认可的媒体参数。
  3. 之后,设备间就可以根据协商好的参数建立直接的媒体流传输了。

💡 主要用途与特点

  • 核心作用 :SDP的核心作用在于媒体协商。通过交换SDP信息,通信双方可以了解彼此的能力(如支持的编解码器),并最终协商出一套双方都支持的方案,确保通话或会议能够顺利进行。
  • 重要特点 :SDP是一个文本协议 ,易于阅读、生成和调试。它被设计得足够通用和灵活 ,可以通过自定义属性行(a=)来扩展,以适应新的编解码格式或技术需求(如WebRTC中用于NAT穿越的ICE候选信息)。

WebRTC和网络语音通话VoIP中就使用了SDP协议。

相关推荐
沉迷单车的追风少年6 小时前
Diffusion Model与视频超分(2):解读字节开源视频增强模型SeedVR2
人工智能·深度学习·aigc·音视频·强化学习·视频生成·视频超分
给大佬递杯卡布奇诺7 小时前
FFmpeg 基本数据结构 AVPacket分析
数据结构·c++·ffmpeg·音视频
无线图像传输研究探索7 小时前
应急救援 “眼观六路”:SA/NSA 双模覆盖,偏远灾区也能实时传视频
5g·音视频·无人机·5g单兵图传·单兵图传·无人机图传
Fuly10247 小时前
AI 大模型应用中的图像,视频,音频的处理
人工智能·音视频
小白学过的代码7 小时前
videojs增加视频源选择框小工具
javascript·vue.js·音视频
IDC02_FEIYA7 小时前
视频网站服务器带宽需要多少?视频网站服务器配置要求
运维·服务器·音视频
碧海银沙音频科技研究院9 小时前
i2s的LRCK时钟有毛刺以及BCLK数据在高采样率有变形数据解析错误问题原因以及解决方法
人工智能·深度学习·算法·分类·音视频
音视频牛哥11 小时前
AI智能体从系统智能到生态智能:SmartMediaKit 如何成为智能体时代的视频神经系统
人工智能·计算机视觉·音视频·大牛直播sdk·多智能体协同·rtsp播放器rtmp播放器·视频感知低延迟音视频
Black蜡笔小新11 小时前
解析视频融合平台EasyCVR如何以跨平台与兼容性技术重构安防融合中台
音视频