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)。

常用多媒体传输协议简介相关推荐

  1. MTP 多媒体传输协议

    1.MTP(Media Transfer Protocol) 多媒体传输协议,是基于PTP(Picture Transfer Protocol)协议的扩展,主要用于传输媒体文件,其中有价值的应用就是同 ...

  2. rtp 多媒体流同步控制 实时传输协议 简介

    RTP(Real-time Transport Protocol)是由IETF开发的实时传输协议,可以在面向连接或无连接的下层协议上工作,通常和UDP协议一起使用.RTP的工作机理与RSVP不同,主要 ...

  3. 常用应用层传输协议和端口

    常用的应用层协议及对应的端口: 应用程序 协议 端口 http tcp 80 https tcp 443 ftp tcp 21(身份验证)+20(文件传输) smtp(邮件发送)tcp 25 pop( ...

  4. 技术博客|第15期:流媒体传输协议简介 - HLS协议

    在Hulu及Disney+流媒体平台上,自适应流媒体传输技术被广泛使用,它可以根据用户的网络情况相应地调整视频码率,为用户带来良好的观看体验.为了实现这一点,视频将被编码成不同码率的版本,并且在每个版 ...

  5. 蓝牙音频传输协议简介

    HFP  HFP(Hands-free Profile),让蓝牙设备可以控制电话,如接听.挂断.拒接.语音拨号等,拒接.语音拨号要视蓝牙耳机及电话是否支持.  HSP  HSP 描述了 Bluetoo ...

  6. AVB音视频传输协议简介

    一.音视频传输面临的主要问题 二.如何解决这些问题 1. 网络传输问题 2. 媒体时钟同步问题 三.AVB体系 1.协议框架 2. 网络拓扑 3. 典型应用场景 a. 车载娱乐系统 b. 大型演唱会现 ...

  7. virtio 传输协议简介

    作者:John.Gong        微信:hitgom 本打算放上前段时间team内部share的pdf的,但是pdf过于简单,只涉及了virtio-blk中读请求的实现.对于没有virtio基础 ...

  8. 网络摄象机常用传输协议

    多播路由是一个很好的技术,在Internet上实现了对数据的"广播",不同于广播的是,由于广播风暴的问题,路由器是禁止广播数据跨路由传送的.而多播则很好的解决了这个问题.现在M$软 ...

  9. HTTP协议简介,数据安全 如何保证http传输安全性,http与https区别

    目前大多数网站和app的接口都是采用http协议,但是http协议很容易就通过抓包工具监听到内容,甚至可以篡改内容,为了保证数据不被别人看到和修改,可以通过以下几个方面避免. 重要的数据,要加密,比如 ...

最新文章

  1. Ubuntu服务器版硬件认证详情
  2. 1月26日学习内容整理:reverse函数补充,modelform对象补充,form表单参数补充
  3. WM_NCPAINT消息
  4. MySQL5.7 版本的安装、配置
  5. 用Python实现选择排序
  6. java务必让常量的值在运行期保持不变
  7. PL/SQL 连接配置
  8. oracle 存储过程 存储 blob,穿越oracle存储过程的Blob参数上传文件
  9. 日期插件My97DatePicker
  10. ACM PKU 1251 Jungle Roads http://poj.org/problem?id=1251
  11. 电脑怎么开护眼模式_绿色电脑桌面、手机护眼模式真的可以护眼?
  12. Oracle中级篇-物化视图
  13. Json转XML后将首字母大写(或者其他自己的需求格式)对象中包含list集合以及日期字段的处理(注解形式)
  14. 今天讲一下完整的前端模块化,很实用
  15. python中fun函数求1+2…+n_功能:编写函数fun求1!+2!+3!+ …… +n!的和,在main函 数中由键盘输入n值,并输出运算结果。请编写fun 函数...
  16. flink实战--核心概念解析和应用
  17. 鸿蒙和iqoo系统谁强,鸿蒙系统发布会,小米11降500,iQOO、酷派、魅族、惠普发布新品...
  18. Cross-scene Crowd Counting via Deep Convolutional Neural Networks2015论文笔记
  19. Chrome审查元素一些介绍
  20. JDBC连接执行mysql存储过程报权限错误:User does not have access to metadata required to determine stored procedure

热门文章

  1. C# listView 增 改 删 查
  2. 树莓派3配置samba共享文件
  3. 自定义view-绘制流程
  4. java suspend wait_java中线程阻塞之sleep、suspend、wait、resume、notify方法解析
  5. 快速集成APP注册页面免费获取短信验证码功能
  6. python数据分析基础试卷及答案_PYTHON数据分析基础_章节测验,期末考试,慕课答案查询公众号...
  7. 仿Apple官网首页 HTML+CSS+JS
  8. app测试必掌握的核心测试:UI、功能测试
  9. python fileinput_Python fileinput模块使用实例
  10. pandorabox配置DDNS,在外网远程登录路由器