实时音视频数据传输协议介绍

      最后更新:2022-06-15 01:17:53 手机定位技术交流文章

      概述

      随着移动互联网的迅速发展和智能终端性能的逐步提高,智能终端之间的实时音频和视频通信已成为移动互联网的发展的重要方向。因此,如何确保智能终端之间的实时音频和视频数据通信成为一个非常现实的问题。 实际上,实时音频视频通信=音频视频处理+网络传输。包括采集 、 编码 、 网络传输 、 解码 、 播放等.视频和音频处理的采集、解码和播放不受网络条件的影响。仅限于解码算法,播放策略等因素。网络传输的损失 、 震动和序列影响了实时音频视频应用的体验.如何好解决这些问题,这是一个巨大的研究项目,现在有许多非常成熟的实时音频视频数据传输协议,他们在一定程度上解决了这些问题,我们需要尽可能地了解它们,并选择适合我们的应用程序的协议.本文简要介绍了这些主流实时音频视频数据传输协议。

      RTP 协议

      RTP(Real-time Transport Protocol)是互联网上多媒体数据流的层级传输协议。RTP协议详细描述了通过互联网传输音频和视频的标准包格式。RTP协议通常用于流媒体系统(与RTCP协议),视频会议和传入对话系统(H.323或SIP),使它成为IP电话业的技术基础.与RTCP一起使用RTTP协议和RTTP控制协议,它建立在UDP协议上。

      RTP本身不提供及时传输机制或其他服务质量(QoS)保证,它依靠低级服务来实施这一过程。RTP不保证传输或防止无序传输,基础网络的可靠性也是不确定的。RTP实现有序的传输,RTP中的序列数允许接收者重新组织发送者的包次序,同时,序列数也可以用来确定适当的包装位置,例如:在视频解码中,就不需要顺序解码。

      RTP由两个紧密关联的部分组成: RTP(英语:RTTP Control Protocol)(RTCP) — 监测服务质量并向正在进行的对话中参与者发送相关信息。具体协议内容请参阅国际ETF标准文件RFC3550/RFC3551。

      RTCP 协议

      实时交通控制协议(RTCP)是实时交通控制协议(RTP)的一个姊妹协议。RTCP为RTP媒体流提供带外控制。RTCP本身不传输数据,然而,它与RTP合作以包装和发送多媒体数据。RTCP 定期 通过 流媒体 对话 中 参加者 之间 的 控制 数据 。RTCP的主要职能是提供对RTP提供的服务质量的反馈。

      RTCP收集与媒体联系有关的统计资料,例如:传输字节数,传输分组数,丢失分组数,jitter,单向和双向网络延迟等等。网络应用可以利用RTCP提供的资料来改善服务质量,例如,限制信息流或替换压缩的较小的编码器。RTCP本身不提供数据加密或认证。SRTCP可以用于此目的。

      RTP和RTCP之间的关系可以通过实时视频传输流程图来理解。见下图:

      SRTP和SRTCP协议

      安全实时传输协议(英语:Secure Real-time Transport Protocol,SRTP)是基于实时传输协议(RTP)的协议。它旨在为单播和多播应用程序的实时传输协议中的数据提供加密、消息认证、完整性保证和迁移保护。它由David Oran 和 Rolf Blom 开发。它于2004年3月由IETF首次以RFC3711的形式发布。

      由于实时传输协议和可用于控制实时传输协议的对话的实时传输控制协议(RTP控制协议或RTCP)密切相关,安全实时传输协议也具有附带协议,它被称为安全实时传输控制协议(SRTCP);安全实时传输控制协议提供与实时传输控制协议类似的安全特性。就像安全实时协议提供给实时协议一样。

      使用实时传输协议或实时传输控制协议,不使用安全实时传输协议或安全实时传输控制协议是可选的;然而,即使使用安全实时传输协议或安全实时传输控制协议,它们提供的所有功能(如加密和认证)也是可选的,这些属性可以独立使用或禁用。唯一的例外是使用安全实时传输控制协议,必须使用消息认证特性。

      具体协议内容请参阅国际ETF标准文件RFC3711。

      RTSP 协议

      它由Real Networks和Netscape共同开发。该协议定义了多个应用程序如何通过IP网络有效地传输多媒体数据。RTSP提供了可扩展的框架,使实时数据,例如,控制的音频和视频广播成为可能。数据源包括现场数据和存储在剪辑中的数据。协议的目的是控制发送多个数据的连接,为选择发送通道,例如,UDP、多播UDP和TCP提供了一种方法,它还提供了一种基于RTP的发送机制的选择方法。

      RTSP(Real Time Streaming Protocol)是一种用于控制声音或图像的多媒体 streaming协议。并允许同时控制多个流量要求,传输中使用的网络通信协议不属于其定义范围,服务器可以选择使用TCP或UDP传输流内容,它的语法和操作类似于HTTP1。但没有特别强调时间同步,因此它可以容忍网络延迟。上述允许同时多流需求控制(Multicast),除了减少服务器端的网络使用,此外,它支持多边视频会议。因为HTTP1.1的操作方式类似,因此,代理代理服务器的快速访问功能缓存也适用于RTSP,因为RTSP有一个转向功能,可以通过查看实际负载情况转换为提供服务的服务器,以避免在同一服务器上集中的过载引起的延迟。

      具体协议内容请参阅国际ETF标准文件RFC2326。

      RTSP与RTP的关系

      与 http 和 ftp 不同, RTP 将 数据 发送到 网络 以 固定 数据 速率, 并且 客户端 也 以 这个 速率 观看 电影 。 一旦 播放 了 电影, 它 不能 重复, 除非 服务器 再次 要求 数据 。

      RTSP与RTTP最大的区别在于RTSP是一个双向实时数据传输协议,它允许客户端向服务器发送请求,如重新释放、快速进入、逆转等操作。当然,RTSP可以基于RTP传输数据,也可以选择TCP、UDP或联合UDP频道发送数据,具有很好的扩展性。它是类似于 http 协议的网络应用程序层协议.

      下面的图所示的例子如下:在服务器端收集、编码和发送双向视频,并通过客户端接收和显示双向视频。 由于客户端不需要在视频数据上进行任何逆转或逆转操作,UDP+RTP+调制可以直接实现。

      RTMP/RTMPS协议

      RTMP(Real Time Messaging Protocol)是一个由Adobe系统开发的开放协议,用于将音频、视频和数据传输到Flash播放器和服务器之间。

      它有三种变种:

      • 使用1935年港口的TCP协议;

      • RTMPT包含在HTTP请求中,可以通过防火墙;

      • RTMPS与RTMPT相似,但使用HTTPS连接。

      RTMP协议(Real Time Messaging Protocol)由Flash用于传输对象、视频和音频。该协议是建立在TCP协议或查询HTTP协议之上。RTMP协议类似于装载包的容器,它可以是AMF格式数据或FLV的视觉/音频数据。单一的连接可以通过不同的通道传输多个网络流,这些通道中的数据包按照固定的数据包大小进行传输。

      MMS 协议

      MMS (Microsoft Media Server Protocol),中国“微软媒体服务器协议”,用于访问Windows Media servers.an asf文件中的同步接收。MMS协议用于访问Windows Media发布点的单播内容。MMS是连接Windows Media单播服务的默认方法。如果查看者在Windows媒体播放器中输入URL连接到内容,而不是通过超链接访问内容,然后他们必须使用MS协议来引用流.MMS的港口是1755年。

      当使用MS协议连接到发布点时,使用协议翻转获取最佳连接.协议转开始通过MMSU尝试连接客户端。MMSU是UDP数据传输的MMS协议。如果MMSU连接失败,服务器试图使用MMST.MMST是TCP数据传输的MMS协议。

      如果连接到嵌入式 index.asf文件,想更快地向前走,停下来,开始和停止流动,MMS必须使用。使用UNC路径不能向前或向后移动.如果你从一个独立的Windows Media Player连接到发布点,必须指定单播内容的URL.如果内容在主要发布点广播,该URL由服务器名称与asf文件名组成。例如: mms://windows_media_server/sample.asf.其中之一, windows_media_server,是一个Windows Media服务器名称。sample.Asf是你想转换为flow.asf文件名。

      如果你有任何实时内容要广播,URL由服务器名称和发布点名称组成。例如: mms://windows_media_server/LiveEvents。这里 windows_media_server是Windows Media服务器的名称,LiveEvents是一个发布点名称。

      HLS 协议

      HTTP Live Streaming(HLS)是一个由苹果公司提供的服务。可以实现流媒体的现场直播,主要用于iOS系统,提供iOS设备(如iPhone和iPad)的音频和视频流和点到点编程。HLS点播,基本上,它是一个常见的HTTP分段指针,不同在于,它的分段非常小。

      与一般的流媒体协议相比,例如, RTMP协议, RTSP协议, MMS协议等。HLS Live的最大的区别在于,由现场客户接收,这不是完整的数据流。HLS协议将实时数据流存储在服务器端,作为连续、非常短期的媒体文件(MPEG-TS格式),客户不断下载和播放这些小文件,因为服务器总是用最新的实时数据生成新的小文件,这样,客户端可以连续地播放从服务器中获取的文件,就实现了直播。由此可见,基本上可以认为,HLS被应用于点到点广播技术。因为数据通过HTTP协议传输,所以不需要考虑防火墙或代理的问题,这些分段的期限非常短,客户可以快速选择和转换编码率,在不同的带宽条件下进行播放。然而,HLS的技术特点,确定它的延迟通常高于通常的流媒体广播协议.

      基于以上理解,为了实现HTTP Live Streaming的实时直播,需要研究和实现以下技术关键点:

      • 从视频和音频来源收集数据

      • 原始数据的H264编码和AAC编码

      • MPEG-TS用视频和音频数据包

      • HLS segment generation strategy and m3u8 index file

      • HTTP传输协议

      • 资料领取,私信扣1

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/27332.html

          热门文章

          文章分类