缓冲:先存下一点,再继续向前
在线播放通常不会等整个文件下载完成才开始,而是先取得一部分数据,在播放的同时继续接收后面的内容。已经收到、尚未播放的部分,就是理解缓冲区的直观方式。只要后续数据来得足够及时,画面可以连续前进;如果接收速度暂时跟不上消耗速度,缓冲区耗尽后就可能停下来等待。
因此,平均网速并不能单独解释体验。一次测速的结果,描述的是测试时到某个目标的传输表现;实际视频却还受到连接路径、目标响应、无线信号波动以及同时占用网络的任务影响。即使平均传输能力足够,短时间的速度下降也可能让缓冲被消耗光。相反,有足够预先储备的数据时,短暂的网络波动未必能被观众察觉。
拖动进度会改变正在请求的位置。此前缓冲的可能是原位置后面的数据,而新的时间点还没有准备好;播放器需要重新取得相应片段,并从可用的解码起点开始处理。于是,拖动后短暂等待并不必然意味着整段视频无法播放,也不能直接用来判断文件是否损坏。
开播时间和播放中的停顿也要分开。开始前可能涉及页面加载、媒体信息读取和首段数据准备;播放中的等待更直接地涉及后续数据是否及时到达。两种现象可能有共同因素,但不应被统称为“带宽不够”。观察问题发生在进入页面、出现首帧还是连续播放之后,能把讨论范围缩小很多。
清晰度:像素数量之外,还有信息保留
分辨率描述一帧画面横向和纵向的像素数量,它决定了图像采样的空间规模,却不直接等于最终细节。来源本来模糊的素材,即使放大到更大的像素尺寸,也不会自然出现真实纹理。屏幕上显示了更高的分辨率标签,最多说明这一层规格,不能证明拍摄、转码和压缩过程中保留了多少原始信息。
静态讲话与快速运动,对编码提出的难度不同。背景几乎不变的访谈,画面变化较少;水面、树叶、烟雾和快速移动的物体,则包含大量难以预测的细节。相同分辨率、相近码率的两段视频,视觉效果可能明显不同。在快速运动时出现色块或细节糊成一片,不一定是屏幕分辨率的问题。
压缩如何改变你看见的东西
视频编码会利用相邻画面之间的相似性,减少需要重复记录的信息,也可能舍弃较难被察觉的细节。压缩过强时,平滑区域可能出现色带,文字边缘可能发虚,复杂纹理可能失去层次。多次转码还可能累积这些损失。换一个更锐利的显示模式可以改变观感,但不能恢复已经被丢弃的真实内容。
帧率描述一秒内呈现多少帧,与画面尺寸不是同一个维度。更高帧率可能让运动变化更连续,同时也需要编码与设备处理能力的配合。若素材本身只有有限的独立画面,重复显示或插值产生的画面,不等同于重新拍摄获得的运动细节。讨论“流畅”时,最好说明是时间连续、动作自然,还是没有停顿。
码率:单位时间里,传了多少数据
码率通常表示单位时间的视频或音视频数据量。它与网络需求相关,但不是一个能跨越所有素材直接比较画质的分数。编码方式、画面复杂度、帧率和处理设置都会影响结果。不同编码条件下,一个较低码率的文件也可能比另一个较高码率文件更有效地保留细节,不能只比较数字大小。
平均码率也会掩盖局部变化。可变码率编码可能为复杂场面分配更多数据,为简单场面分配较少数据;网络如果只在高需求片段跟不上,卡顿就会呈现“某些地方特别明显”的样子。播放端实际需要的传输能力还涉及音频和封装等开销,不宜把文件标注数字当成网络需求的绝对边界。
自动清晰度通常属于自适应传输思路:播放端在可用条件下选择不同的数据规格,以维持连续性。具体实现各不相同,本文不确认任何服务是否采用此机制。即使发生了档位切换,也可能需要等到合适的片段边界才体现,界面文字与肉眼观感未必在同一瞬间改变。