1.HLS介绍
HLS
的工作方式是:将视频拆分成若干
ts
格式的小文件,通过
m3u8
格式的索引文件对这些
ts
小文件建立索引。一般
10
秒一个
ts
文件,播放器连接
m3u8
文件播放,当快进时通过
m3u8
即可找到对应的索引文件,并去下载对应的
ts
文
件,从而实现快进、快退以近实时 的方式播放视频。
IOS
、
Android
设备、及各大浏览器都支持
HLS
协议。
详细参考:
https://baike.baidu.com/item/HLS/8328931?fr=aladdin
采用
HLS
方案即可实现边下载边播放,并可不用使用
rtmp
等流媒体协议,不用构建专用的媒体服务器,节省成本。
本项目点播方案确定为方案
3
。
2、流媒体介绍
详细参考:
https://baike.baidu.com/item/%E6%B5%81%E5%AA%92%E4%BD%93/98740?fr=aladdin
概括理解:流媒体就是将视频文件分成许多小块儿,将这些小块儿作为数据包通过网络发送出去,实现一边传输视
频 数据 包一边观看视频。
流式传输:
在网络上传输音、视频信息有两个方式:下载和流式传输。
下载:就是把音、视频文件完全下载到本机后开始播放,它的特点是必须等到视频文件下载完成方可播放, 播放等待时间较长,无法去播放还未下载的部分视频。
流式传输:就是客户端通过链接视频服务器实时传输音、视频信息,实现
“
边下载边播放
”
。
流式传输包括如下两种方式:
1
) 顺序流式传输
即顺序下载音、视频文件,可以实现边下载边播放,不过,用户只能观看已下载的视频内容,无法快进到未
下载的视频部分,顺序流式传输可以使用
Http
服务器来实现,比如
Nginx
、
Apache
等。
2
)实时流式传输
实时流式传输可以解决顺序流式传输无法快进的问题,它与
Http
流式传输不同,它必须使用流媒体服务器并
且使用流媒体协议来传输视频,它比
Http
流式传输复杂。常见的实时流式传输协议有
RTSP
、
RTMP
、
RSVP
等。
流媒体系统的概要结构
通过流媒体系统的概要结构学习流媒体系统的基本业务流程。
1
、将原始的视频文件通过编码器转换为适合网络传输的流格式,编码后的视频直接输送给媒体服务器。 原始的视频文件通常是事先录制好的视频,比如通过摄像机、摄像头等录像、录音设备采集到的音视频文 件,体积较大,要想在网络上传输需要经过压缩处理,即通过编码器进行编码 。
2
、媒体服务获取到编码好的视频文件,对外提供流媒体数据传输接口,接口协议包括 :
HTTP
、
RTSP
、 RTMP等 。
3
、播放器通过流媒体协议与媒体服务器通信,获取视频数据,播放视频。
视频处理的方案,如下:
1
、 播放器通过
http
协议从
http
服务器上下载视频文件进行播放
问题:必须等到视频下载完才可以播放,不支持快进到某个时间点进行播放
2
、 播放器通过
rtmp
协议连接媒体服务器以实时流方式播放视频
使用
rtmp
协议需要架设媒体服务器,造价高,对于直播多采用此方案。
3
、 播放器使用
HLS
协议连接
http
服务器(
Nginx
、
Apache
等)实现近实时流方式播放视频
HLS
协议规定:基于
Http
协议,视频封装格式为
ts
,视频的编码格式为
H264,
音频编码格式为
MP3
、
AAC
或者
AC-
3
。
3、视频编码介绍
详情参考 :
https://baike.baidu.com/item/%E8%A7%86%E9%A2%91%E7%BC%96%E7%A0%81/839038
首先我们要分清文件格式和编码格式:
文件格式:是指
.mp4
、
.avi
、
.rmvb
等 这些不同扩展名的视频文件的文件格式 ,视频文件的内容主要包括视频和音
频,其文件格式是按照一 定的编码格式去编码,并且按照该文件所规定的封装格式将视频、音频、字幕等信息封装
在一起,播放器会根据它们的封装格式去提取出编码,然后由播放器解码,最终播放音视频。
音视频编码格式:通过音视频的压缩技术,将视频格式转换成另一种视频格式,通过视频编码实现流媒体的传输。
比如:一个
.avi
的视频文件原来的编码是
a
,通过编码后编码格式变为
b
,音频原来为
c
,通过编码后变为
d
。
音视频编码格式各类繁多,主要有几下几类:
MPEG
系列 (由
ISO[
国际标准组织机构
]
下属的
MPEG[
运动图象专家组
]
开发 )视频编码方面主要是
Mpeg1
(
vcd
用
的就是它)、
Mpeg2
(
DVD
使用)、
Mpeg4
(的
DVDRIP
使用的都是它的变种,如:
divx
,
xvid
等)、
Mpeg4
AVC
(正热门);音频编码方面主要是
MPEG Audio Layer 1/2
、
MPEG Audio Layer 3
(大名鼎鼎的
mp3
)、
MPEG-2 AAC
、
MPEG-4 AAC
等等。注意:
DVD
音频没有采用
Mpeg
的。
H.26X
系列 (由
ITU[
国际电传视讯联盟
]
主导,侧重网络传输,注意:只是视频编码) 包括
H.261
、
H.262
、
H.263
、
H.263+
、
H.263++
、
H.264
(就是
MPEG4 AVC-
合作的结晶)
目前最常用的编码标准是视频
H.264
,音频
AAC
。