网络流媒体协议的联系与区别(RTP RTCP RTSP RTMP HLS)

本文详细介绍了网络流媒体协议RTP, RTCP, RTSP, RTMP和HLS的区别与联系。RTP位于UDP之上,提供实时传输服务;RTCP负责服务质量的控制;RTSP用于多媒体数据的控制;RTMP基于TCP,适用于Flash播放;HLS则是基于HTTP的流媒体协议,适用于iOS设备。不同协议在实时性、延迟和适用场景上有各自的特点,适用于不同的流媒体应用需求。" 115654715,9606489,QGIS使用SCP插件计算多期 Sentinel-2 影像的NDVI,"['GIS', '遥感', 'QGIS插件']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简结">三句话简结

RTP RTCP RTSP RTMP HLS区别与联系

RTP传输流媒体数据、RTCP对RTP进行控制,同步、RTSP发起/终止流媒体
RTP和RTCP互为姐妹关系,RTSP可以使用RTP来传输数据,但并没有绑定关系也可以使用TCP/UDP
RTSP、RTMP、HLS都可以做直播和点播,它们是三种不同的应用层协议

流媒体各协议层次图

关于RTP(RTCP)协议位置的理解:
RTP实际上介于应用层和传输层之间。同时具有应用层和传输层的各种特点。这个特点需要仔细甄别。

从应用开发者的角度看,RTP应该是应用层的一个部分。在应用程序的发送端,开发者必须编写用RTP封装分组(数据包)的程序代码,然后把该RTP分组交给UDP套接字接口。在接收端设备,RTP分组通过UDP套接字接口进入应用层程序后,会利用开发者编写的程序代码把RTP分组从应用数据块提取出来。RTP实际上为视频程序的开发者提供了一个开发平台。

RTP也可以理解为运输层协议,实际上RTP协议偏重于传输层,是UDP协议(用户数据报)上边的一层协议。因为RTP封装了多媒体应用(包括视频流、音频流)的数据块,关键是提供运输层的服务(时间戳,序号、同步源标识符等),因此可以把RTP看成一层UDP上的运输层子层协议,特别要注意是子层协议。

综合来看,RTP协议实际上是一个介于传输层和应用层之间的协议,作用是在UDP协议之上完成一次对媒体流的封装。

基于RTP的流式媒体

流式传输是实现流媒体的关键技术。使用流式传输可以边下载边观看流媒体节目。由于Internet是基于分组传输的,所以接收端收到的数据包往往有延迟和乱序(流式传输构建在UDP上)

要实现流式传输,就要从降低延迟和恢复数据包时序入手。

「在发送端,为降低延迟,往往对传输数据进行预处理(降低质量和高效压缩(常见压缩格式如aac/h264...))」

「在接收端为了恢复时序,常采用接收缓冲,而为了实现媒体的流畅播放,一般会使用播放缓冲」

RTP

RTP(Real-time Transport Protocol)协议创建在UDP协议上常配合RTSP和RTCP一起使用。用于实时传输网络中的多媒体数据,提供端到端的实时传输服务,但并不保证服务质量,服务质量由RTCP来提供。

RTP是流媒体协议族中最基础的一个协议了,它是IETF提出的一个标准,对应RFC文档RFC3550,RFC3550不仅定义了RTP还定义了配套相关协议RTCP。

RTP协议主要职责就是负责流媒体数据包和媒体流的实时传输,每个RTP数据报文由头(header)和装载(Payload)两部分组成,其中头的前12个字节的含义是固定的,装载的数据可以是音频或视频数据。RTP数据报的报头格式如下所示:

「可以将RTP比作一辆货车,货车里面可以随意装东西,但是容积有限制,如果太大你就需要分包,一辆一辆装车发送过,另外可能也不一定按序到达对端,甚至可能失踪」

RTP载荷类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值