常见的流媒体协议

雪莲生发液常见的流媒体协议
⼀、基本概念
在认识流媒体协议之前,我们⾸先需要简单了解点播和直播的概念。点播是通过摄像设备⾸先将录制完的视频上传到服务器,供⽤户下载和播放,因此通信的两端为:视频⽂件和播放器;直播是在摄像设备拍摄过程中,直接将视频发送⾄播放器端,进⾏播放,保证了视频的时效性。
直播中视频数据传输就需要使⽤流媒体技术。
(百度百科)是指将⼀连串的媒体数据压缩后,经过⽹上分段发送数据,在⽹上即时传输影⾳以供观赏的⼀种技术与过程,此技术使得数据包得以像流⽔⼀样发送;如果不使⽤此技术,就必须在使⽤前下载整个媒体⽂件。流式传输可传送现场影⾳或预存于服务器上的影⽚,当观看者在收看这些影⾳⽂件时,影⾳数据在送达观看者的计算机后⽴即由特定播放软件播放。
流媒体实际指的是⼀种新的媒体传送⽅式,有声⾳流、视频流、⽂本流、图像流、动画流等,⽽⾮⼀种新的媒体。
多画面处理器流媒体最主要的技术特征就是流式传输,它使得数据可以像流⽔⼀样传输。流式传输是指通过⽹络传送媒体(⾳频、视频等)技术的总称。实现流式传输主要有两种⽅式:顺序流式传输( progressive streaming)
和实时流式传输( real time streaming)。采⽤哪种⽅式依赖于具体需求。
顺序流式传输
过线槽
顺序流式传输是顺序下载,⽤户在观看在线媒体的同时下载⽂件,在这⼀过程中,⽤户只能观看下载完的部分,⽽不能直接观看未下载部分。也就是说,⽤户总是在⼀段延时后才能看到服务器传送过来的信息。由于标准的HTTP服务器就可以发送这种形式的⽂件,它经常被称为HTTP流式传输。
由于顺序流式传输能够较好地保证节⽬播放的质量,因此⽐较适合在⽹站上发布的、可供⽤户点播的、⾼质量的视频。
二苯并萘
顺序流式⽂件是放在标准HTTP或FTP服务器上,易于管理,基本上与防⽕墙⽆关。顺序流式传输不适合长⽚段和有随机访问要求的视频,如:讲座、演说与演⽰。它也不⽀持现场⼴播。
实时流式传输
实时流式传输必须保证匹配连接带宽,使媒体可以被实时观看到。在观看过程中⽤户可以任意观看媒体前⾯或后⾯的内容,但在这种传输⽅式中,如果⽹络传输状况不理想,则收到的图像质量就会⽐较差实时流式传输需要特定服务器,如 Quick Time
Streaming Server、 Realserver或 Windows Media server。这些服务器允许对媒体发送进⾏更多级别的控制,因⽽系统设置、管理⽐标准HTTP服务器更复杂。实时流式传输还需要特殊⽹络协议,如:==RTSP( realtime streaming protocol)==或MMS(microsoft media server)。在有防⽕墙时,有时会对这些协议进⾏屏闭,导致⽤户不能看到⼀些地点的实时内容,实时流式传输总是实时传送,因此特别适合现场事件。
⼆、流媒体协议和视频编码协议
编解码协议是指利⽤视频压缩技术,通过视频的前后帧数据的关联性,最⼤程度较⼩数据的冗余性,以达到视频压缩的⽬的,常见的编码协议有:H.264、H.265以及最新的AV1协议。
视频格式是指视频⽂件的格式,主要有 .mp4、.m4v、.avi、.mov等,视频格式主要做的是对原始⾳频数据做进⼀步的封装,添加⼀些额外的信息。
借助⽹上的⼀个例⼦帮助理解,假设你是商⼈,需要批量运输⾐服(⾐服就是视频)。编解码器就是将⾐服压缩成捆以节省空间的机器。容器格式就是装压缩后⾐服的集装箱。流协议就是将其运输到⽬的地的铁轨、信号灯和驾驶员。
三、常见的流媒体协议
3.1 HLS协议
HTTP Live Streaming(HLS)是⼀个由苹果公司提出的基于HTTP的流媒体⽹络传输协议。是苹果公司QuickTime X和iPhone软件系统的⼀部分。旨在能够从 iPhone 中删除 flash,如今已成为使⽤最⼴泛的协议。 它的⼯作原理是把整个流分成⼀个个⼩的基于HTTP的⽂件来下载,每次只下载⼀些。当媒体流正在播放时,客户端可以选择从许多不同的备⽤源中以不同的速率下载同样的资源,允许流媒体会话适应不同的数据速率。
HLS 协议由三部分组成:HTTP、M3U8、TS。这三部分中,HTTP 是传输协议,M3U8 是索引⽂件,TS 是⾳视频的媒体信息。
HLS 的 m3u8,是⼀个 ts 的列表,也就是告诉浏览器可以播放这些 ts ⽂件,譬如:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:64
#EXT-X-TARGETDURATION:12
#EXTINF:11.550
livestream-64.ts
#EXTINF:5.250
livestream-65.ts
#EXTINF:7.700
livestream-66.ts
#EXTINF:6.850
livestream-67.ts
每⼀个 .m3u8 ⽂件,分别对应若⼲个 ts ⽂件,这些 ts ⽂件才是真正存放视频的数据,m3u8 ⽂件只是存放了⼀些 ts ⽂件的配置信息和相关路径,当视频播放时,.m3u8 是动态改变的,video 标签会解析这个⽂件,并到对应的 ts ⽂件来播放,所以⼀般为了加快速
烫贴度,.m3u8 放在 web 服务器上,ts ⽂件放在上。
HLS 整体框架图:Server、CDN 和 Client
HLS 协议编码格式要求
视频的编码格式:H.264、H.265(同样⼤⼩的⽂件,H.265 编码的视频质量是 H.264 的⼆倍。)
⾳频的编码格式:AAC、MP3、AC-3
视频的封装格式:ts
保存 ts 索引的 m3u8 ⽂件
HLS 协议优势
HLS 相对于 RTMP 来讲使⽤了标准的 HTTP 协议来传输数据,可以避免在⼀些特殊的⽹络环境下被屏蔽。
HLS 相⽐ RTMP 在服务器端做负载均衡要简单得多。因为 HLS 是基于⽆状态协议 HTTP 实现的,客户端只需要按照顺序使⽤下载存储在服务器的普通 ts ⽂件进⾏播放就可以。⽽ RTMP 是⼀种有状态协议,很难对视频服务器进⾏平滑扩展,因为需要为每⼀个播放视频流的客户端维护状态。
HLS 协议本⾝实现了码率⾃适应,在不同带宽情况下,设备可以⾃动切换到最适合⾃⼰码率的视频播放。
HLS 协议缺点
HLS 协议在直播的视频延迟时间很难做到 10 s 以下延时,⽽ RTMP 协议的延时可以降到 3s-4s 左右。
3.2 RTSP、RTCP和RTP
基于TCP/IP协议体系的⼀个应⽤层协议,RTSP在体系结构上位于RTP和RTCP之上,它使⽤TCP或UDP完成数据传输,该协议定义了⼀对多应⽤程序如何有效地通过IP⽹络传送多媒体数据。 本协议是最早的视频传输协议。其中RTSP协议⽤于视频点播的会话控制,例如发起点播请求的SETUP请求,进⾏具体播放操作的PLAY、PAUSE请求,视频的跳转也是通过PLAY请求的参数⽀持的。
竹炭颗粒优点,可以控制到视频帧,因此可以承载实时性很⾼的应⽤。这个优点是相对于HTTP⽅式的最⼤优点。复杂度主要集中在服务器端,可以进⾏倍速播放功能,其他视频协议都⽆法⽀持。 ⽹络延时低,⼀般在0.5S以内;
缺点,就是服务器端的复杂度也⽐较⾼,实现起来也⽐较复杂。ios端不⽀持该协议,对移动端⽀持较弱;
Rtp数据协议负责对流媒体数据进⾏封包并实现媒体流的实时传输,每⼀个RTP数据报都由头部(Header)和负载(Payload)两个部分组成,其中头部前12个字节的含义是固定的,⽽负载则可以是⾳频或者视频数据。
RTP载荷封装设计本⽂的⽹络传输是基于IP协议,所以最⼤传输单元(MTU)最⼤为1500字节,在使⽤I
P/UDP/RTP的协议层次结构的时候,这 其中包括⾄少20字节的IP头,8字节的UDP头,以及12字节的RTP头。这样,头信息⾄少要占⽤40个字节,那么RTP载荷的最⼤尺⼨为1460字 节。以H264 为例,如果⼀帧数据⼤于1460,则需要分⽚打包,然后到接收端再拆包,组合成⼀帧数据,进⾏解码播放。
==RTCP控制协议需要与RTP数据协议⼀起配合使⽤,当应⽤程序启动⼀个RTP会话时将同时占⽤两个端⼝,分别供RTP和RTCP使⽤。RTP本⾝并 不能为按序传输数据包提供可靠的保证,也不提供流量控制和拥塞控制,这些都由RTCP来负责完成。==通常RTCP会采⽤与RTP相同的分发机制,向会话中的 所有成员周期性地发送控制信息,应⽤程序通过接收这些数据,从中获取会话参与者的相关资料,以及⽹络状况、分组丢失概率等反馈信息,从⽽能够对服务质量进 ⾏控制或者对⽹络状况进⾏诊断。
3.3 RTMP协议
RTMP是Real Time Messaging Protocol(实时消息传输协议)的⾸字母缩写。RTMP(Real Time Messaging Protocol)实时消息传送协议是Adobe Systems公司为Flash播放器和服务器之间⾳频、视频和数据传输 开发的开放协议。
该协议基于TCP,是⼀个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。RTMP是⼀种设计⽤来进⾏实时数据通信的⽹络协议,主要⽤来在Flash/AIR平台和⽀持RTMP协议的
流媒体/交互服务器之间进⾏⾳视频和数据通信。⽀持该协议的软件包括Adobe Media Server/Ultrant Media Server/red5等。
由于 RTMP 播放视频需要依赖 Flash 插件。⽽ Flash 插件多年来⼀直受安全问题困扰,正在被迅速淘汰。因此,⽬前 RTMP 主要⽤于提取 stream。也就是,当设置解编码器将视频发送到托管平台时,视频将使⽤ RTMP 协议发送到 CDN,随后使⽤另⼀种协议(通常是HLS)传递给播放器。
优点,⽀持直播、点播
缺点, 需要专⽤的服务器。
3.4 其他协议
Dynamic Adaptive Streaming over HTTP (MPEG-DASH)
Microsoft Smooth Streaming (MSS)
HTTP Dynamic Streaming (HDS)

本文发布于:2024-09-23 00:24:16,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/150585.html

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

标签:协议   视频   传输   数据   流式   播放   服务器
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议