浅析视频点播技术
验“金”室
疫情期间,人们不得不“宅家抗疫”,这给线下娱乐经济造成了很大的冲击,而线上娱乐却逆流而上。数据显示,各大视频点播平台的流量增速尤为明显。作为视频观看者,我们只需要点击手中的客户端设备就能愉快地观看视频,但是在我们点击之前,线上视频的处理过程又是怎样的呢?
一、视频参数的概念
视频播放的原理可以追溯到无声胶片电影的时代,那时的电影把胶片上每一格的画面以接近人眼刷新速率的频率进行切换,利用“视象暂留原理”,让我们产生“画面连续变化”的错觉。这个原理直到今天也仍然沿用,只是随着科技的发展不再依赖于实体胶片作为画面的载体。以前胶片上一格格的画面,在现在视频中称为“帧”,也就是说视频是由无数“帧”组成的。
一般而言,视频具有以下基本属性。
视频帧率
用于测量视频每秒显示帧数的量度,单位是FPS(Frames Per Second)或者Hz(赫兹)。帧率会影响画面的流畅程度,帧率越大,画面相对人眼来说就越流畅。实现视频倍速播放就可以从这里入手,假设视频原本的帧率是30FPS,以每秒60帧的速度去播放就可以实现二倍速画面(音频的二倍速可以去掉一半的采样信号)。
视频码率
码率是数据传输时单位时间内传送的数据位数,单位是kbps,码率=文件大小(MB)/时间(s) 。
分辨率
分辨率用于度量图像内数据量有多少的参数,如720×540代表图像横向和纵向上的有效像素是720和540。
了解视频的基本属性后你可能会有这样的疑惑:参照人眼的捕获刷新频率,一秒视频的帧数应该要到30FPS左右才合适,这就代表视频每秒内有30张画面要连续刷新!那下载一部几个小时的电影对电脑硬盘来说是一个极大负担。由于目前网络和存储空间的限制,直接存储图片显然是不行的,因此原始的视频必须经过编码压缩才能被下载储存,这个过程就是视频编码。
视频编码格式和视频文件格式:目前主流的视频编码格式有国际电联的H.264、H.265,视频编码格式应用于视频压缩的过程,但是对于编码后的文件,还需要将视频和音频按照某种方式进行封装,常见的封装格式有MP4、3GP、WMV等。对于同种扩展名的视频文件,它封装的视频和音频编码格式可能会不同,所以经常会出现相同后缀名的视频文件使用同一个播放器有的可以播放、有的却不行的情况。
二、服务端介绍
在了解视频的基本参数后,我们来看一下视频点播的简化流程:
一个大众化的视频点播平台,它的视频来源应该是多种多样的,不同的编码协议与封装格式相组合会产生大量的视频种类,为了便于服务器对视频进行存储和管理,同时方便用户播放,必须对上传的视频进行转码处理。
视频转码本质上是对视频进行先解码再重新编码的过程,业内大部分基于公有云的点播平台都支持输出MP4格式,但是为了实现复杂的视频自适应播放、倍速播放等功能,行业内一般采用HLS(HTTP Live Streaming)和DASH(Dynamic Adaptive Streaming Over HTTP)视频格式。
1
MP4格式
MP4是遵循MPEG-4格式定义标准的广义文件扩展名,它能够流媒体化并支持多种多媒体内容,MP4格式对主流的H.264/H.265编码格式具有良好的兼容性。然而,由于MP4格式没有视频切片的配置,所以在播放时需要边下载边缓存,拖动时间轴播放需要较长的缓存时间,而且MP4格式的视频头文件较大,导致视频的起播很慢。
尽管MP4缺点明显,我们平时所见到的大部分视频文件却仍然以MP4格式居多,原因在于市场上的大多数浏览器和客户端App都能提供MP4格式的支持。不过,由于MP4文件的缓存机制,一次请求可能会下载整个文件,如果你的视频只看了个开头就退了出去,系统可能已经将半个MP4文件缓存了下来,导致产生很多无用的流量消耗。
2
HLS格式
HLS是由苹果公司2019年提出的基于HTTP的流媒体网络传输协议,它将媒体流分成较小的文件分片下载,每次请求只下载一小部分,客户端可以根据自己当前的网络带宽来从许多备用源中选择合适的资源,也可以在网络环境变化时平滑切换视频流。
HLS协议提供了一种终端适配和带宽适配的解决方案,视频的存储格式一般是TS、编码格式采用H.264,使用播放控制文件m3u8(index)对大量的TS文件进行管理。切片器会将转码后的视频文件分割为等长度的小片段,同时会附带生成.m3u8格式的索引文件,在点播场景下客户端通过查询各级索引文件来获取TS文件的下载地址,针对客户端不同的设备和网络环境,可以在检索的过程中去做区分,从而实现视频自适应播放。
HLS协议同样广泛应用于直播场景下的流媒体传输,关于直播技术的内容可阅读往期文章《直播技术初窥》。
3
DASH格式
DASH也是一种视频切片播放的格式,采用与HLS类似的“索引文件—媒体分片”机制,DASH是一种基于MPEG-DASH (ISO/IEC 23009-1)的国际标准,对标苹果公司的企业级HLS协议,DASH中的索引文件是MPD,媒体分片用fMP4格式存储。
值得一提的是,尽管DASH已经成功占据了流媒体点播的一半以上份额,并且相较于HLS格式,DASH在缓存效率、带宽利用率等方面都具备一定的优势,但由于iOS系统对HLS提供了原生支持(之后android也对HLS提供了原生支持),HLS还是在流媒体服务市场上保持着相当大的影响力。
三、点播客户端
服务器通过对外的资源接口将媒体资源分发给各个客户端,点播的客户端体验关系着用户的喜恶程度,目前主流的视频点播平台都支持手动或自动清晰度切换,以DASH格式为例,在网络波动情况下,视频的播放情况可以参考下图示意:
有关资源分发技术的内容可以阅读往期文章《疫情期间,在家办公不可不知的音视频高效操作》。
MPD索引文件依据不同的视频编码格式、码率、分辨率等记录媒体文件转码后的区间以及分片位置,每个分片长度大概在5秒左右,播放完当前分片后,若检测到播放异常卡顿等情况,则会自动切换到低一档次的清晰度区间,若是网速流畅有余,则会切换到高一档次的清晰度区间,重复此操作直到匹配合适的播放区间。在此过程中,由于各个区间的相同分片都是对应同样的媒体内容,所以不会影响内容的连贯。
在视频点播时,经常会进行视频快进或后退操作,因为视频流的解码播放依赖于对关键帧的解析,所以完成这些功能需要快速捕捉到视频流中的关键帧,DASH的fMP4格式支持元数据及媒体内容的分开存储,在fMP4的Box中记录了关键帧信息,依此可以快速地进行视频跳转。
四、媒资管理平台
一个成熟的点播平台还应该包含完备的媒资管理系统,最基础的媒资管理平台只能管理上传的视频,例如修改视频的相关信息、上传和删除视频,而业内大厂提供的公有云点播媒资管理平台能够针对转码策略、资源存储策略等做统一管理。
资源存储策略指的是对当前用户或特定用户域下的媒体资源做管理和规划,一般包括修改资源存储周期、修改资源存储分区等。
转码策略主要分为异步转码和同步转码两种。
异步转码
在异步转码中,需要预先配置好转码模板,转码模板可能包含目标的编码方式、封装方式、码率、帧率等信息,在上传点播视频后,会自动套用模板进行转码,客户端只需请求需要的视频流进行点播播放,在这种情况下,上传的视频无法立即点播播放。
同步转码
同步转码简单来说就是边转码边播放,服务器根据点播客户端提供的请求参数,快速将原视频转码分块,将执行转码任务的结果缓存在云端以便于用户的再次请求,不过这种方式对多媒体处理集群有极高的要求。
本文简要介绍了视频点播服务的流程,实际的点播服务还需要部署完备的平台监控,同时也要与具体的业务场景相结合。
在银行业,搭建视频点播平台有助于提供全方位的优质视频宣传,增加业务活动的曝光度。
从银行网点的角度出发,视频点播平台可以提供银行业务的办理流程视频、银行系统的使用教程视频,从而大大降低客户经理的工作量,也便于推广新的线上业务、提高用户的服务满意度。
参考当前流行的互动视频模式,结合5G场景下的VR技术,在VR视频点播的场景下,通过使用VR设备,能够实现身临其境的远程银行业务交互,在线体验远程专属客户经理“面对面”服务。
更多精彩内容
FCC30+
长按左边二维码
关注我们不迷路