首页 > 代码库 > 流媒体学习笔记1:一个视频文件常用属性浅析之我见(bpp/vbr/resolution/fps)
流媒体学习笔记1:一个视频文件常用属性浅析之我见(bpp/vbr/resolution/fps)
因为工作原因,经常要接触视频相关的东西,而有一些视频常见的知识之前都是只知道个大概,甚至只是知道个名字的。很有必要对相关的知识整理下记录下来,以便有需要的人可以借鉴一二。但有些观点纯粹是天地会珠海分舵自己的理解,如果有误请指出,以免荼毒后人。
位深bpp
码率
Wikipedia的解释:媒体行业在指音频或者视频在单位时间内的数据传输率時通常使用码流或码率,单位是kbps(千位每秒)
百度百科的解析:视频码率就是数据传输时单位时间传送的数据位数,一般我们用的单位是kbps即千位每秒。
个人见解:个人认为百度百科解析的很不清楚,怎么去理解数据传输时单位时间传送的数据位数,主要是数据传输到哪里的时候的单位时间传送数据位数?既然是码率,怎么整个解析一个”码“字都没有看到!? 如果后面加个”解码器“这样就好理解多了 - 视频数据传输到解码器进行解码播放时的单位时间传送的数据位数。所以码率还应该跟你设备的解码能力有关系,如果你有个10M的码率的视频文件,但是你的播放设备没有对应的解码能力,那么也是枉然。就好像你有前兆网络,但是网卡是百兆的,最终你得到就是百兆的速度。
再深一层理解的话,同样内容的视频,在使用不同编码压缩技术的时候码率可以是不一样的。因为不同的技术压缩比率会不一样,但是视频播放时长是固定的,所以单位时间内包含的编码信息就会不一样。当然,如果完全不进行压缩的话码率是最大的,同时视频文件也是最大的,视频也就是最清晰的。所以视频编/解码技术应该是要去挑战让码率(单位时间长度包含的数据)最小的情况下能在真正播放时还原成最清晰的视频信息。
到了当今的年代,我们看电影更多是直接网上进行播放了,那么码率跟网络速度又有什么关系呢?其实我的理解很简单,比如你的网络下行速度是1Mb/s,而你要播放的视频文件是1Mb/s的码率,那么你刚好能流畅的播放该电影视频;而如果同样的网速下面你的码率是10Mb/s,那么你只能卡卡的去看了。
所以我个人对码率会如此进行定义:单位时间内视频文件包含的视频编码信息的大小。因为视频文件都是压缩过的,所以这里更多是在指定码率下,该视频期望编码器在单位时间内需要处理的视频数据信息的大小。这里要注意视频文件的播放时间是固定的,所以码率越大,单位时间包含的信息量就越大,也就是组成视频的信息量越大,视频就越清晰。
当然,上面是为了描述简单,所以描述的情况是当视频使用的是固定码率的情况,固定码率也叫做CBR,也就是说整个媒体文件单位时间内包含的数据信息应该是一样的。这种情况对视频里面没有太多的动作切换的时候还可以,因为在短时间段内看来该视频是静止的,所以单位时间内同样数量的数据信息应该就能把图片呈现出来。但是当视频里面包含太多的快速变化的动作的时候,CBR就不适用了,如果继续使用CBR的时候,我们就会看到某些动作片里面的动作是很不连贯的,因为单位时间内没有足够的信息去描述整个动作过程中的所有阶段。这个时候VBR就出来了,也就是说在同一个视频文件里面,不同的时间段所拥有的数据量可能是不一样的,也就是码率是不一样的,在没有剧烈运动的部分码率会低一点,运动量大的地方码率会高点。所以VBR在一个媒体文件中会有多个属性,比如平均码率,最高码率,请看下图:
分辨率
帧率FPS
- 位深bpp:表示用多少个位来表示ARGB。该属性影响的是我们的视频的色彩变现能力。
- 码率:编码压缩后视频文件单位时间内包含的数据信息量,在可变码率视频编码的情况下,不同时间段的码率是不一样的。该属性影响的是视频的清晰度。
- 分辨率:视频中一幅图片所包含的像素点信息数量,在MonkeyRunner的裸图中是以一个数组保存起来的。该属性从某一种程度上影响了视频的清晰度,因为一张图片拥有了更多像素来描述相应的细节,比如一个3K的显示器,播放4k分辨率的电影和播放1K分辨率的电影分辨获得的就是2k的清晰度和1k的清晰度。
- 帧率:单位时间内播放的帧数。该属性主要影响的是播放的流畅度。
作者 | 自主博客 | 微信 | CSDN |
天地会珠海分舵 | http://techgogogo.com | 服务号:TechGoGoGo 扫描码: | http://blog.csdn.net/zhubaitian |
流媒体学习笔记1:一个视频文件常用属性浅析之我见(bpp/vbr/resolution/fps)