编码意义 - 为什么要进行视频编码
一般来说一个视频文件是分为三层的:
- 基础数据:包括色彩空间模型、音频位深等等
- 编码:编码压缩音视频数据,如h264等等
- 封装:封装成文件,如MP4、FLV等等
编码作用要的作用就是压缩视频数据,限制最终文件的大小
例如在没有编码的情况下:
编码过程是由编码格式决定的,没种不同的编码格式对应了不同的压缩/解压缩算法,同样也对应了不同的编码器/解码器,客户端播放器在没有对应编码格式的解码器的情况下是无法播放视频的
H264编码简介
H264是最为常用的视频编码格式,但它不能对音频数据进行处理
H264算法中加入了运动补偿,运动补充等概念:因为在一段时间区间内,连续的视频帧大概率是相同的,所以可以根据前一帧或者前后一帧来推算当前帧,不用记录所有的帧
- I帧:能够独立播放,最完整的帧,数据量大
- P帧:需要根据前一个I帧或者P帧才能计算出来的最终图像,是H264编码中最多的帧
- B帧:需要根据前一个和后一个I帧或P帧才能计算出来的图像,数据量小,数据最不完整
- GOP:一组完整的视频帧,第一帧必定为I帧。但是除了第一帧以外,其他帧也可能存在其他I帧
码率
也称比特率 Bit Rate,或叫位速率,是单位时间内视频(或音频)的数据量,单位是 bps (bit per second,位每秒),一般使用 kbps(千位每秒)或Mbps(百万位每秒)
不同的码率,决定着编码器压缩视频的程度,是决定视频最终质量和文件大小的关键因素
码率越低,表示压缩程度越高,画质越差
码率越高,视频质量相对越高,视频文件也就越大
较高码率的视频在网络观看时通常需要缓存才能不卡顿,即使在本地观看,对电脑的性能也会有更高的要求