ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

常用多媒体传输协议简介

2019-03-08 16:50:28  阅读:307  来源: 互联网

标签:协议 多媒体 传输 简介 RTSP 会话 RTP RTMP


文章目录

RTMP

实时消息传递协议(RTMP)最初是由Macromedia开发的专有协议,用于通过因特网在Flash播放器和服务器之间传输音频,视频和数据。Macromedia现在归Adobe所有,该公司已发布该协议规范的不完整版本供公众使用。

RTMP协议有多种变体:
“普通”协议,默认使用TCP端口号1935。
RTMPS,它是通过TLS / SSL连接的RTMP 。
RTMPE,使用Adobe自己的安全机制进行RTMP加密。虽然实现的细节是专有的,但该机制使用行业标准的加密原语。[1]
RTMPT,封装在HTTP请求中以遍历防火墙。经常发现RTMPT利用TCP 端口 80和443 上的明文请求绕过大多数企业流量过滤。封装的会话可以携带普通的RTMP,RTMPS或RTMPE分组。
RTMFP,它是通过UDP而不是TCP的RTMP,取代了RTMP Chunk Stream。安全实时媒体流协议套件由Adobe Systems开发,使最终用户能够直接相互连接和通信(P2P)。
虽然RTMP的主要动机是作为播放Flash视频的协议,但它也用于其他一些应用程序,例如Adobe LiveCycle Data Services ES。

RTMP是一种基于TCP的协议,可以维护持久连接并允许低延迟通信。为了顺利地传输流并传输尽可能多的信息,它将流分成片段,并且它们的大小在客户端和服务器之间动态协商。有时,它保持不变; 对于音频数据,默认片段大小为64字节,对于视频数据和大多数其他数据类型,默认片段大小为128字节。然后可以交织来自不同流的片段,并在单个连接上复用。对于较长的数据块,协议因此每个片段仅携带一个字节的头部,因此产生的开销非常小。然而,实际上,单个片段通常不是交错的。相反,交织和多路复用在分组级别完成,跨越若干不同活动信道的RTMP分组以这样的方式交织,以确保每个信道满足其带宽,等待时间和其他服务质量要求。以这种方式交织的分组被视为不可分割的,并且不在分段级别上交织。

RTMP定义了几个可以在其上发送和接收分组的虚拟信道,并且它们彼此独立地操作。例如,存在用于处理RPC请求和响应的信道,用于视频流数据的信道,用于音频流数据的信道,用于带外控制消息的信道(片段大小协商等)等等。 。在典型的RTMP会话期间,在任何给定时间可以同时激活多个通道。当编码RTMP数据时,生成包头。除其他事项外,包头指定了发送它的信道的ID,生成它的时间戳(如果需要),以及包的有效载荷的大小。然后,此标头后跟数据包的实际有效内容,在通过连接发送之前,根据当前商定的片段大小进行分段。数据包标头本身从不分段,其大小不计入数据包第一个片段中的数据。换句话说,只有实际的数据包有效负载(媒体数据)会受到碎片的影响。

在更高级别,RTMP封装MP3或AAC音频和FLV1视频多媒体流,并且可以使用动作消息格式进行远程过程调用(RPC)。所需的任何RPC服务都是使用单个客户端/服务器请求/响应模型异步进行的,因此不需要实时通信。
在这里插入图片描述
在这里插入图片描述

RTP

实时传输协议(RTP)是一种网络协议,用于在传送音频和视频IP网络。RTP用于涉及流媒体的通信和娱乐系统,例如电话,包括WebRTC的视频电话会议应用,电视服务和基于网络的即按即说功能。

RTP通常在用户数据报协议(UDP)上运行。RTP与RTP控制协议(RTCP)结合使用。当RTP承载媒体流(例如,音频和视频)时,RTCP用于监视传输统计和服务质量(QoS)并帮助多个流的同步。RTP是IP语音的技术基础之一,并且在这种情况下通常与诸如会话发起协议(SIP)之类的信令协议结合使用,该协议建立跨网络的连接。

RTP由互联网工程任务组(IETF)的音频 - 视频传输工作组开发,并于1996年首次发布为RFC 1889,于2003年被RFC 3550取代。

RTP专为端到端,实时,流媒体传输而设计。该协议提供抖动补偿和丢包检测以及无序传送的功能,这些功能在IP网络上的UDP传输过程中尤为常见。RTP允许通过IP多播将数据传输到多个目的地。 RTP被视为IP网络中音频/视频传输的主要标准,并与相关的配置文件和有效载荷格式一起使用。 RTP的设计基于称为应用层框架的架构原理协议功能在应用程序中实现,而不是在操作系统的协议栈中实现。

实时多媒体流应用程序需要及时传递信息,并且通常可以容忍一些数据包丢失以实现此目标。例如,音频应用中的分组丢失可能导致丢失一小部分音频数据,这可以通过适当的错误隐藏算法而变得不明显。[3]所述的传输控制协议(TCP),尽管标准化的RTP使用,[4]没有被正常在RTP应用中使用,因为TCP倾向于过度时效的可靠性。相反,大多数RTP实现都是基于用户数据报协议(UDP)构建的。专门为多媒体会话设计的其他传输协议是SCTP [5]和DCCP,但截至2012年,它们并未得到广泛使用。

RTP由IETF标准组织的音频/视频传输工作组开发。RTP与其他协议(如H.323和RTSP)结合使用。[2] RTP规范描述了两种协议:RTP和RTCP。RTP用于传输多媒体数据,RTCP用于周期性地发送控制信息和QoS参数。

数据传输协议RTP承载实时数据。该协议提供的信息包括时间戳(用于同步),序列号(用于分组丢失和重新排序检测)和有效载荷格式,其指示数据的编码格式。所述的控制协议,RTCP,用于媒体流之间的服务质量(QoS)的反馈和同步质量。与RTP相比,RTCP流量的带宽很小,通常约为5%。

RTP会话通常使用信令协议在通信对等体之间发起,例如H.323,会话发起协议(SIP),RTSP或Jingle(XMPP)。这些协议可以使用会话描述协议来指定会话的参数。

为每个多媒体流建立RTP会话。音频和视频流可以使用单独的RTP会话,使接收器能够选择性地接收特定流的组件。会话由目的地IP地址和一对RTP和RTCP端口组成。规范建议选择RTP端口号为偶数,并且每个关联的RTCP端口是下一个更高的奇数。但是,在复用协议的应用程序中,为RTP和RTCP选择单个端口。 RTP和RTCP通常使用非特权UDP端口(1024到65535),但也可能使用其他传输协议,最值得注意的是,SCTP和DCCP,因为协议设计是独立于传输的。

在这里插入图片描述

RTSP

实时流协议(RTSP)是一种网络控制协议,专为娱乐和通信系统的使用,以控制流媒体 服务器。该协议用于建立和控制端点之间的媒体会话。媒体服务器的客户端发出VHS风格的命令,例如播放,录制和暂停,以便于实时控制从服务器到客户端(视频点播)或从客户端到服务器的媒体流(录音) 。

流数据本身的传输不是RTSP的任务。大多数RTSP服务器将实时传输协议(RTP)与实时控制协议(RTCP)结合使用以进行媒体流传输。但是,一些供应商实施专有传输协议。例如,RealNetworks的RTSP服务器软件也使用了RealNetworks的专有实时数据传输(RDT)。

RTSP由RealNetworks,Netscape 和哥伦比亚大学开发,第一份草案于1996年提交给IETF。[2]它由互联网工程任务组(IETF )的多方多媒体会话控制工作组(MMUSIC WG)标准化。并于1998年作为RFC 2326发布。RTSP 2.0 于2016年作为RFC 7826发布,作为RTSP 1.0的替代品。RTSP 2.0基于RTSP 1.0,但除了基本版本协商机制外,不向后兼容。

虽然在某些方面类似于HTTP,但RTSP定义了用于控制多媒体回放的控制序列。虽然HTTP是无状态的,但RTSP具有状态; 在需要跟踪并发会话时使用标识符。与HTTP类似,RTSP使用TCP来维护端到端连接,并且虽然大多数RTSP控制消息由客户端发送到服务器,但是一些命令在另一个方向上传播(即从服务器到客户端)。

SIP

会话发起协议(SIP)是一种信令协议用于发起,维持和终止实时会话包括语音,视频和消息应用程序。[1] SIP用于信令和控制多媒体通信会话中的应用网络电话的语音和视频通话,在私有IP电话系统,在即时通讯上的互联网协议(IP)网络以及手机拨打了LTE(VoLTE的)。

该协议定义了交换的消息的特定格式以及参与者合作的通信顺序。SIP是一种基于文本的协议,包含超文本传输​​协议(HTTP)和简单邮件传输协议(SMTP)的许多元素。[2]使用SIP建立的呼叫可以由多个媒体流组成,但是在SIP消息中作为有效载荷交换数据的应用(例如文本消息)不需要单独的流。

SIP与指定和携带会话媒体的其他几种协议一起工作。最常见的是,媒体类型和参数协商以及媒体设置使用会话描述协议(SDP)来执行,该协议作为SIP消息中的有效载荷来承载。SIP被设计为独立于基础的传输层的协议,并且可与使用用户数据报协议(UDP),所述传输控制协议(TCP),和流控制传输协议(SCTP)。为了在不安全的网络链路上安全地传输SIP消息,可以使用传输层安全性来加密协议(TLS)。对于媒体流(语音,视频)的传输,SIP消息中携带的SDP有效载荷通常采用实时传输协议(RTP)或安全实时传输协议(SRTP)。
在这里插入图片描述
在这里插入图片描述

标签:协议,多媒体,传输,简介,RTSP,会话,RTP,RTMP
来源: https://blog.csdn.net/mouse1598189/article/details/88354143

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有