首页 > 代码库 > 如何设置视频的帧率、分辨率、码率来调节音视频即时通讯的质量
如何设置视频的帧率、分辨率、码率来调节音视频即时通讯的质量
在通过网络进行音视频即使通讯的时候,选择合适的视频质量参数就需要根据实际的系统运行环境综合来决定,下面我们针对常见的网络环境给出一些建议供参考。
目前常见的网络主要有四种类型:ADSL拨号接入方式、光纤接入方式、3G拨号接入方式、局域网。
ADSL拨号接入方式是一种非对称的网络接入,下行流量通常有2Mbps、4Mbps、6Mbps等,而上行流量通常都是512kbps,即上行速率和下行速率是不对称的。此时如果需要使用AnyChat进行音视频的交互,则上传流量只能用512kbps作为参考值,适合的分辨率有:QVGA(320x240)、CIF(352x288)、VGA(640x480)。
纤接入方式是一种对称的网络接入,通常上行速率和下行速率相同。光纤接入的网络通常非常稳定,适合传输较高质量的视频,当网络带宽允许的情况下,适合的分辩率有:QVGA(320x240)、CIF(352x288)、VGA(640x480)、SVGA(800x600)、720P(1280x720)。
3G拨号接入方式也是一种非对称的网络接入,不同的网络运营商所提供的网络带宽各不相同,而且和ADSL一样上行网络带宽远远低于下行网络带宽,如联通的3G宣传的7.2Mbps网络带宽便是指下行带宽,而且3G的网络带宽质量与位置相关,如离信号基站越近,质量就越好,同一个基站下使用3G的用户越少,质量也就越好。在这种接入方式下,适合上传的分辨率有:QVGA(320x240)、CIF(352x288)。
局域网,或是专网网络带宽都非常充裕,选择多大的分辨率主要根据PC的性能来决定,通常局域网可以选择CIF(352x288)、VGA(640x480)、SVGA(800x600)、720P(1280x720)等分辨率。
现在就AnyChat音视频开发包为例,进行设置视频的帧率、分辨率、码率来调节音视频即时通讯的质量。
AnyChat质量模式分辨率、码率对应表(单位:kbps)
| 320x240 | 352x288 | 640x480 | 800x600 | 1280x720 | |||||
12fps | 25fps | 12fps | 25fps | 12fps | 25fps | 12fps | 25fps | 12fps | 25fps | |
static | 20 | 40 | 60 | 70 | 100 | 130 | 160 | 180 | 350 | 380 |
motion | 150 | 200 | 210 | 250 | 400 | 450 | 550 | 650 | 850 | 900 |
avg | 80 | 120 | 150 | 180 | 200 | 230 | 300 | 350 | 450 | 550 |
Static—静态画面, motion—运动图像峰值, agv—平均码率
AnyChat的视频质量分为“码率控制模式”和“质量控制模式”,在“码率控制模式”下,视频流的目标码率会在设定码率的上下浮动,而在“质量控制模式”下,目标码率会根据视频图像的运动场景自动进行调节,静态画面时输出较低的码率,而运动画面时,会输出较高的码率,以保障视频的细节得到展现。通常来说,光纤接入方式、局域网等网络带宽比较充裕的场合可使用“质量控制模式”,而ADSL拨号接入和3G拨号接入则采用“码率控制模式”比较合适。
关于视频的帧率,帧率越高,视频越流畅,同时给网络的压力也会增大,输出的码率也会增加,通常来说,光纤接入方式、局域网等网络带宽比较充裕的场合可使用高帧率,如20fps、25fps,而ADSL拨号接入和3G拨号接入则采用低帧率比较合适,如8fps、12fps等。
如何设置视频的帧率、分辨率、码率来调节音视频即时通讯的质量