视频码率、分辨率、帧率的关系
视频带宽计算公式(码流_分辨率_帧率) (自己整理过的.)
码流
码流(Data Rate)是指视频文件在单位时间内使用的数据流量,也叫码率或码流率,是视频编码中画面质量控制中最重要的部分,一般我们用的单位是Kb/s或者Mb/s。一般来说同样分辨率下,视频文件的码流越大,压缩比就越小,画面质量就越高。码流越大,说明单位时间内取样率越大,数据流,精度就越高,处理出来的文件就越接近原始文件,图像质量越好,画质越清晰,要求播放设备的解码能力也越高。
帧率
一帧就是一副静止的画面,连续的帧就形成动画,如电视图象等。我们通常说帧数,简单地说,就是在1秒钟时间里传输的图片的帧数,也可以理解为图形处理器每秒钟能够刷新几次,通常用fps(Frames Per Second)表示。每一帧都是静止的图象,快速连续地显示帧便形成了运动的假象。高的帧率可以得到更流畅、更逼真的动画。每秒钟帧数 (fps) 愈多,所显示的动作就会愈流畅。
分辨率
视频分辨率是指视频成像产品所成图像的大小或尺寸。常见的视像分辨率有352×288,176×144,640×480,1024×768。在成像的两组数字中,前者为图片长度,后者为图片的宽度,两者相乘得出的是图片的像素,长宽比一般为4:3. 目前监控行业中主要使用Qcif(176×144)、CIF(352×288)、HALF D1(704×288)、D1(704×576)等几种分辨率。
D1是数字电视系统显示格式的标准,共分为以下5种规格:
D1:480i格式(525i):720×480(水平480线,隔行扫描),和NTSC模拟电视清晰度相同,行频为15.25kHz,相当于我们所说的4CIF(720×576)
D2:480P格式(525p):720×480(水平480线,逐行扫描),较D1隔行扫描要清晰不少,和逐行扫描DVD规格相同,行频为31.5kHz
D3:1080i格式(1125i):1920×1080(水平1080线,隔行扫描),高清方式采用最多的一种分辨率,分辨率为1920×1080i/60Hz,行频为33.75kHz
D4:720p格式(750p):1280×720(水平720线,逐行扫描),虽然分辨率较D3要低,但是因为逐行扫描,市面上更多人感觉相对于1080I(实际逐次540线)视觉效果更加清晰。不过个人感觉来说,在最大分辨率达到1920×1080的情况下,D3要比D4感觉更加清晰,尤其是文字表现力上,分辨率为1280×720p/60Hz,行频为45kHz
D5:1080p格式(1125p):1920×1080(水平1080线,逐行扫描),目前民用高清视频的最高标准,分辨率为1920×1080P/60Hz,行频为67.5KHZ。
其中D1 和D2标准是我们一般模拟电视的最高标准,并不能称的上高清晰,D3的1080i标准是高清晰电视的基本标准,它可以兼容720p格式,而D5的1080P只是专业上的标准。
帧率、码流与分辨率之间关系
公式:
带宽 / (码流 * 8) = 同时在线人数
文件大小 = 时间×码率/8
一个视频文件的大小为5.86M,播放时长为3分7秒:
1、该文件对应的码流就是
5.86 * 1024 * 1024 * 8 / (3 * 60 + 7) =262872.95657754bps
2、10M独享带宽能支撑的同时在线人数
10* 1024 * 1024 / 262872.95657754 =39.889078498294
3、支撑1000人同时在线的系统最少需要的带宽数为
262872* 1000 / (1024 * 1024) = 250.69427490234M
原文链接:https://blog.csdn.net/LUFANGBO/article/details/83793198
设置视频码率的必要性
在视频会议应用中,视频质量和网络带宽占用是矛盾的,通常情况下视频流占用的带宽越高则视频质量也越高;如要求高质量的视频效果,那么需要的网络带宽也越大;解决这一矛盾的钥匙当然是视频编解码技术。评判一种视频编解码技术的优劣,是比较在相同的带宽条件下,哪个视频质量更好;在相同的视频质量条件下,哪个占用的网络带宽更少。
是不是视频码率越高,质量越好呢?理论上是这样的,然而在我们肉眼分辨的范围内,当码率高到一定程度,感觉没有什么差别。所以码率设置有它的最优值,H.264(也叫AVC或X.264)的文档中,视频的建议码率如下:
视频大小 分辨率 建议码率
480P 720X480 1800Kbps
720P 1280X720 3500Kbps
1080P 1920X1080 8500Kbps
三、手机设置码率建议
通过上面的介绍,结合我做过的一些手机项目,我总结了一套设置码率的公式,分享给大家如下:
项目计算公式 192X144 320X240 480X360 640X480 1280X720 1920X1080
极低码率(宽X高X3)/4 30kb/s 60kb/s 120kps 250kbps 500kbps 1mbps
低码率(宽X高X3)/2 60kb/s 120kb/s 250kbps 500kbps 1mbps 2mbps
中码率(宽X高X3) 120kb/s 250kb/s 500kbps 1mbps 2mbps 4mbps
高码率(宽X高X3)X 2 250kb/s 500kb/s 1mbps 2mbps 4mbps 8mbps
极高码率(宽X高X3)X4 500kb/s 1mb/s 2mbps 4mbps 8mbps 16mbps
阿里云给的建议:根据清晰度 给出码率和分辨率
链接:https://www.jianshu.com/p/be38f54dafcb
参数设置:
cameraView.addCameraListener(object : CameraListener() {
override fun onCameraOpened(options: CameraOptions) {
super.onCameraOpened(options)
cameraView.setVideoSize(SizeSelectors.maxWidth(720))
cameraView.videoBitRate = 1500 * 1000
cameraView.audioBitRate = 64000
}
override fun onCameraError(exception: CameraException) {
super.onCameraError(exception)
ToastUtils.error("camera error: $exception")
}
})
Android 视频压缩传输
1、https://github.com/Tourenathan-G5organisation/SiliCompressor
2、https://github.com/zerochl/FFMPEG-AAC-264-Android-32-64
3、https://www.cnblogs.com/wzqnxd/p/10038881.html
4、https://blog.csdn.net/qq_36421691/article/details/79113392