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