视频直播“秒开”是如何实现的?
不得不说近些年来视频技术的飞速发展给人们带来的良好的视频观看体验,视频直播秒开也已成为直播界的标配,可以说为了达到秒开的标准视频技术服务商真的是绞尽脑汁。
而移动互联网的兴起让直播技术的难点也从传统的电脑端转向到了移动端,移动直播技术上的环节包括:采集、编码、封装、推流、转码、分发、解码渲染、播放等。从推流到播放,再经过中间转发环节,延迟越低,则用户体验越好。
衡量视频直播的性能有三个指标:第一个是延迟,第二个是卡顿,第三个就是首屏耗时。
视频直播技术发展到今天,延迟和卡顿对用户造成不良的观看体验的概率已经非常小了。今天主要说一下首屏耗时,没有人愿意打开一个直播,等视频出来等个几分钟,这对人来说简直是种折磨。为了给人们观看视频打造良好的体验,所以,现在视频秒开已经成为直播界的标配。可是,看似一小步,确实技术的一大步呢。
首屏耗时指第一次点击播放后,肉眼看到画面所等待的时间。技术上指播放器解码第一帧渲染显示画面所花的耗时。通常说的 “秒开”,指点击播放后,一秒内即可看到播放画面。首屏打开越快,说明用户体验越好。
现在可以说是很多的视频直播都可以做到秒开,已不是什么罕见的事情了。但是之前点击播放后要等好几秒以后才能播放。这是什么原因导致如此的天壤之别呢?
其实,大部分播放器都是拿到一个完成的 GOP 后才能解码播放,基于 FFmpeg 移植的播放器甚至需要等待音画时间戳同步后才能播放(如果一个直播里边没有音频只有视频相当于要等待音频超时后才能播放画面)。
现在之所以能够实现秒开是因为如今改写了播放器逻辑,让播放器拿到第一个关键帧后就显示成像,不再是等待音画时间戳同步后再播放了。而GOP 的第一帧通常都是关键帧,加载的数据又少,更加有利于“秒开”的实现。而且现在的直播服务器基本都支持 GOP 缓存,播放器在和服务器建立连接后可立即拿到数据,省却跨地域和跨运营商的回源传输时间。
当然了,除了更改播放器逻辑之外,“视频秒开”还有一个更重要的原因,那就是如今十分发达CDN网络的建立。现在基本各大视频服务商都有2套以上的CDN网络,更多服务器、更大的带宽让数据的传输畅行无阻。
CDN网络的成熟构建将“视频秒开”向前推进了一步,但是仅仅是网络环境好、改变了播放器逻辑就能实现“秒开”吗?
还是差点东西的。
基本的优化还是要做的。比如:可以围绕传输层面做性能优化,可以围绕客户播放行为做业务逻辑优化。
提前做好 DNS 解析和测速选线,经过这样的预处理后,在点击播放按钮时,将极大提高下载性能。两者可以有效的互为补充,作为秒开的优化空间。