流媒体协议介绍(rtprtcprtsprtmpmmshls)

阅读: 评论:0

流媒体协议介绍(rtprtcprtsprtmpmmshls)
RTP
监视器安装参考⽂档  RFC3550/RFC3551
Real-time Transport Protocol)是⽤于Internet上针对多媒体数据流的⼀种传输层协议。RTP协议详细说明了在互联⽹上传递⾳频和视频的标准数据包格式。RTP协议常⽤于流媒体系统(配合RTCP协议),视频会议和⼀键通(Push to Talk)系统(配合H.323或SIP),使它成为IP电话产业的技术基础。RTP协议和RTP控制协议RTCP⼀起使⽤,⽽且它是建⽴在UDP协议上的。
RTP 本⾝并没有提供按时发送机制或其它服务质量(QoS)保证,它依赖于低层服务去实现这⼀过程。 RTP 并不保证传送或防⽌⽆序传送,也不确定底层⽹络的可靠性。 RTP 实⾏有序传送, RTP 中的序列号允许接收⽅重组发送⽅的包序列,同时序列号也能⽤于决定适当的包位置,例如:在视频解码中,就不需要顺序解码。
RTP 由两个紧密链接部分组成: RTP ― 传送具有实时属性的数据;RTP 控制协议(RTCP) ― 监控服务质量并传送正在进⾏的会话参与者的相关信息
RTCP
实时传输控制协议(Real-time Transport Control Protocol或RTP Control Protocol或简写RTCP)是实时传输协议(RTP)的⼀个妹协议。RTCP为RTP媒体流提供信道外(out-of-band)控制。RTCP本⾝并不传输数据,但和RTP⼀起协作将多媒体数据打包和发送。RTCP定期在流多媒体会话参加者之间传输控制数据。RTCP的主要功能是为RTP所提供的服务质量(Quality of Service)提供反馈。
RTCP收集相关媒体连接的统计信息,例如:传输字节数,传输分组数,丢失分组数,jitter,单向和双向⽹络延迟等等。⽹络应⽤程序可以利⽤RTCP所提供的信息试图提⾼服务质量,⽐如限制信息流量或改⽤压缩⽐较⼩的编解码器。RTCP本⾝不提供数据加密或⾝份认证。SRTCP可以⽤于此类⽤途。
SRTP & SRTCP
参考⽂档 RFC3711
安全实时传输协议(Secure Real-time Transport Protocol或SRTP)是在实时传输协议(Real-time Transport Protocol或RTP)基础上所定义的⼀个协议,旨在为单播和多播应⽤程序中的实时传输协议的数据提供加密、消息认证、完整性保证和重放保护。它是由David Oran(思科)和Rolf Blom(爱⽴信)开发的,并最早由IETF于2004年3⽉作为RFC3711发布。
由于实时传输协议和可以被⽤来控制实时传输协议的会话的实时传输控制协议(RTP Control Protocol或RTCP)有着紧密的联系,安全实时传输协议同样也有⼀个伴⽣协议,它被称为安全实时传输控制协议(Secure RTCP或SRTCP);安全实时传输控制协议为实时传输控制协议提供类似的与安全有关的特性,就像安全实时传输协议为实时传输协议提供的那些⼀样。
在使⽤实时传输协议或实时传输控制协议时,使不使⽤安全实时传输协议或安全实时传输控制协议是可选的;但即使使⽤了安全实时传输协议或安全实时传输控制协议,所有它们提供的特性(如加密和认证)也都是可选的,这些特性可以被独⽴地使⽤或禁⽤。唯⼀的例外是在使⽤安全实时传输控制协议时,必须要⽤到其消息认证特性。
RTSP
参考⽂档 RFC2326
是由Real Networks和Netscape共同提出的。该协议定义了⼀对多应⽤程序如何有效地通过IP⽹络传送多媒体数据。RTSP提供了⼀个可扩展框架,使实时数据,如⾳频与视频的受控、点播成为可能。数据源包括现场数据与存储在剪辑中的数据。该协议⽬的在于控制多个数据发送连接,为选择发送通道,如UDP、多播UDP与TCP提供途径,并为选择基于RTP上发送机制提供⽅法。
RTSP(Real Time Streaming Protocol)是⽤来控制声⾳或影像的多媒体串流协议,并允许同时多个串流需求控制,传输时所⽤的⽹络通讯协定并不在其定义的范围内,服务器端可以⾃⾏选择使⽤TCP或UDP来传送串流内容,它的语法和运作跟HTTP 1.1类似,但并不特别强调时间同步,所以⽐较能容忍⽹络延迟。⽽前⾯提到的允许同时多个串流需求控制(Multicast),除了可以降低服务器端的⽹络⽤量,更进⽽⽀持多⽅视讯会议(Video Conference)。 因为与HTTP1.1的运作⽅式相似,所以代理服务器《Proxy》的快取功能《Cache》也同样适⽤于RTSP,并因RTSP具有重新导向功能,可视实际负载情况来转换提供服务的服务器,以避免过⼤的负载集中于同⼀服务器⽽造成延迟。
RTSP 和RTP的关系
RTP不象http和ftp可完整的下载整个影视⽂件,它是以固定的数据率在⽹络上发送数据,客户端也是按照这种速度观看影视⽂件,当影视画⾯播放过后,就不可以再重复播放,除⾮重新向服务器端要求数据。
RTSP与RTP最⼤的区别在于:RTSP是⼀种双向实时数据传输协议,它允许客户端向服务器端发送请求,如回放、快进、倒退等操作。当然,RTSP可基于RTP来传送数据,还可以选择TCP、UDP、组播UDP等通道来发送数据,具有很好的扩展性。它时⼀种类似与http 协议的⽹络应⽤层协议。⽬前碰到的⼀个应⽤:服务器端实时采集、编码并发送两路视频,客户端接收并显⽰两路视频。由于客户端不必对视频数据做任何回放、倒退等操作,可直接采⽤UDP+RTP+组播实现。
RTP:实时传输协议(Real-time Transport Protocol)
RTP/RTCP是实际传输数据的协议
RTP传输⾳频/视频数据,如果是PLAY,Server发送到Client端,如果是RECORD,可以由Client发送到Server
整个RTP协议由两个密切相关的部分组成:RTP数据协议和RTP控制协议(即RTCP)
RTSP:实时流协议(Real Time Streaming Protocol,RTSP)
RTSP的请求主要有DESCRIBE,SETUP,PLAY,PAUSE,TEARDOWN,OPTIONS等,顾名思义可以知道起对话和控制作⽤
RTSP的对话过程中SETUP可以确定RTP/RTCP使⽤的端⼝,PLAY/PAUSE/TEARDOWN可以开始或者停⽌RTP的发送,等等
RTCP:
RTP/RTCP是实际传输数据的协议
RTCP包括Sender Report和Receiver Report,⽤来进⾏⾳频/视频的同步以及其他⽤途,是⼀种控制协议
SDP
会话描述协议(SDP)为会话通知、会话邀请和其它形式的多媒体会话初始化等⽬的提供了多媒体会话描述。
会话⽬录⽤于协助多媒体会议的通告,并为会话参与者传送相关设置信息。SDP 即⽤于将这种信息传输到接收端。SDP 完全是⼀种会话描述格式―它不属于传输协议―它只使⽤不同的适当的传输协议,包括会话通知协议(SAP)、会话初始协议(SIP)、实时流协议(RTSP)、MIME 扩展协议的电⼦邮件以及超⽂本传输协议(HTTP)。
SDP 的设计宗旨是通⽤性,它可以应⽤于⼤范围的⽹络环境和应⽤程序,⽽不仅仅局限于组播会话⽬录,但 SDP 不⽀持会话内容或媒体编码的协商。
仿古建筑在因特⽹组播⾻⼲⽹(Mbone)中,会话⽬录⼯具被⽤于通告多媒体会议,并为参与者传送会议地址和参与者所需的会议特定⼯具信息,这由 SDP 完成。SDP 连接好会话后,传送⾜够的信息给会话参与者。SDP 信息发送利⽤了会话通知协议(SAP),它周期性地组播通知数据包到已知组播地址和端
⼝处。这些信息是 UDP 数据包,其中包含 SAP 协议头和⽂本有效载荷(text payload)。这⾥⽂本有效载荷指的是 SDP 会话描述。此外信息也可以通过电⼦邮件或WWW (World Wide Web)进⾏发送。
SDP ⽂本信息包括:
1. 会话名称和意图;
2. 会话持续时间;
3. 构成会话的媒体;
4. 有关接收媒体的信息(地址等)。
5. 协议结构
SDP 信息是⽂本信息,采⽤ UTF-8 编 码中的 ISO 10646 字符集。SDP 会话描述如下:(标注 * 符号的表⽰可选字段):
v = (协议版本)
o = (所有者/创建者和会话标识符)
s = (会话名称)
i = * (会话信息)
u = * (URI 描述)
e = * (Email 地址)
p = * (电话号码)
c = * (连接信息 ― 如果包含在所有媒体中,则不需要该字段)
b = * (带宽信息)
⼀个或更多时间描述(如下所⽰):
单相计数器z = * (时间区域调整)
k = * (加密密钥)
a = * (0 个或多个会话属性⾏)
0个或多个媒体描述(如下所⽰)
时间描述
t = (会话活动时间)
r = * (0或多次重复次数)
媒体描述
m = (媒体名称和传输地址)
i = * (媒体标题)
c = * (连接信息 — 如果包含在会话层则该字段可选)载人行李箱
b = * (带宽信息)
k = * (加密密钥)
a = * (0 个或多个会话属性⾏)
RTMP/RTMPS
RTMP(Real Time Messaging Protocol)实时消息传送协议是Adobe Systems公司为Flash播放器和服务器之间⾳频、视频和数据传输开发的开放协议。
它有三种变种:
1)⼯作在TCP之上的明⽂协议,使⽤端⼝1935;
2)RTMPT封装在HTTP请求之中,可穿越防⽕墙;
3)RTMPS类似RTMPT,但使⽤的是HTTPS连接;
RTMP协议(Real Time Messaging Protocol)是被Flash⽤于对象,视频,⾳频的传输.这个协议建⽴在TCP协议或者轮询HTTP协议之上.      RTMP协议就像⼀个⽤来装数据包的容器,这些数据既可以是AMF格式的数据,也可以是FLV中的视/⾳频数据.⼀个单⼀的连接可以通过不同的通道传输多路⽹络流.这些通道中的包都是按照固定⼤⼩的包传输的.
mms
MMS (Microsoft Media Server Protocol),中⽂“微软媒体服务器协议”,⽤来访问并流式接收 Windows Media 服务器中 .asf ⽂件的⼀种协议。MMS 协议⽤于访问 Windows Media 发布点上的单播内容。MMS 是连接 Windows Media 单播服务的默认⽅法。若观众在 Windows Media Player 中键⼊⼀个 URL 以连接内容,⽽不是通过超级链接访问内容,则他们必须使⽤MMS 协议引⽤该流。MMS的预设埠(端⼝)是1755
当使⽤ MMS 协议连接到发布点时,使⽤协议翻转以获得最佳连接。“协议翻转”始于试图通过 MMSU 连接客户端。 MMSU 是MMS 协议结合 UDP 数据传送。如果 MMSU 连接不成功,则服务器试图使⽤ MMST。MMST 是 MMS 协议结合 TCP 数据传送。
如果连接到编⼊索引的 .asf ⽂件,想要快进、后退、暂停、开始和停⽌流,则必须使⽤ MMS。不能⽤ UNC 路径快进或后退。若您从独⽴的 Windows Media Player 连接到发布点,则必须指定单播内容的 URL。若内容在主发布点点播发布,则 URL 由服务器名和 .asf ⽂件名组成。例如:mms://windows_media_server/sample.asf。其中 windows_media_server 是 Windows Media 服务器
名,sample.asf 是您想要使之转化为流的 .asf ⽂件名。
调味篮
若您有实时内容要通过⼴播单播发布,则该 URL 由服务器名和发布点别名组成。例如:mms://windows_media_server/LiveEvents。这⾥ windows_media_server 是 Windows Media 服务器
名,⽽ LiveEvents 是发布点名
HLS
HTTP Live Streaming(HLS)是苹果公司(Apple Inc.)实现的基于HTTP的流媒体传输协议,可实现流媒体的直播和点播,主要应⽤在iOS系统,为iOS设备(如iPhone、iPad)提供⾳视频直播和点播⽅案。HLS点播,基本上就是常见的分段HTTP点播,不同在于,它的分段⾮常⼩。
相对于常见的流媒体直播协议,例如RTMP协议、RTSP协议、MMS协议等,HLS直播最⼤的不同在于,直播客户端获取到的,并不是⼀个完整的数据流。HLS协议在服务器端将直播数据流存储为连续的、很短时长的媒体⽂件(MPEG-TS格式),⽽客户端则不断的下载并播放这些⼩⽂件,因为服务器端总是会将最新的直播数据⽣成新的⼩⽂件,这样客户端只要不停的按顺序播放从服务器获取到的⽂件,就实现了直播。由此可见,基本上可以认为,HLS是以点播的技术⽅式来实现直播。由于数据通过HTTP协议传输,所以完全不⽤考虑防⽕墙或者代理的问题,⽽且分段⽂件的时长很短,客户端可以很快的选择和切换码率,以适应不同带宽条件下的播放。不过HLS的这种技术特点,决定了它的延迟⼀般总是会⾼于普通的流媒体直播协议。 
根据以上的了解要实现HTTP Live Streaming直播,需要研究并实现以下技术关键点
1. 采集视频源和⾳频源的数据
2. 对原始数据进⾏H264编码和AAC编码
3. 视频和⾳频数据封装为MPEG-TS包
4. HLS分段⽣成策略及m3u8索引⽂件
光滑的皮革
5. HTTP传输协议

本文发布于:2023-06-12 08:53:35,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/1/137174.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:协议   传输   数据   信息
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图