视频相关知识

视频最终大小取决于什么

(音频编码率(KBit为单位)/8 + 视频编码率(KBit为单位)/8)× 影片总长度(秒为单位)= 文件大小(MB为单位)
注意:“比特率”在视频处理领域经常成为“编码率”

所以视频大小和分辨率其实没有关系,为什么我们会有分辨率越高,视频越大的错觉呢。因为,只是一般情况下,为了保证清晰度,较高的分辨率需要较高的编码率配合,所以使人产生分辨率越大的视频文件体积越大的感觉。

码率可以分为固定码率(CBR)编码和可变码率(VBR)编码。

  1. 固定码率:指编码器输出的码率一直为一个固定值,这种编码方式计算量小,编码速度快,但是编码效果不怎么好。对于画面变化大的视频片段,由于码率限制,倒是视频非常模糊,然而对于画面变化小的片段,却会造成码率浪费。
  2. 可变码率:指编码器的输出码率可以根据编码器的输入源信号的复杂度自适应的调整,这种方式编码效果比较好。

码率对应AVFoundation中的AVVideoAverageBitRateKey

一些参数和概念

H.264

视频文件由于体积大,平时我们使用的视频文件都是经过压缩的。大部分音视频都使用编解码器(codec)来进行压缩和解压,iOS中使用的主要编解码器标准为H.264,H.264对应AVFoundation的AVVideoCodecH264。

H.264通过空间和时间2个维度来压缩体积:

  1. 空间:空间上的压缩独立于视频帧,也成为帧内压缩。主要通过压缩图片的方式(如色彩二次抽样等)来减小体积,帧内压缩一般为有损压缩
  2. 时间:时间上的压缩也称为帧间压缩。视频是由连续的帧(图片)组成。一段视频中(很多张图片)有很多不变的冗余元素,通过减小这些冗余元素来达到压缩的目的,这就是帧间压缩,帧间压缩一般为无损压缩。

对于帧间压缩:H.264有3种profile,来确定帧间压缩使用的算法:

  1. BaseLine:这个标准提供了最低效的压缩,经过这个标准压缩后的文件体积任然比较大,但是这种算法计算强度最小。
  2. Main:这个标准的计算强度比BaseLine大,但是能达到更高的压缩效果。
  3. High:这个标准能达到最高质量的压缩效果,但他的压缩算法最复杂。

H.264除了profile还有一个等级(level)标准,Level是对自身特性的一些描述(码率、分辨率、fps等),Level越高,视频的码率、分辨率、fps越高。

参考

http://blog.csdn.net/wishfly/article/details/44240291
http://www.jianshu.com/p/485e946f80b4

posted @ 2017-09-10 22:25  张驰小方块  阅读(721)  评论(0编辑  收藏  举报