帧率与码率的概念

音视频有许多概念,帧率跟码率,是其中两个常见的概念。

读者经常会听到“刷新的帧率是多少”或“码率比较高所以要求网速要比较好”等表达。

本文介绍音视频的帧率与码率的概念。

小程之前还介绍了音视频的其它概念,读者可以关注“广州小程”微信公众号,并在“音视频->基础概念与流程”菜单项中查阅相关的文章。

(1)帧率

帧率,表示的是频率,也就是在一段时间,操作的频度。

帧率的具体含义,需要分两个场景来介绍,一个是采集时的场景,另一个是显示时的场景。

(a)采集时

对于自然界的声音或图像来说,要转换成为计算机里面的物件,采集是必须的。

对于图像的采集,一般以摄像头或屏幕作为输入,按一定的规则拍摄图片或截取图片(小程之前介绍过录制视频,读者可以参考这篇文章)。

这个获取图片的规则中,有一项指标,可以称为“取图速度”。明显,取图越快,就越能把变化的细节捕捉到,但图片的总数量也越多,如果这些图片存放在磁盘或在网络上传输,那存储空间与占用的带宽就是要考虑的因素,而这个跟“取图速度”有关。

“取图速度”,一般用单位时间(比如一秒钟)内取几张图来界定,也就是一秒钟有多少帧,单位为fps,比如“我的这个电影是25fps”,就是1秒内我取了25张图。

小程之前介绍“从视频中提取图片”时,传给ffmepg的参数-r,就是一秒钟拿几张图,也是“取图速度”的概念,但这个是从已有视频中提取,而不是从摄像头或屏幕提取。

(b)显示时

采集到图片,经过编码压缩、存储或传输、解码,最终被展示出来。

展示图片时,也有一些展示的规则,这些规则中有一项指标,可以称为“画图速度”。

“画图速度”,就是一秒画出几张图,单位同样为fps。

同样,在源图片连续的情况下,如果画得越快,理论就越平滑。但是,画得越快,就越费劲,甚至根本就没有能力画得那么快。

到底“画图速度”要多快,要看你的目的与实际能力。一般理想的效果是,既让图片展示得平滑,又让显示组件不太忙。

小白:那么,多少fps,才算是平滑?

小程:得看内容变化的情况,如果不经常运动的,那15fps都可能够用了;如果运动剧烈的,那就要画得更快一些,比如30fps、60fps或更高。当然,前提是,采集到的是平滑的。

画得太慢或画得太快,会导致什么问题?这个跟代码逻辑有关。一般来说,对于视频,有声音跟图像,那就要考虑声画同步的问题,其中一个实现逻辑,可以用声音为主,图像落后于声音的pts就渲染图片,否则就等待,如果按这样的逻辑,那么,画得太慢就会出现图像跟不上声音的问题,画得太快则问题不大(只是多一些判断的执行)。如果是其它处理逻辑,则要具体问题具体分析。

总的来说,采集时的“取图速度”以及显示时的“画图速度”,就叫帧率。

一般来说,如果说一个视频的帧率,那指得是采集时的帧率。

小白:我可以这一秒15fps,一下秒就变成30fps吗?

小程:这个叫动态帧率(vfr),不在这里展开了。

接下来,小程演示一下如何改变视频的帧率。

这里用FFmpeg来改变视频的帧率。对于FFmpg的安装与使用,读者可以参考小程之前介绍的文章。

帧率更改前,是这样的:

使用ffmepg命令来修改帧率,更改为1fps(类似于采集,1秒钟拿一张图):

ffmpeg -i moments.mp4 -y -r 1 moments_1fps.mp4

帧率更改后,是这样的:

然后,这两个不同的采集帧率(左边1fps,右边25fps),对应的视频的效果是这样的:

(2)码率

码率也叫比特率,是在编码压缩时使用的概念。音视频数据,最终用二制数(bit)来表示,1秒钟的数据量,就是码率。单位为bps,或者kbps,比如“我用128kbps来编码mp3文件”。

1秒钟的比特量越多,能表达的细节就越多(比如声音的高频段信息等),占用的磁盘空间越大,如果传输则占用的带宽也越大。

这里演示一下,用ffmepg命令来更改码率

码率更改前,是这样的:

用ffmpeg命令修改码率

ffmpeg -i moments.mp4 -y -b:v 50K -b:a 0K moments_50k_br.mp4

码率更改后,是这样的:

两个不同码率(左50kbps,右388kbps),对应视频的播放效果是这样的:

可以看到,左边的非常模糊,甚至出现了马赛克,因为码率太小,压缩得太严重了。

最后,说一下文件大小与码率的关系。

文件大小 = 码率 * 时长。这个适用于固定码率的情况,码率为总的码率(音频+视频+其它)。一般可以根据这个公式,推算出音视频的时长。

同样,可以用ffmpeg命令来修改文件大小(从头截取一段):

ffmpeg -i moments.mp4 -y -fs 100K moments_fs_100k.mp4



总结一下,本文介绍了帧率与码率的概念。帧率,一般反映了采集时采集的速度;码率,是编码时的概念,反映了单位时间内用多少bit去描述音频或视频数据。

原文地址:http://blog.51cto.com/13136504/2106787

时间: 2024-07-31 17:22:00

帧率与码率的概念的相关文章

视频参数如何设置、分辨率和帧率对码率的影响、带宽、网络环境

在通过网络进行音视频即使通讯的时候,选择合适的视频质量参数就需要根据实际的系统运行环境综合来决定,下面我们针对常见的网络环境给出一些建议供参考. 目前常见的网络主要有四种类型:ADSL拨号接入方式.光纤接入方式.3G拨号接入方式.局域网. ADSL拨号接入方式是一种非对称的网络接入,下行流量通常有2Mbps.4Mbps.6Mbps等,而上行流量通常都是512kbps,即上行速率和下行速率是不对称的.此时如果需要使用AnyChat进行音视频的交互,则上传流量只能用512kbps作为参考值,适合的分

码流 / 码率 / 比特率 / 帧速率 / 分辨率 / 高清的区别

GOP/ 码流 /码率 / 比特率 / 帧速率 / 分辨率 GOP(Group of picture) 关键帧的周期,也就是两个IDR帧之间的距离,一个帧组的最大帧数,一般而言,每一秒视频至少需要使用 1 个关键帧.增加关键帧个数可改善质量,但是同时增加带宽和网络负载. 需要说明的是,通过提高GOP值来提高图像质量是有限度的,在遇到场景切换的情况时,H.264编码器会自动强制插入一个I帧,此时实际的GOP值被缩短了.另一方面,在一个GOP中,P.B帧是由I帧预测得到的,当I帧的图像质量比较差时,

视频编解码

所谓视频编码方式就是指通过特定的压缩技术,将某个视频格式的文件转换成另一种视频格式文件的方式.视频流传输中最为重要的编解码标准有国际电联的H.261.H.263.H.264,运动静止图像专家组的M-JPEG和国际标准化组织运动图像专家组的MPEG系列标准,此外在互联网上被广泛应用的还有Real-Networks的RealVideo.微软公司的WMV以及Apple公司的QuickTime等. 中文名 视频编码 外文名 Video Encoding 分    类 H.26x系列,MPEG系列,AVS

视频编码的基本原理

视频图像数据有极强的相关性,也就是说有大量的冗余信息.其中冗余信息可分为空域冗余信息和时域冗余信息.压缩技术就是将数据中的冗余信息去掉(去除数据之间的相关性),压缩技术包含帧内图像数据压缩技术.帧间图像数据压缩技术和熵编码压缩技术. 一.去时域冗余信息     使用帧间编码技术可去除时域冗余信息,它包括以下三部分: 1. 运动补偿     运动补偿是通过先前的局部图像来预测.补偿当前的局部图像,它是减少帧序列冗余信息的有效方法. 2. 运动表示     不同区域的图像需要使用不同的运动矢量来描述

「视频直播技术详解」系列之七:直播云 SDK 性能测试模型

?关于直播的技术文章不少,成体系的不多.我们将用七篇文章,更系统化地介绍当下大热的视频直播各环节的关键技术,帮助视频直播创业者们更全面.深入地了解视频直播技术,更好地技术选型. 本系列文章大纲如下: (一)采集 (二)处理 (三)编码和封装 (四)推流和传输 (五)延迟优化 (六)现代播放器原理 (七)SDK 性能测试模型 本篇是<视频直播技术详解>系列的最后一篇直播云 SDK 性能测试模型,SDK 的性能对最终 App 的影响非常大.SDK 版本迭代快速,每次发布前都要进行系统的测试,测试要

“小程序+直播”怎样搅动音视频技术生态?

责编 / 王宇豪 策划 / LiveVideoStack 12月26日晚间,微信小程序开放了直播能力,并首先向社交.教育.医疗.政务民生.金融等五大应用场景开放.与原生App应用和基于浏览器的H5应用相比,小程序直播会对音视频技术生态带来哪些影响?微信天生的流量优势会给开发者和运营带来机会还是陷阱?LiveVideoStack邀请了若干位有代表性的技术人,分享各自的观点与思考. LiveVideoStack:对于小程序提供的这种实时音视频功能,它是否能满足我们一般的直播需求呢?比如它的延迟大致能

一场稳定、高清、流畅的大型活动直播是怎么炼成的?

双11猫晚是家喻户晓的综艺晚会,在今年的双11,阿里集团为2500万用户提供了一场在线直播视觉盛宴.网友评价这是一场既稳定流畅又高清的直播,当然在这背后离不开阿里云的技术支持. 本次天猫晚会中,视频云首次采用4k和50帧的技术,把整个画质提升到接近肉眼极限,同时为用户提供了如丝般顺滑的直播体验. 那么这么一场大型活动的直播究竟是如何炼成的呢?阿里云视频云技术专家裘良科带我们从稳定.画质.流畅.监控四个方面开始解读. 如何做到100%稳定?裘良科认为:"最安全的做法就是做好500%的准备,以不便应

FFMPEG Tips (2) 如何提取码流的基本信息

本文是我的<FFMPEG Tips>系列的第二篇文章,上篇文章<FFMPEG Tips (1) 如何打印日志>主要分享了如何利用 ffmpeg 库打印日志,而本文则主要分享一下如何利用 ffmpeg 库拿到码流的一些基本信息. 1.  码流中的哪些信息值得关注 ? [ ] 是否包含:音频.视频 [ ] 码流的封装格式 [ ] 视频的编码格式 [ ] 音频的编码格式 [ ] 视频的分辨率.帧率.码率 [ ] 音频的采样率.位宽.通道数 [ ] 码流的总时长 [ ] 其他 Metada

iOS视频直播

视频直播技术点 视频直播,可以分为 采集,前处理,编码,传输, 服务器处理,解码,渲染 采集: iOS系统因为软硬件种类不多, 硬件适配性比较好, 所以比较简单. 而Android端市面上机型众多, 要做些机型的适配工作.PC端是最麻烦的, 各种奇葩摄像头驱动.所以现在很多的中小型直播平台, 都放弃了PC的直播, 更有一些直播平台只做iOS端的视频直播. 前处理: 美颜算法,视频的模糊效果, 水印等都是在这个环节做. 目前iOS端最著名开源框架的毫无疑问就是GPUImage.其中内置了125种渲