一、前言
音视频处理相关,首先需要面临的是音视频多媒体的比特率问题,比特率也是码率,一个音频比特率为 128kb/s,即每秒128k bit,8bit=1Byte,也就是这个音频每秒钟占用16KB的存储空间,而如果涉及到多声道就应该乘以相应的倍数。
由于视频由视频图像数据与音频数据组装而成,因此 对于视频来说,就除了音频audio之外,还要加上video的大小。
上述音频视频的码率都会涉及到编解码压缩比例的问题。
二、正文
音频码率相关
首先是音频码率的计算,一个音频的基本属性假设为: 采样率:44.1KHZ,码率:128kb/s,通道数:双声道。
- 采样率——44.1KHZ,每秒钟对音频的采样频次。
- 通道数——双声道(立体音)左右耳听到差异的声音,有多少个通道数就有多少个维度的音频数据。
- 比特率(码率)——128kb/s,每秒钟占多少kb。
- 采样位数 采样样本幅度量化,衡量声音波动变化的一个参数,也可以说是声卡的分辨率。即纵轴刻度的精确度。假设采样位数如下:
——1 字节(也就是8bit) 只能记录 256 个数, 也就是只能将振幅划分成 256 个等级;
——2 字节(也就是16bit) 可以细到 65536 个数, CD 标准
于是先放一张图如下所示,这张图是一个音频的波形图,波形的横轴设为X,纵轴为Y。Y轴的精度就是采样位数,而X轴的精度则代表每秒钟采样频次即采样率,因此一个音频的比特率即单位时间所占空间大小为:比特率=采样率 * 采样位数 * 通道数。
而又由于音频格式的不同,所采用的压缩编码方式皆不相同,因此在计算音频对应比特率时,还应乘以压缩的倍率,如0.2等。
比特率=采样率 * 采样位数 * 通道数 * 压缩比例
视频码率相关
由于视频由视频图像及音频声音封装而成,因此视频的码率计算需要分为两部分:视频图像的码率 + 视频中音频的码率。而音频的码率我们已经在上面计算过了,因此接下来要说的是视频图像的码率。
如上图所示,是一段视频,如果要计算一个未经过压缩的视频图像的码率,则需要图像的分辨率(如1080*720)属性,图像位深度(如8或16)以及每秒帧数(如60,90)。即公式如下:
帧率 * 像素宽 * 像素长 * 位深度 = 视频图像码率。如一个视频属性为:60fps(帧率),480*720p,32位位深,则视频图像码率 = 60 * 480 * 720 * 32。
整个未压缩的视频码率 = 音频码率 + 视频图像码率;由于当前视频均采用编码压缩,因此还需要乘以倍率,视频码率 = 音频码率* 音频压缩比率 + 视频图像码率* 视频压缩比率。而计算出的视频码率只能大约得估算出真正的视频码率,因为其中还有一些其他的影响参数。
三、结语
在写这篇博客的时候,也发现了有个根据视频参数自动计算视频码率的网站,https://toolstud.io/video/bitrate.php ,感觉很不错,推荐。