网易视频云:流媒体服务器原理和架构解析
一个完整的多媒体文件是由音频和视频两部分组成的,H264、Xvid等就是视频编码格式,MP3、AAC等就是音频编码格式,字幕文件只是附加文件。 + AAC的MP4编码格式支持最好,但是MP4也有很多的缺点,比如视频header很大,影响在线视频网站的初次加载时间。
为了降低头部体积,需要进行视频本身的物理分段等等。对MPEG2-TS格式视频文件进行物理切片,分成一小段,这种方式被Apple公司的HTTP Live Streaming (HLS)技术采用。另外一种是使用Fragmented MP4文件格式,这是一种文件内部的逻辑分割方式,而视频文件还是完整的,这种技术被 Microsoft Smooth Streaming和Adobe HTTP Dynamic Streaming采用。很多在线视频网站在带宽耗费的压力下,主要选择的是adobe公司提供的FLV或F4V,FLV是流媒体封装格式,可将其数据看为二进制字节流。总体上看,FLV包括文件头(File Header)和文件体(File Body)两部分,其中文件体由一系列的Tag及Tag Size对组成。
流媒体传输类型
流媒体在播放前不是完全下载整个文件,而是把开始部分内容存入内存,数据流是随时传送随时播放。
流媒体服务器提供的流式传输方式有两种:顺序流式传输和实时流式传输 两种方式。
顺序流式传输是顺序下载,在下载文件的同时用户可观看在线媒体。如果使用普通的HTTP服务器,将音视频数据以从头至尾方式发送,则为顺序流媒体传输。实时流式传输总是实时传送,特别适合现场事件。一般来说,如果视频为现场直播,或使用专用的流媒体服务器,或应用如RTSP等专用实时协议,即为实时流媒体传输。实时流式传输必须匹配连接带宽,这意味着图像质量会因网络速度降低而变差。
在流式传输时,流媒体数据具有实时性,等时性等基本特点,流服务期和客户终端要保证各种媒体间的同步关系,因此,流媒体传输对“最大延时”,“延时抖动”等QoS参数都有严格要求。
实时流传输既可传输实况直播,也可传输完整的音视频文件(专用协议流式)。
顺序流媒体不可用于实况直播,仅能传输完整的音视频文件(HTTP渐进式)。
区别
实时流
顺序流
音视频数据源
实时从录制设备上采集,
或(使用专用协议传输的)文件
可播放的音视频文件
服务器类型
专用流媒体服务器,如:
QuickTime Streaming Server
Real Server
Windows Media Server
Flash Media Server
普通的HTTP服务器,
或FTP服务器
传输协议
专用协议RTSP,
HLS或RTMP等
一般的HTTP协议,
与传输网页的协议相同
跳播
可随机访问任意片段
在给定时刻,用户只能观看已下载的那部分,而不能跳到还未下载的部分
主流的流媒体协议
主流的流媒体协议主要有: RTMP, HLS, RTSP等。
区别
RTMP
HLS
RTSP
全称
Real Time Message Protocol
Http Live Stream
Real Time Streaming Protocol
上层协议
TCP或HTTP
HTTP
RTP,RTCP
软件模型
C\S
B\S
C\S
研发主要来自
Adobe
Apple
Microsoft
针对客户端
支持Flash类产品
的浏览器
支持HTML5的浏览器
苹果的Safari浏览器
支持HTML5的浏览器
播放器
视频格式要求
FLV, F4V
MP4
无
服务器要求
专用Flash服务器
Flash Media Server
Red5
普通HTTP服务器
专用RTSP流媒体服务器
实况直播要求
专用编码器上传
Flash Media Encoder
专用编码器上传
Apple开发工具
与服务器相关,
自定义上传
文件播放要求
FLV ,F4V文件即可,
服务器会自动分解为
F4f 数据文件
f4x索引文件
TS数据文件,
M3u8索引文件
与服务器相关,
与播放器相关
流媒体协议原理
(一) HTTP渐进式下载原理(仅支持文件播放)
HTTP边下载边播放,严格意义上讲,不是直播协议。他的原理是先下载文件的基本信息,音频视频的时间戳,再下载音视频数据,以播放mp4为例,先下载文件头,根据文件头指引下载文件尾,然后再下载文件的音视频数据。
播放方式:浏览器调用系统播放器播放;
网易视频云:流媒体服务器原理和架构解析 来自淘豆网m.daumloan.com转载请标明出处.