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

在通过网络进行音视频即使通讯的时候,选择合适的视频质量参数就需要根据实际的系统运行环境综合来决定,下面我们针对常见的网络环境给出一些建议供参考。

目前常见的网络主要有四种类型: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等。

时间: 2024-11-03 01:41:38

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

cocos2dx-3.2 笔记 - 设置分辨率

这个很简单 glview->setDesignResolutionSize(1280,720, ResolutionPolicy::SHOW_ALL); 具体最后那个参数宏可以参考源码解释 cocos2dx-3.2 笔记 - 设置分辨率

virtulbox安装win10 64bit不能正常设置分辨率1366*768的解决方案

2015.07.29 win10正式版发布,为了尝鲜,个人在virtualbox里面安装了一个虚拟机进行实验,但是在安装完增强包之后发现分辨率还是跟没有安装增强包之前一样,所以只使用那么一点点小屏幕那个揪心啊. 经过查阅资料,virtulbox在GUI里面没有提供自定义设置分辨率这个接口,但是命令行是有相关设置的,在这里记录一下: /usr/bin/VBoxManage setextradata "win10" CustomVideoMode1 1366x768x32 解析:"

web.xml中servlet初始化参数的设置

<context-param><param-name>param1</param-name><param-value>value1</param-value></context-param><context-param><param-name>param2</param-name><param-value>value2</param-value></context-pa

android震动的参数怎么设置

============问题描述============ 怎么设置振动的参数可以使振动强大变大,像系统来电时那样. mVibrator01 = (Vibrator) getApplication().getSystemService(Service.VIBRATOR_SERVICE); mVibrator01.vibrate(new long[] { 400, 800, 1200, 1600 }, 0); 参数怎么设置振动比较强. ============解决方案1============ lo

mysql基础--global参数和session参数的设置

1.修改my.ini配置文件,如果要设置全局参数最简单的方式是在my.ini文件中直接写入参数配置,如下图所示.重启数据库服务就可以使全局参数生效. 如下图所示,所有新开的session中的参数都生效了 2.在不修改配置文件的基础上,设置全局参数,set global autocommit=1;将autocommit参数的值设置为ON 其他session窗口中的参数也没有生效 由上图可以看出设置了全局参数,但是查询出来的autocommit参数还是没有发生变化.是我们设置失败了吗?不是的,此时需

MySQL优化:mysql服务运行参数的设置

可以用管理员登录在mysql>命令行下设置,设置是临时的. 如果希望永久生效,则要修改/etc/my.cnf文件中的[mysqld]下相关参数: #vim /ect/my.cnf [mysqld] -- 下面详细讲解相关运行参数的设置: 1.并发连接数设置    max_connections 最大并发连接数的设置公式:曾经有过的最大连接数/要设置的最大连接数*100%约等于85%时是合适的,15%应付突发访问量 mysql> show  variables like  "max_c

视频参数(流媒体系统,封装格式,视频编码,音频编码,播放器)对比

发现了几个视频参数对比的资源,是Wikipedia上的,总结的非常好: 流媒体系统对比: http://en.wikipedia.org/wiki/Comparison_of_streaming_media_systems 封装格式对比: http://en.wikipedia.org/wiki/Comparison_of_container_formats 视频编码器对比: http://en.wikipedia.org/wiki/Comparison_of_video_codecs 音频编码

如何把in_array 的第三个参数strict设置为 true

var_dump(in_array(0, array('s' )); 这句话的结果是bool(true). 因为in_array会将0 和's' 进行比较,0是number类型,'s'是string类型,根据php教程 manual 中"comparison operators" 一章的说明可知,number 和string进行 比较的时候,会先将string类型首先转化为number,然后再进行比较操作. 's'转化为number的结果为0,而0 == 0 的结果是true,所以in

通过nfs网络文件系统启动tiny6410开发板时uboot启动参数的设置 &nbsp;

通过nfs网络文件系统启动tiny6410开发时uboot启动参数应该设置为: console=ttySAC0 lcd=S70 root=/dev/nfs nfsroot=192.168.1.30:/opt/tiny6410/fs/rootfs_mini6410 ip=192.168.1.40:192.168.1.30:192.168.1.30:255.255.255.0:tiny6410:eth0:off 注意:这里一定要指明你的lcd的类型,不然通过nfs成功启动tiny6410时,你的lc