决定视频文件占用空间大小的因素(编码格式,比特率)

来源:互联网 发布:印尼海关数据 编辑:程序博客网 时间:2024/06/04 18:24
编码率/比特率直接与文件体积有关。且编码率与编码格式配合是否合适,直接关系到视频文件是否清晰。
在视频编码领域,比特率常翻译为编码率,单位是Kbps,例如800Kbps 其中, 1K=1024 1M=1024Kb为比特(bit)这个就是电脑文件大小的计量单位,1KB=8Kb,区分大小写,B代表字节(Byte) s 为 秒(second)p 为 每(per),以800kbps来编码表示经过编码后的数据每秒钟需要用800K比特来表示。
1MB=8Mb=1024KB=8192Kb
Windows系统文件大小经常用B(字节)为单位表示,但网络运营商则用b(比特),也就是为什么512K速度宽带在电脑上显示速度最快只有约64K的原因,网络运营商宣传网速的时候省略了计量单位。
完整的视频文件是由音频流与视频流2个部分组成的,音频和视频分别使用的是不同的编码率,因此一个视频文件的最终技术大小的编码率是音频编码率+视频编码率。例如一个音频编码率为128Kbps,视频编码率为800Kbps的文件,其总编码率为928Kbps,意思是经过编码后的数据每秒钟需要用928K比特来表示。 
了解了编码率的含义以后,根据视频播放时间长度,就不难了解和计算出最终文件的大小。编码率也高,视频播放时间越长,文件体积就越大。不是分辨率越大文件就越大,只是一般情况下,为了保证清晰度,较高的分辨率需要较高的编码率配合,所以使人产生分辨率越大的视频文件体积越大的感觉。
计算输出文件大小公式:
(音频编码率(KBit为单位)/8 + 视频编码率(KBit为单位)/8)× 影片总长度(秒为单位)= 文件大小(MB为单位)
这样以后大家就能精确的控制输出文件大小了。
例:有一个1.5小时(5400秒)的影片,希望转换后文件大小刚好为700M
计算方法如下:
700×8÷5400×1024≈1061Kbps
意思是只要音频编码率加上视频编码率之和为1061Kb,则1个半小时的影片转换后文件体积大小刚好为700M。
至于音频编码率和视频编码率具体如何设置,就看选择的编码格式和个人喜好了,只要2者之和为1061即可。如可以设置为视频编码格式H264,视频编码率900 Kbps,音频编码格式AAC,编码率161 Kbps。

与文件体积大小有关的码率是指的平均码率,因此,不论是使用固定比特一次编码方式还是使用二次(多次)动态编码方式,都是可以保证文件大小的。只有使用基于质量编码的方式的时候,文件大小才不可控制。

随着FLV和3GP文件的流行,H263格式在日常使用中也经常用到。H263压缩率其实并不高,但对硬件要求比较低,因此被手机等平台选择为主要支持的视频编码之一。FLASH从FLASH8开始,就支持H263编码的FLV文件。现在很多视频共享网站的FLV文件视频部分用的就是H263编码。但由于H263压缩率并不高,因此视频网站的约20分钟FLV视频文件体积大小约为40M左右,但并不清晰,激烈动作画面则更加模糊。很多非智能手机本身屏幕就不大,分辨率很低,也谈不上什么清晰度,用H263也无所谓。FLASH完全就是为了适应网络传播而设计的,帧率极低,默认只有12帧,一般的FALSH动画文件用的是矢量技术,可以随意放大缩小而不失真,但FLASH的FLV文件是基于位图技术的,且第一代FLV文件标准就支持H263编码,FLV为了更快的进行网络传播,可以说将RMVB/RM格式的设计理念发挥到极致,一切为了缩小文件体积,视觉效果能看就行。因此,尽管FLV文件可以支持更高的编码率和帧率,新的FLASH播放器也能支持新的编码格式,但在我们常见的视频共享网站中,为了兼容性和尽可能的缩小文件体积,其FLV文件分辨率多为320×240,帧率为12帧/秒,视频编码格式为本就压缩率并不高的H263,编码率不足300Kbps,音频编码方面也是尽可能的能省就省。尽管压缩参数低,但网站播放界面的分辨率一般为400×300,本就已经很低的分辨率还被强行放大,这就是为什么大家总是觉得视频共享网站的视频有种模糊感觉的原因,且有时候还会觉得画面不流畅,这些网站的提供的视频节目,其声音效果也很烂,基本属于刚刚能听的范围。

音频编码方面,对于视频文件来说,除了RMVB自己封闭的编码标准,最常见的就是MP3和AAC。微软格式的ASF/WMV视频文件数量少,其配套的音频格式就是常见的WMA格式。但实际情况,WMA格式多是单纯的作为一种音频压缩格式存在,在非ASF/WMV类型的视频文件中,一般不使用WMA格式。就目前的技术水平来说,音频编码对硬件的要求可以忽略不计。在有损音频编码领域,音频编码若追求通用性,首选自然是MP3格式,若追求压缩率和压缩质量,首选自然是AAC,WMA由于高不成低不就,且是微软的专利编码格式,在视频文件制作中使用并不广泛。在无损压缩领域使用的格式主要有WAV、APE、FLAC几种,理论上这些编码格式也可以用在视频文件制作中,但基本没人用,因为会导致文件体积过大。

帧率:要了解帧率就必须了解视频播放的一个基本原理。人眼具有视觉延迟的特点,立即拿开眼睛前的一副图像,大脑中却不是立即反应出来的,大约在0.1秒以后,才会反应画面已经拿开。因此,如果给人眼观看一幅幅连续的画面,且速度超过每秒10幅以上的时候,在人脑中就会产生画面连续的感觉,从而感觉自己看到的不是一幅幅独立的图片,而是一个连续的视频。帧率就是视频文件每秒展示在人眼的画面的数量。24帧/秒的意思就是此视频画面每秒变化24次。因为电影的帧率是24帧/秒,所以一般认为,只要视频文件的帧率达到或超过24帧/秒,就可以理解为画面流畅。帧率太低,则必然导致视觉上感觉画面不流畅,如常见共享网站提供的FLV文件,就经常会感觉画面不流畅,因为帧率只有12帧/秒。对于非智能手机等设备,因为硬件运算能力不高,支持的帧率一般也不高,很多手机都只有15帧/秒播放能力,部分手机能力甚至更低,因此手机视频文件普遍不很流畅。当帧率达到30帧/秒的时候,即使非常激烈的画面变化,人眼也能感受到很流畅。人眼能感知的最高速度是60帧/秒,因此魔兽争霸等游戏强制设置了游戏最高帧率为帧/秒。根据帧率的定义,我们能够了解到,当分辨率一定的时候,假设保持同样的清晰度,帧率越高,画面越流畅,需要的编码率也越高,文件体积也就相应变大。

现在我们已经能了解分辨率、清晰度、编码率、编码格式、文件体积大小、帧率之间的关系了。分辨率越大,清晰度越高,画面越流畅,帧率越高,编码率越高,文件体积越大,但越先进的编码标准,可以用更小的编码率实现同样的效果,从而减小文件的体积。一般来说,越先进的编码标准对硬件的运算能力要求越高。
根据具体使用的环境和片源的情况,确定合适的分辨率。在保持一定画面清晰度和声音质量的前提下,确定需要的编码格式,再根据设置的帧率、编码格式的压缩率特点,确定合适的编码率。基本常见的设置过程就是这么一个设置思路了。
转换视频文件的时候,一般要遵循以下的原则,分辨率可以降低,但不能增加,例如可以将640×480的文件转换为320×240的文件,但不必将320×240的文件转换为640×480。因为320×240转换为640×480并不会带来清晰度的提高,只会增加编码率,使文件体积变大。同样的道理,帧率可以降低,但不能增加,人为将12帧的FLV文件转换为25帧的AVI文件,并不会使你的画面变得更流畅。这种转换只是一种纯粹的浪费。编码率与编码格式联系在一起,由于编码格式有些技术先进些,可用较低编码率实现较高的画面质量。因此如果转换时更改了编码格式,则应该根据实际情况确定编码率。更多的时候是根据使用经验确定。
在实际使用中,如果希望把视频网站提供的FLV文件转换为VCD或者DVD,是不实际的,并不会因为你转换了格式,就画面变得更加清楚、流畅,且这种强行转换可能会带来其他的问题,因为MPEG1、MPEG2编码设计的时候并未考虑到这种极低帧率和极低画面质量的情况。


http://tieba.baidu.com/p/2230003912

0 0
原创粉丝点击