流媒体传输协议RTP/RTCP、RTSP 的区别和联系

2024-05-11 05:08

本文主要是介绍流媒体传输协议RTP/RTCP、RTSP 的区别和联系,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

流媒体现在用的非常的广泛。例如:无人机,安防监控等领域。


目前最为流行的流媒体传输方式是RTP/RTCP。在这种流媒体传输中应用层采用RTP/RTCP,传输层使用的UDP协议。这种方式将压缩的视频分为一个个的数据包,由媒体服务器向用户连续、实时的传输。一般情况下,流媒体实时传输方式中都是和RTSP一起使用。


各自实现的功能如下:

RTP:实时视频数据的承载、打包和传输。主要是在视频数据方面。

RTCP:为RTP的传输提供流量控制、拥塞控制和网络状况反馈等服务。主要是在视频数据的传输网络方面。

RTSP:多媒体播放控制协议,负责服务器和客户端之间的回话建立,交互以及拆接等控制。用户可以通过它对下载的实时数据进行控制,如:暂停、继续、后退和前进等功能。

网络流媒体传输的结构:

RTP/RTCP流媒体的架构图如上图所示:压缩的媒体流数据通过RTP持续不断的发送到传输层的UDP,由UDP打包发送到IP层,通过网络传输到用户端。用户在接收媒体数据的同时,可以通过RTSP发送控制命令,整个流媒体回话期间,服务端和客户端始终保持联系。服务器和客户端都可以通过RTCP发送控制信息,服务器可以通过客户端的RTCP反馈信息进行一些动态的调整。

RTSP/RTP不仅支持点播,还支持直播,可用于传输实时视频流。RTSP/RTP需要专门的流媒体服务器,部署起来比较麻烦。

这篇关于流媒体传输协议RTP/RTCP、RTSP 的区别和联系的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/978591

相关文章

Java中ArrayList和LinkedList有什么区别举例详解

《Java中ArrayList和LinkedList有什么区别举例详解》:本文主要介绍Java中ArrayList和LinkedList区别的相关资料,包括数据结构特性、核心操作性能、内存与GC影... 目录一、底层数据结构二、核心操作性能对比三、内存与 GC 影响四、扩容机制五、线程安全与并发方案六、工程

Linux流媒体服务器部署流程

《Linux流媒体服务器部署流程》文章详细介绍了流媒体服务器的部署步骤,包括更新系统、安装依赖组件、编译安装Nginx和RTMP模块、配置Nginx和FFmpeg,以及测试流媒体服务器的搭建... 目录流媒体服务器部署部署安装1.更新系统2.安装依赖组件3.解压4.编译安装(添加RTMP和openssl模块

java中不同版本JSONObject区别小结

《java中不同版本JSONObject区别小结》本文主要介绍了java中不同版本JSONObject区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们... 目录1. FastjsON2. Jackson3. Gson4. org.json6. 总结在Jav

数据库使用之union、union all、各种join的用法区别解析

《数据库使用之union、unionall、各种join的用法区别解析》:本文主要介绍SQL中的Union和UnionAll的区别,包括去重与否以及使用时的注意事项,还详细解释了Join关键字,... 目录一、Union 和Union All1、区别:2、注意点:3、具体举例二、Join关键字的区别&php

nginx-rtmp-module构建流媒体直播服务器实战指南

《nginx-rtmp-module构建流媒体直播服务器实战指南》本文主要介绍了nginx-rtmp-module构建流媒体直播服务器实战指南,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录1. RTMP协议介绍与应用RTMP协议的原理RTMP协议的应用RTMP与现代流媒体技术的关系2

java中的HashSet与 == 和 equals的区别示例解析

《java中的HashSet与==和equals的区别示例解析》HashSet是Java中基于哈希表实现的集合类,特点包括:元素唯一、无序和可包含null,本文给大家介绍java中的HashSe... 目录什么是HashSetHashSet 的主要特点是HashSet 的常用方法hasSet存储为啥是无序的

2.1/5.1和7.1声道系统有什么区别? 音频声道的专业知识科普

《2.1/5.1和7.1声道系统有什么区别?音频声道的专业知识科普》当设置环绕声系统时,会遇到2.1、5.1、7.1、7.1.2、9.1等数字,当一遍又一遍地看到它们时,可能想知道它们是什... 想要把智能电视自带的音响升级成专业级的家庭影院系统吗?那么你将面临一个重要的选择——使用 2.1、5.1 还是

Python中@classmethod和@staticmethod的区别

《Python中@classmethod和@staticmethod的区别》本文主要介绍了Python中@classmethod和@staticmethod的区别,文中通过示例代码介绍的非常详细,对大... 目录1.@classmethod2.@staticmethod3.例子1.@classmethod

Golan中 new() 、 make() 和简短声明符的区别和使用

《Golan中new()、make()和简短声明符的区别和使用》Go语言中的new()、make()和简短声明符的区别和使用,new()用于分配内存并返回指针,make()用于初始化切片、映射... 详细介绍golang的new() 、 make() 和简短声明符的区别和使用。文章目录 `new()`

Python中json文件和jsonl文件的区别小结

《Python中json文件和jsonl文件的区别小结》本文主要介绍了JSON和JSONL两种文件格式的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下... 众所周知,jsON 文件是使用php JSON(JavaScripythonpt Object No