首页 > 代码库 > 收集一些关于视频文件格式以及编码计算的一些知识
收集一些关于视频文件格式以及编码计算的一些知识
最近网购了一个媒体播放器,用来在电视上看些电影及连续剧,效果还不错.但慢慢发现这东西支持格式,分辨率,码率还有颇多限制(这个播放器Real格式的只能支持Real 8/9/10 编码到 1024*576,码流小于 1.6Mbs),为使这玩艺好使特在网上收集一些关于视频文件格式以及编码计算的一些知识.
1 音视频文件码率与大小计算
转自:http://blog.163.com/simon_px/blog/static/377070772008111371722438/
编码率/比特率直接与文件体积有关。且编码率与编码格式配合是否合适,直接关系到视频文件是否清晰。
在视频编码领域,比特率常翻译为编码率,单位是Kbps,例如800Kbps
其中, 1K=1024 1M=1024K
b 为 比特(bit) 这个就是电脑文件大小的计量单位,1KB=8Kb,区分大小写,B代表字节(Byte) s 为 秒(second) p 为 每(per)
以800kbps来编码表示经过编码后的数据每秒钟需要用800K比特来表示。
1MB=8Mb=1024KB=8192Kb
Windows系统文件大小经常用B(字节)为单位表示,但网络运营商则用b(比特),也就是为什么2Mb速度宽带在电脑上显示速度最快只有约256KB的原因,网络运营商宣传网速的时候省略了计量单位。
完整的视频文件是由音频流与视频流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。
与文件体积大小有关的码率是指的平均码率,因此,不论是使用固定比特一次编码方式还是使用二次(多次)动态编码方式,都是可以保证文件大小的。只有使用基于质量编码的方式的时候,文件大小才不可控制。
编码格式有很多种,在技术不断进步的情况下,针对不同的用途,产生了各种编码格式。不同编码格式的压缩率不一样,且有各自的特点,有些在低码率情况下能保持较高的画面质量,但在高码率情况下反而画面质量提示不大,有些适合在高码率情况下保持高清晰度画面,但可能在低码率情况下效果不佳。介绍常见的几种。
RMVB/RM在制定的时候主要考虑的是网络传播,目的在于利用不快的网速传播视觉可以接受的画面质量。因此,RMVB/RM编码格式的特点是较低码率下能获得较好的视频质量。但高码率的情况下反不如其他编码格式。同样是RM/RMVB后缀的文件,其内部编码格式细分还有R8/R9/R10等,但总的来说,上面所说的特点依然是存在的。只是压缩率更高了,因此RMVB没人用在高清编码领域。RMVB追求的是高压缩率,能接受的画面质量,所以经常压缩掉一些不容易注意的细节。初看画面不错,细看就发现画面不锐利,层次不分明,总给人一直模糊的感觉。RMVB/RM后缀文件的音频编码部分同样存在这样的情况,声音压缩率很高,但只是能听,不要奢望达到声音动听的境界。
RMVB的流行,一是因为REAL的这种格式适合低速网络的传播,能以较小的文件体积获得可以接受的画面质量。二是随着RMVB的使用,开始出现功能比较完善的转码软件和解决方案,方便了视频爱好者,扩大了影片来源。但随着网速越来越快,H264等更好的编码器出现,同时也因为RMVB不适合高清视频制作,且若对于其他硬件厂家希望支持RMVB/RM格式,就必须向REAL公司支付相当昂贵的专利费,导致很多硬件厂商放弃了对RMVB文件的支持。RMVB的文件已经不是以前那种完全压倒性的优势了。
现在网络传播的视频文件已经很多都是AVI、MKV、MP4、3GP等后缀了。其中MKV等多用于高清视频文件,MP4、3GP等多用于手机和便携式设备等领域,AVI则使用范围更加广,不但在高清晰度视频文件中有AVI文件,在便携式设备领域也有AVI使用。
VCD用的视频编码格式为MPEG1,DVD则为MPEG2,VCD和DVD都主要用于家庭影音播放,而且一般来说,VCD用MPEG1编码为固定码率编码。DVD可以支持动态码率的MPEG2编码。
为了能保证激烈变化画面时的清晰度,其默认编码率都较高,VCD标准编码率1152Kbps,DVD开放些,根据影片播放时间,常设置为5000 Kbps -8000 Kbps之间,在不浪费DVD碟容量的前提下尽可能的使用较高的码率获得更高的清晰度。MPEG1和MPEG2在超低码率情况效果不佳,且过分提高码率,画面效果带来的提示也不明显。而MKV则以H.264编码,用于高清视频,1080p的画面达到了30Mbps的码率。
当然不经过压缩文件的计算公式又不同:
声音为,数据量(位/秒)= (采样频率(Hz)*采样位数(bit)*声道数)
其中,单声道的声道数为1,立体声的声道数为2。
数据量*时间/8=文件总字节
例如CD即为未经压缩的音频文件,采样44.1k,16位,双声道。
数据量=44.1*16*2=1411kb/1024=1.38Mb,一般的MP3压缩后为128kbps
如果以一张CD放一个小时计算的话,CD总量=1.38*3600/8=621MB,当然CD大约放1小时多点,顶多也就700MB。
图象应该是,数据量(位/秒)= (画面尺寸*彩色位数(bit)*帧数)
数据量*时间/8=文件总字节
例如2分钟,25帧/秒,640×480分辨率,24位真彩色数字视频的不压缩的数据量约为,数据量=640x480x24*25=184320Kb=180Mb,而VCD、MKV标准编码率(加上音频)分别为1152Kbps和30Mbps(1080p高清)
2分钟文件字节=180Mbx120/8=2700000KB=2636.71875MB=2.57GB,而压缩后一部90分钟高质量DVD电影可以达到9GB。
2 主要视频格式
●AVI格式:它的英文全称为Audio Video Interleaved,即音频视频交错格式。它于1992年被Microsoft公司推出,随Windows3.1一起被人们所认识和熟知。所谓“音频视频交错”,就是可以将视频和音频交织在一起进行同步播放。这种视频格式的优点是图像质量好,可以跨多个平台使用,其缺点是体积过于庞大,而且更加糟糕的是压缩标准不统一,最普遍的现象就是高版本Windows媒体播放器播放不了采用早期编码编辑的AVI格式视频,而低版本Windows媒体播放器又播放不了采用最新编码编辑的AVI格式视频,所以我们在进行一些AVI格式的视频播放时常会出现由于视频编码问题而造成的视频不能播放或即使能够播放,但存在不能调节播放进度和播放时只有声音没有图像等一些莫名其妙的问题,如果用户在进行AVI格式的视频播放时遇到了这些问题,可以通过下载相应的解码器来解决。
●nAVI格式:nAVI是newAVI的缩写,是一个名为ShadowRealm的地下组织发展起来的一种新视频格式(与我们上面所说的AVI格式没有太大联系)。它是由Microsoft ASF压缩算法的修改而来的,但是又与下面介绍的网络影像视频中的ASF视频格式有所区别,它以牺牲原有ASF视频文件视频“流”特性为代价而通过增加帧率来大幅提高ASF视频文件的清晰度。
●DV-AVI格式:DV的英文全称是Digital Video Format,是由索尼、松下、JVC等多家厂商联合提出的一种家用数字视频格式。目前非常流行的数码摄像机就是使用这种格式记录视频数据的。它可以通过电脑的IEEE 1394端口传输视频数据到电脑,也可以将电脑中编辑好的的视频数据回录到数码摄像机中。这种视频格式的文件扩展名一般是.avi,所以也叫DV-AVI格式。
●MPEG格式:它的英文全称为Moving Picture Expert Group,即运动图像专家组格式,家里常看的VCD、SVCD、DVD就是这种格式。MPEG文件格式是运动图像压缩算法的国际标准,它采用了有损压缩方法减少运动图像中的冗余信息,说的更加明白一点就是MPEG的压缩方法依据是相邻两幅画面绝大多数是相同的,把后续图像中和前面图像有冗余的部分去除,从而达到压缩的目的(其最大压缩比可达到200:1)。目前MPEG格式有三个压缩标准,分别是MPEG-1、MPEG-2、和MPEG-4,另外,MPEG-7与MPEG-21仍处在研发阶段。
MPEG-1:制定于1992年,它是针对1.5Mbps以下数据传输率的数字存储媒体运动图像及其伴音编码而设计的国际标准。也就是我们通常所见到的VCD制作格式。使用MPEG-1的压缩算法,可以把一部120分钟长的电影压缩到1.2GB左右大小。这种视频格式的文件扩展名包括.mpg、.mlv、.mpe、.mpeg及VCD光盘中的.dat文件等。
MPEG-2:制定于1994年,设计目标为高级工业标准的图像质量以及更高的传输率。这种格式主要应用在DVD/SVCD的制作(压缩)方面,同时在一些HDTV(高清晰电视广播)和一些高要求视频编辑、处理上面也有相当的应用。使用MPEG-2的压缩算法,可以把一部120分钟长的电影压缩到4到8GB的大小。这种视频格式的文件扩展名包括.mpg、.mpe、.mpeg、.m2v及DVD光盘上的.vob文件等。
MPEG-4:制定于1998年,MPEG-4是为了播放流式媒体的高质量视频而专门设计的,它可利用很窄的带度,通过帧重建技术,压缩和传输数据,以求使用最少的数据获得最佳的图像质量。目前MPEG-4最有吸引力的地方在于它能够保存接近于DVD画质的小体积视频文件。另外,这种文件格式还包含了以前MPEG压缩标准所不具备的比特率的可伸缩性、动画精灵、交互性甚至版权保护等一些特殊功能。这种视频格式的文件扩展名包括.asf、.mov和DivX AVI等。
小提示:细心的用户一定注意到了,这中间怎么没有MPEG-3编码?实际上,大家熟悉的MP3就是采用的MPEG-3(MPEG Layeur3)编码。
●DivX格式:这是由MPEG-4衍生出的另一种视频编码(压缩)标准,也即我们通常所说的DVDrip格式,它采用了MPEG4的压缩算法同时又综合了MPEG-4与MP3各方面的技术,说白了就是使用DivX压缩技术对DVD盘片的视频图像进行高质量压缩,同时用MP3或AC3对音频进行压缩,然后再将视频与音频合成并加上相应的外挂字幕文件而形成的视频格式。其画质直逼DVD并且体积只有DVD的数分之一。这种编码对机器的要求也不高,所以DivX视频编码技术可以说是一种对DVD造成威胁最大的新生视频压缩格式,号称DVD杀手或DVD终结者。
●MOV格式:美国Apple公司开发的一种视频格式,默认的播放器是苹果的QuickTimePlayer。具有较高的压缩比率和较完美的视频清晰度等特点,但是其最大的特点还是跨平台性,即不仅能支持MacOS,同样也能支持Windows系列。
●ASF格式:它的英文全称为Advanced Streaming format,它是微软为了和现在的Real Player竞争而推出的一种视频格式,用户可以直接使用Windows自带的Windows Media Player对其进行播放。由于它使用了MPEG-4的压缩算法,所以压缩率和图像的质量都很不错(高压缩率有利于视频流的传输,但图像质量肯定会的损失,所以有时候ASF格式的画面质量不如VCD是正常的)。
●WMV格式:它的英文全称为Windows Media Video,也是微软推出的一种采用独立编码方式并且可以直接在网上实时观看视频节目的文件压缩格式。WMV格式的主要优点包括:本地或网络回放、可扩充的媒体类型、部件下载、可伸缩的媒体类型、流的优先级化、多语言支持、环境独立性、丰富的流间关系以及扩展性等。
●RM格式:Real Networks公司所制定的音频视频压缩规范称为Real Media,用户可以使用RealPlayer或RealOne Player对符合RealMedia技术规范的网络音频/视频资源进行实况转播并且RealMedia可以根据不同的网络传输速率制定出不同的压缩比率,从而实现在低速率的网络上进行影像数据实时传送和播放。这种格式的另一个特点是用户使用RealPlayer或RealOne Player播放器可以在不下载音频/视频内容的条件下实现在线播放。另外,RM作为目前主流网络视频格式,它还可以通过其Real Server服务器将其它格式的视频转换成RM视频并由Real Server服务器负责对外发布和播放。RM和ASF格式可以说各有千秋,通常RM视频更柔和一些,而ASF视频则相对清晰一些。
●RMVB格式:这是一种由RM视频格式升级延伸出的新视频格式,它的先进之处在于RMVB视频格式打破了原先RM格式那种平均压缩采样的方式,在保证平均压缩比的基础上合理利用比特率资源,就是说静止和动作场面少的画面场景采用较低的编码速率,这样可以留出更多的带宽空间,而这些带宽会在出现快速运动的画面场景时被利用。这样在保证了静止画面质量的前提下,大幅地提高了运动图像的画面质量,从而图像质量和文件大小之间就达到了微妙的平衡。另外,相对于DVDrip格式,RMVB视频也是有着较明显的优势,一部大小为4700MB左右的DVD影片,如果将其转录成同样视听品质的RMVB格式,其个头最多也就400MB左右。不仅如此,这种视频格式还具有内置字幕和无需外挂插件支持等独特优点。要想播放这种视频格式,可以使用RealOne Player2.0或RealPlayer8.0加RealVideo9.0以上版本的解码器形式进行播放。