音视频技术 视频与带宽码率间的关系
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
码率的单位是bps,这是一个表征通信速率的基本参数,属于通信范畴,和图像清晰度无关;码率和质量成正比,但是文件体积也和码率成正比。如果对方要看到你的视频码率很高,当然带宽越大,传输过去的数据就越快了,带宽小延迟马赛克等现象更可想而知。
分辨率的乘值就是像素,直接关系图像清晰度。分辨率越高=像素越高=图像越清晰。
CIF是常用的标准化图像格式(Common Intermediate Format)。在H.323协议簇中,规定了视频采集设备的标准采集分辨率。CIF = 352×288像素
CIF格式具有如下特性:
(1) 电视图像的空间分辨率为家用录像系统(Video Home System,VHS)的分辨率,即352×288。 (2) 使用非隔行扫描(non-interlaced scan)。
(3) 使用NTSC帧速率,电视图像的最大帧速率为30 000/1001≈29.97幅/秒。
(4) 使用1/2的PAL水平分辨率,即288线。
(5) 对亮度和两个色差信号(Y、Cb和Cr)分量分别进行编码,它们的取值范围同ITU-R BT.601。即黑色=16,白色=235,色差的最大值等于240,最小值等于16。
带宽又叫频宽是指在固定的的时间可传输的资料数量,亦即在传输管道中可以传递数据的能力。在数字设备中,频宽通常以bps表示,即每秒可传输之位数。此理,分辨率越大,视频数据量就越大当然需求带宽就越大。
各大厂家都有自己出台的资料参数,这个只是书面的,很多大项目需要现场设备来测试才好说,很多内在设备音视频编解码和外在的因素在里边,同时也含有各大厂家的利弊,其实也是招标中你争我夺的利剑之一。
AnyChat SDK具有设置视频质量参数的接口,但是如何在实际使用时,选择合适的视频质量参数就需要根据实际的系统运行环境综合来决定,下面我们针对常见的网络环境给出一些建议供参考。
目前常见的网络主要有四种类型: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质量模式分辨率、码率对应表(单位:kbps)
图一
图二
注释:Static—静态画面, motion—运动图像峰值, agv—平均码率
AnyChat的视频质量分为“码率控制模式”和“质量控制模式”,在“码率控制模式”下,视频流的目标码率会在设定码率的上下浮动,而在“质量控制模式”下,目标码率会根据视频图像的运动场景自动进行调节,静态画面时输出较低的码率,而运动画面时,会输出较高的码率,以保障视频的细节得到展现。通常来说,光纤接入方式、局域网等网络带宽比较充裕的场合可使用“质量控制模式”,而ADSL拨号接入和3G拨号接入则采用“码率控制模式”比较合适。
关于视频的帧率,帧率越高,视频越流畅,同时给网络的压力也会增大,输出的码率也会增加,通常来说,光纤接入方式、局域网等网络带宽比较充裕的场合可使用高帧率,如20fps、25fps,而ADSL拨号接入和3G拨号接入则采用低帧率比较合适,如8fps、12fps等。
AnyChat SDK视频质量主要是通过服务器的“AnyChatCoreServer.ini”配置文件来控制,该配置是整个系统所有房间的默认配置,早期的版本无法实现由上层应用来控制不同的用户采用不同的视频质量参数,自“AnyChat Platform Core SDK V2.8”版本开始,AnyChat便提供了本地视频质量控制接口,可以由上层应用控制本地视频的编码质量,为某些特定的应用提供了基础,例如:可以实现主持人发言时采用高质量的视频参数,而普通用户采集一般的视频参数,从而达到发言者的视频效果优于普通用户的特定效果。(如果采集的视频信号有“横条”干扰,
AnyChat SDK的本地视频质量控制接口可以调节的参数包括“视频采集分辩率”、“视频帧率”、“视频码率”、“视频质量”、“关键帧间隔”以及“预设参数”的控制,参数定义如下:
01.///< 本地视频编码码率设置(参数为int型,同服务器配置:VideoBitrate)
02.#define BRAC_SO_LOCALVIDEO_BITRATECTRL 30
03.///< 本地视频编码质量因子控制(参数为int型,同服务器配置:VideoQuality)
04.#define BRAC_SO_LOCALVIDEO_QUALITYCTRL 31
05.///< 本地视频编码关键帧间隔控制(参数为int型,同服务器配置:VideoGOPSize)
06.#define BRAC_SO_LOCALVIDEO_GOPCTRL 32
07.///< 本地视频编码帧率控制(参数为int型,同服务器配置:VideoFps)
08.#define BRAC_SO_LOCALVIDEO_FPSCTRL 33
09.///< 本地视频编码预设参数控制(参数为int型,1-5)
10.#define BRAC_SO_LOCALVIDEO_PRESETCTRL 34
11.///< 本地视频采集分辨率宽度控制(参数为int型,同服务器配置:VideoWidth)
12.#define BRAC_SO_LOCALVIDEO_WIDTHCTRL 38