音视频技术 视频与带宽码率间的关系

  • 格式:doc
  • 大小:56.50 KB
  • 文档页数:6

码率的单位是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 3003.///< 本地视频编码质量因子控制(参数为int型,同服务器配置:VideoQuality)04.#define BRAC_SO_LOCALVIDEO_QUALITYCTRL 3105.///< 本地视频编码关键帧间隔控制(参数为int型,同服务器配置:VideoGOPSize)06.#define BRAC_SO_LOCALVIDEO_GOPCTRL 3207.///< 本地视频编码帧率控制(参数为int型,同服务器配置:VideoFps)08.#define BRAC_SO_LOCALVIDEO_FPSCTRL 3309.///< 本地视频编码预设参数控制(参数为int型,1-5)10.#define BRAC_SO_LOCALVIDEO_PRESETCTRL 3411.///< 本地视频采集分辨率宽度控制(参数为int型,同服务器配置:VideoWidth)12.#define BRAC_SO_LOCALVIDEO_WIDTHCTRL 3813.///< 本地视频采集分辨率高度控制(参数为int型,同服务器配置:VideoHeight)14.#define BRAC_SO_LOCALVIDEO_HEIGHTCTRL 39其中视频质量控制有两种模式“平均码率模式”(默认设置)和“质量因子模式”,当设置的码率大于0时,启动“平均码率模式”,当设置的码率为0时,启动“质量因子模式”。

典型的设置“平均码率模式”参数代码如下:01.DWORD dwValue = 0;02.// 设置本地视频采集的宽度03.dwValue = 320;04.BRAC_SetSDKOption(BRAC_SO_LOCALVIDEO_WIDTHCTRL,(constchar*)&dwValue,sizeof(DWORD));05.// 设置本地视频采集的高度06.dwValue = 240;07.BRAC_SetSDKOption(BRAC_SO_LOCALVIDEO_HEIGHTCTRL,(constchar*)&dwValue,sizeof(DWORD));08.// 设置本地视频编码的码率09.dwValue = 60 * 1000; // 60 kbps10.BRAC_SetSDKOption(BRAC_SO_LOCALVIDEO_BITRATECTRL,(constchar*)&dwValue,sizeof(DWORD));11.// 设置本地视频编码的关键帧间隔12.dwValue = 20;13.BRAC_SetSDKOption(BRAC_SO_LOCALVIDEO_GOPCTRL,(constchar*)&dwValue,sizeof(DWORD));14.// 设置本地视频编码的帧率15.dwValue = 8;16.BRAC_SetSDKOption(BRAC_SO_LOCALVIDEO_FPSCTRL,(constchar*)&dwValue,sizeof(DWORD));17.// 设置本地视频编码的预设参数18.dwValue = 3;19.BRAC_SetSDKOption(BRAC_SO_LOCALVIDEO_PRESETCTRL,(constchar*)&dwValue,sizeof(DWORD));20.// 使参数设置生效21.BOOL bUseAppParam = TRUE;22.BRAC_SetSDKOption(BRAC_SO_LOCALVIDEO_APPLYPARAM,(constchar*)&bUseAppParam,sizeof(DWORD));典型的设置“质量因子模式”参数代码如下:01.DWORD dwValue = 0;02.// 设置本地视频采集的宽度03.dwValue = 320;04.BRAC_SetSDKOption(BRAC_SO_LOCALVIDEO_WIDTHCTRL,(constchar*)&dwValue,sizeof(DWORD));05.// 设置本地视频采集的高度06.dwValue = 240;07.BRAC_SetSDKOption(BRAC_SO_LOCALVIDEO_HEIGHTCTRL,(constchar*)&dwValue,sizeof(DWORD));08.// 设置本地视频编码的码率09.dwValue = 0;10.BRAC_SetSDKOption(BRAC_SO_LOCALVIDEO_BITRATECTRL,(constchar*)&dwValue,sizeof(DWORD));11.// 设置本地视频编码的质量因子12.dwValue = 4;13.BRAC_SetSDKOption(BRAC_SO_LOCALVIDEO_QUALITYCTRL,(constchar*)&dwValue,sizeof(DWORD));14.// 设置本地视频编码的关键帧间隔15.dwValue = 20;16.BRAC_SetSDKOption(BRAC_SO_LOCALVIDEO_GOPCTRL,(constchar*)&dwValue,sizeof(DWORD));17.// 设置本地视频编码的帧率18.dwValue = 8;19.BRAC_SetSDKOption(BRAC_SO_LOCALVIDEO_FPSCTRL,(constchar*)&dwValue,sizeof(DWORD));20.// 设置本地视频编码的预设参数21.dwValue = 3;22.BRAC_SetSDKOption(BRAC_SO_LOCALVIDEO_PRESETCTRL,(constchar*)&dwValue,sizeof(DWORD));23.// 使参数设置生效24.BOOL bUseAppParam = TRUE;25.BRAC_SetSDKOption(BRAC_SO_LOCALVIDEO_APPLYPARAM,(constchar*)&bUseAppParam,sizeof(DWORD));当启动“平均码率模式”时,质量因子的参数设置仍然有效,只是系统会限制输出的最高码率。