首帧加载优先
点开一部片子的时候,最先看到的是第一帧画面。为了缩短这个等待时间,播放器优先加载开头几秒的内容,先把画面呈现出来再慢慢缓冲后面。用户不会盯着一个空白的播放器等半天。
卡不卡这件事,用户感受很快但背后工作琐碎。真不卡影院把这些细节拆成六件事来做。
点开一部片子的时候,最先看到的是第一帧画面。为了缩短这个等待时间,播放器优先加载开头几秒的内容,先把画面呈现出来再慢慢缓冲后面。用户不会盯着一个空白的播放器等半天。
拖动进度条是使用最频繁的操作之一。拖到哪就播哪,中间不需要等缓冲圈转半天。如果网络允许会预加载多个位置的分段,拖动时能快速定位。多试几次会发现大部分操作都是即时响应。
一条线路偶尔会挂或者变慢,这时候需要立刻切换。每部片子准备了二到四条备用线路,切换之后播放进度不会丢。线路池每天做可用性检测,退化的线路会提前下线,减少"卡了才发现"的情况。
地铁进隧道、电梯里、地下车库,信号一断视频就黑屏是常有的事。播放器在弱网下会自动降低清晰度保证连续播放,信号恢复之后自动提升清晰度。网络波动不会让整个播放中断,只会影响短时间的画质。
不同设备的解码能力不一样。播放器会根据设备类型和浏览器自动选择更合适的编码格式,手机端优先用省电解码,电脑端优先用高画质解码。同一部片子在不同设备上的观看体验都经过调整。
片源在压片的时候,码率和关键帧间隔都做过调整。目标是让画面清晰的同时文件不要太大,加载快、拖动也快。压得太狠画面会糊,压得太松加载会卡,找到中间那个平衡点花了不少时间测试。
以下内容都是视觉细节丰富、对播放流畅度要求较高的作品,在站内搜索片名即可找到。
保罗与弗雷曼人联手对抗哈克南家族,厄拉科斯星球上的沙虫与战争场面质感出众。
迈尔斯穿越多元宇宙遇见各个版本的蜘蛛侠,美术风格在每一帧都不一样。
生而为魔的哪吒逆天改命,国产动画在打斗和特效上的一次集中爆发。
时间逆转的未来武器,诺兰把时间线处理成了结构复杂的迷宫。
帕丁森版的蝙蝠侠在阴雨连绵的哥谭市追查谜语人,画面黑但细节多。
三个留守少年拜师学舞狮,从无名小卒到站上决赛舞台,动作设计细腻。
用户反馈、我们排查、改完之后的变化,都记录在这里。不是总结,是过程。
上周有位用户发来一段录屏,说晚上八点到十点这段时间看片经常卡,白天就没事。第一反应是线路高峰拥堵,但排查之后发现不是。真正的原因是浏览器的硬件加速被关闭了,导致解码全部走CPU,一到高峰时段CPU占用上来就卡。这种情况在Win7的老电脑上比较常见。我们随后在播放器里加了一个"性能检测"入口,如果检测到硬件加速没开会在播放页顶端弹一条提示,告诉用户怎么开。这条提示不会强制弹出,用户点一下才能看到详细步骤。上线两周后,反馈"晚上卡"的用户减少了大概六成。技术问题有时候不是技术本身的问题,是设备和系统设置的问题,得先排查到那一步。
用户反馈里被提最多次的问题之一,就是拖动进度条之后要等半秒画面才跳过去。一开始我们以为是解码器的问题,换了几个方案效果不明显。后来发现问题的关键在于"什么时候开始缓冲"。最早的方案是用户松手之后才开始请求目标位置的片段,那半秒就是这么来的。第二版改成根据用户拖动的方向预判可能落点,提前缓冲一小段,好一些但还不够。第三版是给进度条加了分层缓存,把热门位置(比如开头、结尾、上次看过的位置)预加载下来,拖动到这些位置基本即时。三版改下来,用户反馈的"等半秒"问题改善明显,但在网络特别差的时候还是会有延迟,这个暂时还没彻底解决。
很多视频站播放的时候,屏幕上会出现一个转圈的小图标提示"缓冲中"。这个小圈其实挺有存在感的,转一圈半秒,转两圈就是一秒,转着转着用户就焦躁了。真不卡影院这一版上线前做了一次调整,把"缓冲中"这个小圈改小了、透明度调低了,而且只在缓冲超过一秒的时候才出现。用户感受上就是"没看到转圈",其实缓冲还在发生,只是不打扰用户了。有测试用户反馈说"感觉好像快了一点",实际上是心理感受的变化,播放本身没变快多少,但用户的等待焦虑确实降低了。这个改动很小,但效果比我们预想的要好。有时候让用户觉得快,和真的快一样重要。
为了测试弱网环境下的播放表现,我们安排了几位同事分别在地铁、电梯、地下车库做了三天测试。测试方式很简单,就是每次经过这些场景的时候打开一部片子看一小段。结果和预想的有不少差别。第一,地铁隧道里的信号中断其实是脉冲式的,不是持续断,播放器只要做好小片段的缓存,整个过程中断的时间加起来不到两秒。第二,电梯里的信号衰减比地下车库更严重,但时间短,一般的预缓冲能覆盖。第三,地下车库反而是最难处理的,因为很多人停车后会看一会儿,车库的信号一直很弱,时间还长,这就要求播放器在低码率下保持画面可看。测试之后我们对弱网策略做了调整,优先保证地下车库这类持续弱网场景,短暂的脉冲式中断交给缓存处理。这些细节不看数据不会知道,只有真的用起来才发现。
真不卡影院这个品牌名听起来有点嚣张,但从一开始我们就知道它是个承诺,不是个形容词。为了保证这个承诺,每天都会做可用性巡检。巡检的方式是写脚本自动运行,在十几个城市的不同网络环境下测试主要片源的加载速度和播放流畅度,记录数据到后台。哪个地区的播放速度下降超过阈值,编辑就会收到提示,去排查是线路问题还是本地问题。这个巡检工作不轻松,需要每天盯着数据,但它是"真不卡"这个品牌名的基础。有用户留言说"这个名字确实敢叫",我们回复说"我们也怕被打脸,所以每天都在检查"。这句话是真的。
上个月整理了一批用户反馈,一共十条。改掉了其中七条,包括:拖动响应、夜间模式、投屏声音不同步、手机端按钮大小、播放速度、收藏分类、搜索历史。剩下三条一直没改,说一下原因。第一条是"希望有弹幕",这个功能对技术架构影响比较大,需要重新设计弹幕系统,暂时排在后面。第二条是"希望有离线下载到本地",这个涉及内容版权问题,不是技术能解决的,暂时不做。第三条是"希望支持VR模式",这个目前来看用户需求其实很低,优先度排在最后。剩下的这三条不是不改,是暂时没法改或者优先度不够,会放在需求池里继续评估。已经改完的七条会在下次更新说明里详细写。
观众反馈
说说你在这里看片时的流畅度体验,或者具体在什么场景下遇到了问题。