【音视频】通俗讲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协议。

相关推荐
EasyDSS9 小时前
私有化视频会议系统/私有化音视频系统EasyDSS在社交娱乐领域实时互动场景中的应用
实时互动·音视频·娱乐
Ulyanov10 小时前
基于ttk的现代化Python音视频播放器:UI设计与可视化技术深度解析
python·ui·音视频
Black蜡笔小新11 小时前
GB28181视频汇聚平台EasyCVR构建智慧环保可视化监测解决方案,赋能生态可持续发展
音视频
肖爱Kun12 小时前
SRT协议封装MPEG-TS 流的视频和音频PES头结构
音视频
reasonsummer14 小时前
【教学类-160-02】20260409 AI视频培训-练习2“豆包AI视频《小班-抢玩具》+豆包图片风格:手办”
python·音视频·ai视频·豆包·通义万相
肖爱Kun14 小时前
SRT协议封装MPEG-TS 流的视频和音频TS头结构
网络·音视频
Cxiaomu14 小时前
Flutter 录制视频+大文件上传 MinIO + NodeJS落库
flutter·音视频·文件上传
李宏伟~14 小时前
大文件分片案例html + nodejs + 视频上传案例
javascript·html·音视频
VOOHU-沃虎15 小时前
沃虎电子:音频变压器在信号隔离与音频接口中的选型与应用解析
算法·音视频
Likeadust15 小时前
智能会议管理系统EasyDSS构建企业视频全场景解决方案
人工智能·音视频