流媒体技术与应用
2 Http Live Streaming的基础
Http Live Streaming是指基于http传送音视频,它既支持直播,也支持点播。它由3 部分组成:分别是服务器、分发器和客户端。
服务器包括编码器和流分割器
编码器:
对采集的原始数据,包括音视频等等数据进行编码。说白了就是进行数字化 和 数据压缩。apple采用的是H.264标准。编码后的数据封装成MPEG一2TS格式 。
跳播
顺序流
可播放的音视频文件
普通的HTTP服务器, 或FTP服务器
一般的HTTP协议, 与传输网页的协议相同 在给定时刻,用户只能观 看已下载的那部分,而不 能跳到还未下载的部分
实时流 实时从录制设备上采集, 或(使用专用协议传输的)
文件
专用流媒体服务器
专用协议 HLS、RTSP或RTMP等
可随机访问任意片段
实质 • HTTP为基础的流媒体自适应传输是一种混合型的传输方式,它的传输动作类似流媒体,但是
实际上是基于HTTP渐序性下载。
特点 • 第一:它从同一个源产生多个不同码率的节目流以适应不同的带宽和不同的设备类型。 • 第二:自适应分发文件以及码流传输的变化都是适应有效网络吞吐量和可用的CPU资源。 • 第三:所有的操作对用户都是透明的,节目流的切换都在后台进行,用户很难注意到节目流的
压缩比低
流媒体基础知识----分辨率
分辨率(resolution)就是屏幕图像的 精密 度,是指显示器所能显示的像素的多少。 由于屏幕上的点、线和面都是由像素组 成的。
默认标准:
标清/流畅 240~360p
高清 480p
超清 576~720p
各大视频厂商的标准(仅供参考):
公司 搜狐视频 优酷视频 奇艺视频 土豆视频
•流媒体播放方式
1、单播方式:一台服务器传送的数据包只能传递 给一
个客户机,媒体服务器必须向每个用户发送所申请的数据 包,多个点对点方式结合,
2、组播方式:允许路由器将数据包复制到多个通道,客
户端共享一个数据包,按需提供
3、点播方式:客户端与服务器主动连接用户通过选择内
容项目来初始化客户端连接
4、广播方式:用户被动接受流,客户端接受流,但不能
2.实时流式传输
实时流式传输总是实时传送,特别适合现场广播, 也支持随机访问,用户可快进或后退以观看后面或前 面的内容。但实时流式传输必须保证媒体信号带宽与 网络连接匹配,以便传输的内容可被实时观看。 • 实时流式传输需要专用的流媒体服务器与传输协议。
主流的实时流媒体协议
区别 全称 上层协议 软件模型 研发主要来自 针对客户端 视频格式要求 服务器要求
流媒体技术与应用
• 通信工程1501于锦韬
什么是流媒体?
• 流媒体即Streaming Media
• 是指视频、声音和数据以实时传输协议作为连续实时流从源端同时向目的地传输,在目的 地接收到一定缓存数据后就可以立即播放出来的多媒体应用。
类别
Downloading
Streaming
点播内容
√
√
直播内容
• MSS:微软也推出了Microsoft Smooth Streaming,也即是MSS的视频播出方式,采用的视 频格式是分段mp4格式。
• DASH:MPEG标准组则推出了Dynamic Adaptive Streaming over HTTP,采用的视频格式为 3GPP,MP4。
基于HTTP的流媒体自适应传输协 议
实况直播要求
文件播放要求
HLS
RTSP
RTMP
Http Live Stream
Real Time Streaming Protocol
Real Time Message Protocol
HTTP
RTP,RTCP
TCP或HTTP
B\S
C\S
C\S
Apple
Microsoft
Adobe
支持HTML5的浏览 器
是I帧,IDR 帧的作用是立刻刷新,使错误不致传播,从IDR帧开始,重新算一个新的序列开始编码
P帧:前向预测编码帧 在针对连续动态图像编码时,将连续若干幅图像分成P,B,I三种类型,P帧由在它前面的P帧或者I帧预
测而来
B帧:双向预测内插编码帧 B帧是双向预测的帧间压缩算法。当把一帧压缩成B帧时,它根据相邻的前一帧、本帧以及后一帧数
*索引文件:
包含每一个被分割的小文件,每当分割了一个TS文件,索引文件就会更新。索引文件被用来跟踪哪些文件可以访问 以及该文件在网络服务器上的位置。
分发器,客户端
分发器: 分发器是一个网络服务器,主要功能是将各个分割好的
播放器
支持Flash类产品的浏 览器
支持HTML5的浏览器
MP4
无
FLV, F4V
普通HTTP服务器
专用RTSP流媒体服务 器
专用Flash服务器 Flash Media Server
Red5
专用编码器上传
与服务器相关,
专用编码器上传
Apple开发工具
自定义上传
Flash Media Encoder
流媒体基础知识----码率
码率(Data Rate),也叫比特率或码流,表示经过压缩编码后的视音频数据 每秒需要多少比特(bit)来表示,即把每秒显示的图像进行压缩后的数据量, 一般采用的单位是kbps。 码率公式:码率(kbps) =文件大小(Byte)*8/1024/时间(s)
注:更好的视频体验,分辨率很重要,码率也很重要,但二者是矛盾的,故最 终目标是在较低的码率下达到较高的观看效果。
体的偏移位置。由此可见,每一次的快进和快退,都等于是重新开始播放,只是每次开 始播放的位置不一样。
• 2.PAUSE(暂停),客户端暂停了播放,也就是不从缓冲区读取数据了,但是服务器不知 道客户端停止了播放,依然不停地发送数据给客户端,直到客户端的接收 缓冲区已满, 然后服务器的数据发送不出去了,理论上是服务器端的滑动窗口的大小估计就是0了
关键帧距离:关键帧(I帧)之间的最大距离(单位:秒),它是根据视频内容 中的场景变换自动决策的,但两个关键帧之间的最大距离不超过该设定值,推 荐配置:5-10。这个参数会影响到直播的延时,如果为了追求最低延时,可将 其配置为1。
GOP 大 BP帧越多
小 I帧间隔小
优点
压缩比高
实现秒开的功能
缺点
首屏播放时间变长
播放一个RTMP协议的流媒体需要经过以下几个步骤: 1、握手: RTMP连接都是以握手作为开始的。 2、建立连接: 建立连接阶段用于建立客户端与服务器之间的“网络连接”; 3、建立流: 建立流阶段用于建立客户端与服务器之间的“网络流”; 4、播放: 播放阶段用于传输视音频数据。
基于HTTP的流媒体自适应传输协 议——HLS
标清/流畅 480p 336p 360p 256~360p
高清 480p 432p 480p 480p
源画(超超清) 576~1080p
超清 576p 622p 720p 576~720p
说明:如480p,字母p表示逐行扫 描(progressive scan),数字 480 表示其垂直分辨率,也就是垂 直方向有480条水平线的扫描线。
据的不同点来压缩本帧,也即仅记录本帧与前后帧的差值。只有采用B帧压缩才能达到200:1的高压缩。
B帧压缩率高,但是编解码时会比较耗费CPU,而且在直播中可能会增加直播延时,因此在移动端上一般 不使用B帧。
流媒体基础知识----帧率
GOP(Group of Pictures):一个GOP就是一组连续的画面,每个画面就是一帧, GOP就是很多帧的集合。播放器显示画面是去找到最近的I帧(关键帧)来显示, 所以为了实现秒开的体验,一般流媒体服务器会有GOP Cache配置,GOP Cache 越长,播放体验会越好,但不好的一面是GOP Cache会增加直播的延迟。所以, 我们在配置时一方面要做好延时与画质的平衡,另一方面可以通过追帧播放等 技术来进行优化。
1.Apple公司的 Http Live Streaming
HLS(HTTP Live Streaming)协议于2009年由苹 果公司提出,目前苹果公司所有支持ios 3.0以上系统的 智能终端产品均支持基于HLS的流媒体播放。
它支持H.264/AAC和H.264/MP3编解码标准,支 持普通的Web服务器等。
Flv ,F4V文件即可,
Ts数据文件,
与服务器相关,
服务器会自动分解为
M3u8索ቤተ መጻሕፍቲ ባይዱ文件
与播放器相关
F4f 数据文件
f4x索引文件
另一些流媒体协议
• HDS:Adobe公司,推出HTTP Dynamic Streaming。这种方式本质和HLS的策略是类似的, 就是通过索引文件+视频片段的方式。但是显然采用的索引格式和视频片段格式都不一 样的。HDS采用的是视频格式是flv或者f4v。
1.顺序流式传输
顺序流式传输是顺序下载,在下载文件的同时用 户可观看在线内容,在给定时刻,用户只能观看已下 载的部分,而不能跳到还未下载的部分。由于标准的 HTTP服务器可发送顺序流式传输的文件,也不需要其 他特殊协议
顺序流式传输(HTTP渐进式)
• TCP协议栈 • 1.SEEK(快进和快退)先关闭之前的tcp连接,重新连接,发送http请求,该请求带了媒
控制流。数据包的单独一个拷贝发动给网络上的所有用户, 不管用户是否需要
流媒体传输类型
•
流媒体传输分两类:实时流媒体 和 顺序流媒体
– 顺序流媒体不可用于实况直播,仅能传输完整的音视频文件(HTTP渐进式)。
– 实时流传输既可传输实况直播,也可传输完整的音视频文件(专用协议流式)。