rtsp rtmp 跟 http 区别
SDP
一SDP介绍
1. SDP的核心功能
- 会话描述:定义会话的名称、创建者、时间范围、连接地址等全局信息。
- 媒体协商:明确媒体流的类型(如音频、视频)、传输协议(如RTP/UDP)、编码格式(如H.264、Opus)及端口信息。
- 网络参数:指定单播或多播地址、带宽限制、加密密钥等网络相关配置。
- 兼容性支持:通过文本格式的灵活扩展,适配不同传输协议(如SIP、RTSP、WebRTC)。
2. SDP的协议结构
SDP由会话级描述和媒体级描述两部分组成,采用<type>=<value>的文本格式,每行以单个字母表示类型,如v(版本)、m(媒体)等。
(1)会话级描述(Session-Level)
- 必选字段:
v=:协议版本(固定为v=0)。o=:会话创建者信息,格式为o=<用户名> <会话ID> <版本号> <网络类型> <地址类型> <地址>。s=:会话名称,若未命名则用-占位。t=:会话的起止时间(NTP时间戳)。
- 可选字段:
c=:连接信息(如c=IN IP4 192.168.1.1)。b=:带宽限制(如b=AS:500表示单媒体最大带宽500kbps)。a=:扩展属性(如加密方式a=crypto:1 AES_CM_128_HMAC_SHA1_80)。
(2)媒体级描述(Media-Level)
每个媒体流以m=行开头,描述具体参数:
- 必选字段:
m=:媒体类型(如audio/video)、端口、传输协议、负载类型列表(如m=audio 5004 RTP/AVP 96)。
- 关键属性:
a=rtpmap:动态负载类型与编码格式的映射(如a=rtpmap:96 H264/90000)。a=fmtp:编码参数的详细配置(如a=fmtp:96 profile-level-id=42801f)。a=sendrecv:媒体流方向(sendonly/recvonly/inactive)。
3. SDP在流媒体中的应用场景
-
实时通信(WebRTC)
在WebRTC中,SDP通过Offer/Answer模型交换双方的媒体能力(如支持的编解码器),并配合ICE协议完成网络穿透。 -
视频会议与直播
描述多路音视频流的传输参数,支持多播地址分配和分层编码(如H.264的分辨率适配)。 -
流媒体传输(RTSP)
RTSP协议通过SDP在DESCRIBE响应中传递媒体信息(如文件格式、时间范围),客户端据此发起播放请求。 -
网络电话(VoIP)
协商音频编码格式(如G.711、Opus)和传输地址,确保通话双方兼容。
4. SDP的示例与解析
以下是一个简化的SDP示例:
v=0
o=- 123456789 2 IN IP4 192.168.1.1
s=Example Session
c=IN IP4 192.168.1.1
t=0 0
m=audio 5004 RTP/AVP 96
a=rtpmap:96 OPUS/48000/2
a=sendrecv
m=video 5006 RTP/AVP 97
a=rtpmap:97 H264/90000
a=fmtp:97 profile-level-id=42e01f
- 会话级:定义版本、创建者IP和会话名称。
- 音频流:使用Opus编码,采样率48kHz,双向传输。
- 视频流:H.264编码,支持特定分辨率配置。
5. SDP的局限性
- 无协商能力:仅描述媒体信息,编码协商需依赖RTSP等协议。
- 静态配置:不支持动态调整参数(如带宽自适应),需结合其他协议实现。
二 会话管理 与SDP
1. RTSP(Real Time Streaming Protocol
(1) 是否需要建立会话?
- 需要显式会话。
RTSP 是基于会话的协议,客户端与服务端通过SETUP、PLAY、TEARDOWN等命令明确控制会话生命周期。- 会话标识:通过
Session头字段维护会话状态(如Session: 12345678)。
- 会话标识:通过
(2) 是否需要 SDP?
- 需要 SDP。
RTSP 使用 SDP(Session Description Protocol)在DESCRIBE响应中描述媒体流的详细信息:m=video 0 RTP/AVP 96 a=rtpmap:96 H264/90000 a=control:track1- 作用:定义媒体类型(视频/音频)、编码格式、传输协议(RTP)、控制路径等。
2. RTMP(Real-Time Messaging Protocol)
(1) 是否需要建立会话?
- 通过隐式连接管理会话。
RTMP 不显式声明会话,但通过以下机制维护逻辑会话:- NetConnection:客户端与服务端建立持久 TCP 连接(类似会话)。
- NetStream:在连接内创建多个流通道(如
stream ID=1),每个流独立传输数据。
(2) 是否需要 SDP?
- 不需要 SDP。
RTMP 通过以下方式传递媒体参数:- 元数据(onMetaData):客户端在发布流时发送元数据(分辨率、编码格式等)。
> onMetaData: { width: 1280, height: 720, videocodecid: 7 (H.264) } - 编码协商:客户端在
connect命令中声明支持的编解码能力(如videoCodecs: 128)。
- 元数据(onMetaData):客户端在发布流时发送元数据(分辨率、编码格式等)。
3. HTTP流媒体(如HLS、DASH)
(1) 是否需要建立会话?
- 无显式会话。
HTTP流媒体基于无状态的HTTP协议,通过请求-响应模式获取媒体分片:- HLS:客户端通过HTTP GET请求获取
.m3u8索引文件和.ts分片。 - DASH:客户端获取
.mpd清单文件并请求.m4s分片。
- HLS:客户端通过HTTP GET请求获取
(2) 是否需要 SDP?
- 不需要 SDP。
媒体参数通过以下方式描述:- 清单文件:如HLS的
.m3u8或DASH的.mpd,包含码率、分辨率、分片URL等信息。#EXT-X-STREAM-INF:BANDWIDTH=800000,RESOLUTION=640x360 stream_360p.ts
- 清单文件:如HLS的
对比总结
| 协议 | 会话管理 | 媒体描述方式 | 典型场景 |
|---|---|---|---|
| RTSP | 显式会话(SETUP/PLAY) | SDP(DESCRIBE响应) | 视频监控、IPTV |
| RTMP | 隐式会话(NetConnection) | 元数据(onMetaData) | 直播推流、低延迟交互 |
| HTTP流媒体 | 无会话(无状态HTTP) | 清单文件(m3u8/mpd) | 自适应流(HLS/DASH) |
关键区别解释
1. 会话管理
- RTSP:需要显式控制会话状态(如播放、暂停),适合需要精细控制的场景。
- RTMP:通过长连接维护隐式会话,适合持续流传输(如直播)。
- HTTP流媒体:无会话,每次请求独立,适合CDN分发和自适应码率。
2. 媒体参数传递
- RTSP:依赖SDP标准化描述,确保跨平台兼容性。
- RTMP:通过私有元数据和命令协商参数,灵活性高但标准化较弱。
- HTTP流媒体:通过清单文件静态描述,支持动态切换码率。
适用场景建议
- 低延迟控制:RTMP(1-3秒)或 RTSP(配合RTP)。
- 高兼容性分发:HTTP(HLS/DASH)。
- 设备控制:RTSP(如摄像头PTZ控制)。
相关文章:
rtsp rtmp 跟 http 区别
SDP 一SDP介绍 1. SDP的核心功能 会话描述:定义会话的名称、创建者、时间范围、连接地址等全局信息。媒体协商:明确媒体流的类型(如音频、视频)、传输协议(如RTP/UDP)、编码格式(如H.264、Op…...
基于YOLO11深度学习的运动鞋品牌检测与识别系统【python源码+Pyqt5界面+数据集+训练代码】
《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】3.【手势识别系统开发】4.【人脸面部活体检测系统开发】5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】7.【…...
物体识别系统(识别图片中的物体)
这是一个基于 PyTorch 和 PyQt5 的物体识别程序,使用 Faster R-CNN 模型来识别图片中的物体,并通过图形界面展示识别结果。 1.用户界面 主窗口:包含加载图片、识别、清除按钮,以及图片显示区域和结果展示区域。 图片显示&#…...
数据表的存储过程和函数介绍
文章目录 一、概述二、创建存储过程三、在创建过程中使用变量四、光标的使用五、流程控制的使用六、查看和删除存储过程 一、概述 存储过程和函数是在数据库中定义的一些SQL语句的集合,然后直接调用这些存储过程和函数来执行已经定义好的SQL语句。存储过程和函数可…...
【DeepSeek-R1背后的技术】系列九:MLA(Multi-Head Latent Attention,多头潜在注意力)
【DeepSeek背后的技术】系列博文: 第1篇:混合专家模型(MoE) 第2篇:大模型知识蒸馏(Knowledge Distillation) 第3篇:强化学习(Reinforcement Learning, RL) 第…...
【JavaWeb12】数据交换与异步请求:JSON与Ajax的绝妙搭配是否塑造了Web的交互革命?
文章目录 🌍一. 数据交换--JSON❄️1. JSON介绍❄️2. JSON 快速入门❄️3. JSON 对象和字符串对象转换❄️4. JSON 在 java 中使用❄️5. 代码演示 🌍二. 异步请求--Ajax❄️1. 基本介绍❄️2. JavaScript 原生 Ajax 请求❄️3. JQuery 的 Ajax 请求 &a…...
[特殊字符] 蓝桥杯 Java B 组 之位运算(异或性质、二进制操作)
Day 6:位运算(异或性质、二进制操作) 📖 一、位运算简介 位运算是计算机底层优化的重要手段,利用二进制操作可以大大提高运算速度。常见的位运算包括: 与(&):a &am…...
[MDM 2024]Spatial-Temporal Large Language Model for Traffic Prediction
论文网址:[2401.10134] Spatial-Temporal Large Language Model for Traffic Prediction 论文代码:GitHub - ChenxiLiu-HNU/ST-LLM: Official implementation of the paper "Spatial-Temporal Large Language Model for Traffic Prediction" …...
LTO优化详解
嵌入式开发过程中的LTO优化是什么意思?能够用来解决什么问题?它都优化了哪些?仅开启LTO真的可以优化SIZE的问题吗? 请分别回答我刚才提到的问题? 嗯,用户问关于嵌入式开发中的LTO优化,我需要详细解释这个概…...
分布式事务三阶段协议
分布式事务的三阶段分别是准备阶段、预提交阶段和提交 / 回滚阶段,以下是详细介绍: 三阶段提交协议可以理解为两阶段提交协议的改良版,是在协调者和参与者中都引入超时机制,并且把两阶段提交协议的第一个阶段分成了两步: 询问&am…...
LLaMA-Factory|微调大语言模型初探索(4),64G显存微调13b模型
上篇文章记录了使用lora微调deepseek-7b,微调成功,但是微调llama3-8b显存爆炸,这次尝试使用qlora微调HQQ方式量化,微调更大参数体量的大语言模型,记录下来微调过程,仅供参考。 对过程不感兴趣的兄弟们可以直…...
常用高压缩率的视频容器格式,并进行大比例压缩
常用的高压缩率视频容器格式,包括*.mp4 、*.mkv、*.webM等。 容器格式本身并不直接决定压缩率,而是取决于容器中所使用的视频编码格式等因素。不过,在常见的视频容器格式中,一些容器在搭配特定编码格式时,通常能表现出较高的压缩效率,以下是相关介绍: 1 MKV格式 …...
代码编译(词法义)
1.预处理 (Preprocessing): 在这个阶段,编译器会处理所有以 # 开头的指令,如 #include、#define 等。它会把头文件的内容插入到源代码中,进行宏替换等预处理操作,生成一个纯净的代码文件。 3.词法分析 (Lexical Analy…...
android,flutter 混合开发,pigeon通信,传参
文章目录 app效果native和flutter通信的基础知识1. 编解码器 一致性和完整性,安全性,性能优化2. android代码3. dart代码 1. 创建flutter_module2.修改 Android 项目的 settings.gradle,添加 Flutter module3. 在 Android app 的 build.gradl…...
at32f403a rt thread led基础bsp工程测试
1.led工程官方bsp使用 导出一个独立的AT32F403A的BSP工程 下载RTT源代码 gitee更新较慢 https://gitee.com/rtthread/rt-thread github版本更新最新 https://github.com/RT-Thread/rt-thread. 切换到V5.1.0分支(使用一个发布版本可以避免不必要的bug) 导出一个独立的AT32BSP…...
DeepSeek写贪吃蛇手机小游戏
DeepSeek写贪吃蛇手机小游戏 提问 根据提的要求,让DeepSeek整理的需求,进行提问,内容如下: 请生成一个包含以下功能的可运行移动端贪吃蛇H5文件: 要求 蛇和食物红点要清晰,不超过屏幕外 下方有暂停和重新…...
【好玩的工具和命令】 ASCII 艺术生成工具: figlet
figlet 是一款用于生成 ASCII 艺术文字的工具,支持多种字体样式。它能将输入的文本转换为由字符组成的大型字母图案,广泛应用于命令行环境下的标题展示或装饰。 核心功能 生成 ASCII 文字艺术:将普通文本转化为大号的、由字符构成的艺术字…...
工具--安川伺服故障代码
上传一下安川伺服故障代码,后续结合实际维修经验,逐个整理分析,绝对超出手册经验 故障代码 故障描述 a.020/a.02 用户参数和数检查异常 1 a.021/a.02 参数格式化异常 1 a.022/a.02 系统参数和数检查异常 1 a.023/a.02 参数密码异常…...
车载软件架构 --- OEM主机厂如何打入软件供应商内部?
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 简单,单纯,喜欢独处,独来独往,不易合同频过着接地气的生活,除了生存温饱问题之外,没有什么过多的欲望,表面看起来很高冷,内心热情,如果你身…...
AI 编程助手 cursor的系统提示词 prompt
# Role 你是一名极其优秀具有10年经验的产品经理和精通java编程语言的架构师。与你交流的用户是不懂代码的初中生,不善于表达产品和代码需求。你的工作对用户来说非常重要,完成后将获得10000美元奖励。 # Goal 你的目标是帮助用户以他容易理解的…...
华为云AI开发平台ModelArts
华为云ModelArts:重塑AI开发流程的“智能引擎”与“创新加速器”! 在人工智能浪潮席卷全球的2025年,企业拥抱AI的意愿空前高涨,但技术门槛高、流程复杂、资源投入巨大的现实,却让许多创新构想止步于实验室。数据科学家…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...
【JavaEE】-- HTTP
1. HTTP是什么? HTTP(全称为"超文本传输协议")是一种应用非常广泛的应用层协议,HTTP是基于TCP协议的一种应用层协议。 应用层协议:是计算机网络协议栈中最高层的协议,它定义了运行在不同主机上…...
Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...
线程同步:确保多线程程序的安全与高效!
全文目录: 开篇语前序前言第一部分:线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分:synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分ÿ…...
STM32标准库-DMA直接存储器存取
文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...
转转集团旗下首家二手多品类循环仓店“超级转转”开业
6月9日,国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解,“超级…...
Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具
文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...
跨链模式:多链互操作架构与性能扩展方案
跨链模式:多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈:模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展(H2Cross架构): 适配层…...
【配置 YOLOX 用于按目录分类的图片数据集】
现在的图标点选越来越多,如何一步解决,采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集(每个目录代表一个类别,目录下是该类别的所有图片),你需要进行以下配置步骤&#x…...
