哪些参数会影响播放体验
视频是由一段连续播放的图片组成的。
-
分辨率指的是图像的长宽像素大小,分辨率也有720、1080、2K、4K的说法。在16:9的播放下,1080p就是长乘宽为1920*1080个像素点。
-
Progressive(逐行扫描)、Interlaced(隔行扫描)
-
-
dpi(dot per inch)是每英寸的像素多少。 但是dpi 实际上并不是视频的一个参数,dpi理论上取决于显示设备和视频分辨率参数。至于多少dpi是清晰的,往往是根据实际场景决定的,毕竟观看距离也起了决定性的因素,如海报等印刷品就要求300dpi。
-
色彩模型一般是RGB、YUV ,是像素点记录色彩数据的方式。 不同色彩空间模型决定着色彩的丰富程度,当然也决定着每个像素的数据量大小。
-
帧率就是一秒的视频帧数,单位是fps,可以简单地理解为一秒切换的图片数量。一般认为,一秒18帧以上才能看起来是流畅的。但是这需要根据实际场景而定,电影一般是一秒24帧,游戏需要一秒30帧以上才是流畅的。
一部100分钟,4K,60fps的电影的体积是多大呢?20MB6060100 = 11660GB!!
为什么需要转码
视频转码(Video Transcoding)是指将已经压缩编码的视频码流转换成另一个视频码流,以适应不同的网络带宽、不同的终端处理能力和不同的用户需求。转码本质上是一个先解码、再编码的过程,因此转换前后的码流可能遵循相同的视频编码标准,也可能不遵循相同的视频编码标准。
- 码率:播放的视频文件大小/视频文件播放时长(单位Kbps)来衡量视频播放成本。
转码的关键参数
-
编码格式(Codec)
- 视频编码方式是指能够对数字视频进行压缩或解压缩(视频解码)的程序或者设备,通常这种压缩属于有损数据压缩。常见的编码方式有:
- H.26X系列:由ITU(国际电信联盟)主导,包括H.261、H.262、H.263、H.264、H.265。
- MPEG系列:由ISO(国际标准组织机构)下属的MPEG(运动图像专家组)主导,视频编码方面主要有MPEG-1第二部分、MPEG-2第二部分、MPEG-4第二部分、MPEG-4第十部分
- AVS(Audio Video coding Standard):我国自主知识产权的信源编码标准,是《信息技术先进音视频编码》系列标准的简称,目前已完成两代AVS标准的制定。
- 编码格式决定的是音视频文件的音视频文件的压缩方式与算法。
- 问题:为什么同一个视频有的浏览器能播有的播不了?
-
封装格式(Format)
-
也称多媒体容器(Multimedia Container),是将已编码压缩好的视频轨道、音频轨道和元数据(视频基本信息如标题、字幕等)按照一定的格式规范,打包放到一个文件中,形成特定文件格式的视频文件。
-
封装格式主要分为两大类:面向存储的和面向流媒体的。
-
面向存储的,常见的有AVI、ASF(WMA/WMV)、MP4、MKV、RMVB(RM/RA)等;
-
面向流媒体的,常见的有FLV、TS(需要配合流媒体网络传输协议,如HLS、RTMP等),MP4也支持流媒体方式(配合HTTP等)。
-
封装格式决定的是视频文件的格式、音视频数据块的大小等信息。
-
播放的工作流程
转码的工作流程
其实就是在解封装和解码后对每一帧的图像进行处理,如改变分辨率采样率等,之后再重新编码、封装即可。
如何降低码率?
帧内压缩(空间压缩)
- I帧(Intra picture)
I 帧是能独立播放的,是完整的视频帧。
I 帧 是数据量最大的,一般会出现在画面突变的位置,所以一些视频识别软件会优先处理I帧图像,这样有利于快速处理。
-
降分辨率、降低色彩丰富程度
- 一般来说,网络视频、图片都会采用YUV420这种数据量较少的色彩空间模型,虽然色彩存在一定程度的失真,但是数据量较少,以至于文件不会太大。
-
去除画面中人眼观察不到的细节(图片压缩:DCT变换:低频域+高频域)
帧间压缩(时间压缩)
- P帧(Predictive Picture)
P 帧是需要根据前一个I帧或P帧计算所得。
- B帧(Bidirectionally predicted picture)
B 帧是需要根据前一个和后一个I帧或P帧计算所得。
B 帧 虽然是数据量最小的,但是它需要后一个帧数据才能计算出来,所以在直播流等场景下,一般是不生成B帧的,这样有利于直播的流畅。
- GOP(Group of Pictures)
另外,还有一个对于直播流等流媒体来说非常重要的概念gop,gop指的是一组完整的视频帧 。
如gop设置为25,那么编码器会让每25帧的第一帧必定为I帧,如果帧率也是25帧,那每秒的第一帧就必定是I帧。
这样做的好处是,直播流出现画面花掉的概率会降低,信号中断重连后,直播流也能更快地重新播放,因为P帧、B帧实际上都需要依赖I帧才能计算出来,一般对于直播流而言,gop 一般设置为 帧率 的1-2倍。
- 动画(背景+人物)划分宏块+运动矢量预测(不动的保留,动的加方向和距离的矢量)
问题:为什么会出现花屏或者卡顿?
H.264 vs H.265
h264是目前的移动端、浏览器之王,h265是客厅之王
h265相比于h264:宏块划分&运动预测的进步
问题:电影院《银河护卫队3》用哪种编码格式?
我们如何降低转码成本
算法升级
转码算法种类、版本都会影响到转码的效率,进一步影响到转码成本。优秀的转码算法:
- 显著减低计算资源消耗,直接减少转码成本
- 降低视频的播放码率,降低CDN带宽成本
一入多出
如果仅仅是MP4转成FLV等封装格式,而不改变分辨率、编码格式等条件的话,可以解封装后直接封装,而不需要再重新编解码,因为不需要再重新处理图像等数据,这样做会非常快。
- 处理速度极快。音视频编解码过程十分复杂,占据了转码的绝大部分时间。转封装不需要进行编码和解码,节约了大量的处理时间与计算成本。
- 音视频质量无损。没有解码(解压缩)和编码(压缩)过程,所以不会有音视频的压缩损伤。
储备知识:MP4和FLV的封装差异
热度预测
通过热度预测算法,发现可能的头部视频,并对这些头部热度视频进行特定的转码优化,那么就可以以极少的转码成本覆盖线上绝大多数播放,从而提高用户的播放体验。下图以H.265的转码优化为例,描述了H.265播放预期的播放渗透与现状。
档位降级
一个视频源文件在上传后会被转码成为不同清晰度、编码格式、水印类型等不同档位视频文件,由于播放策略、网络环境、用户喜好等原因,各档位视频的播放覆盖率存在差异。
相比于视频源文件在上传后立刻转出各种档位的视频文件,在资源更宽裕的时间进行延迟转码会极大地降低转码成本。通过分析筛选出转码文件里低频播放的档位,并将这些档位的转码从实时转码迁移到延迟转码,是降低转码成本的有力手段。
What's new
参考文档
视频格式、视频编码、视频转码等基本概念_视频点播-阿里云帮助中心
「音视频处理」码率、帧率越高越清晰?分辨率、像素、dpi的关系
baijiahao.baidu.com/s?id=175707…
Image Compression and the Discrete Cosine Transform
What is Transcoding? And Why is it Important for Video Streaming?
What Is Transcoding And Transcoding Work
The State of Video Codecs 2022