码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • SDP协议介绍


    一、概述

    SDP协议,全称Session Description Protocol,翻译过来就是会话描述协议。
    什么是会话:比如一次网络电话、一次电话会议、一次视频聊天,这些都可以称之为一次会话。

    二、作用

    SDP在webrtc或voip通话中有重要的作用,它通过文本对媒体信息进行描述。其本身并不传递媒体数据,而是用于参与媒体会话的双方进行媒体协商。通过SDP,通信双方可以知道对方的:支持的音视频编码器、网络信息以及其他重要信息。在webrtc中没有规定统一的信令,通常信令使用使用者自己实现,下图是webrtc中sdp的作用:

    highlighting text

    三、格式规范

    • 多个媒体级描述
    1. 媒体格式
    2. 传输协议
    3. 纯属IP和端口
    4. 媒体负载类型
    • 一个会话级描述
    1. 会话的名称和目的
    2. 会话存活时间
    3. 会话中包括多个媒体信息
    • 格式:type=value组成

    (1)会话层

    1. v=(协议版本)
    2. o=(所有者/创建者和会话标识符)
    3. s=(会话名称)
    4. c= * (连接信息 ― 如果包含在所有媒体中,则不需要该字段)
    5. t=会话存活时间
    6. a = * (0 个或多个会话属性行)

    ps:(带星号的是可选字段,不带的是必选)

    (2)媒体层

    1. m=(媒体名称和传输地址)
    2. c=*(连接信息 ― 如果包含在所有媒体中,则不需要该字段)
    3. b=*(带宽信息)
    4. a = * (0 个或多个会话属性行)
    • 字段含义详解:
      • 1、version 必选

      • 2、session name 必选

      • s= [sission name] 会话名,s=-表示忽略会话

      • 3、origion/owner 必选
        o=
        例子:o=- 6474257184349789314 2 IN IP4 127.0.0.1

      • 4、connection 可选
        c=


        例子:c=IN IP4 0.0.0.0

      • 5、media 必须
        m=
        例子:m=audio 9 UDP/TLS/RTP/SAVPF 111 63 103 104 9 0 8 106 105 13 110 112 113 126

      • 6、attributes 可选
        a= 或a=:
        例子:a=frameate:<帧速率>

      • 7、rtpmap 可选(重要)
        a=rtpmap:/[/]
        例子:a=rtpmap:111 opus/48000/2

      • 8、fmtp 可选
        a=fmtp: paramerters
        例子:a=fmtp:101 apt=100

    参考

    SDP协议介绍

  • 相关阅读:
    跨界协作:借助gRPC实现Python数据分析能力的共享
    商城免费搭建之java商城 java电子商务Spring Cloud+Spring Boot+mybatis+MQ+VR全景+b2b2c
    SpringMvc拦截器
    Java基于微信小程序的校园生活互助小助手
    Django 入门学习总结5
    C语言实例_5
    PLATFORMIO学习文档之esp8266 驱动SSD1306 128x64OLED显示屏示例
    网络安全(黑客)自学
    大数据基础之java异常处理
    CVPR2022|比VinVL快一万倍!人大提出交互协同的双流视觉语言预训练模型COTS,又快又好!
  • 原文地址:https://blog.csdn.net/uianster/article/details/125902301
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号