怎么样设置AnyChat视频质量?

如何设置AnyChat视频质量?

AnyChat SDK视频质量主要是通过服务器的“AnyChatCoreServer.ini”配置文件来控制,该配置是整个系统所有房间的默认配置,早期的版本无法实现由上层应用来控制不同的用户采用不同的视频质量参数,自“AnyChat Platform Core SDK V2.8”版本开始,AnyChat便提供了本地视频质量控制接口,可以由上层应用控制本地视频的编码质量,为某些特定的应用提供了基础,例如:可以实现主持人发言时采用高质量的视频参数,而普通用户采集一般的视频参数,从而达到发言者的视频效果优于普通用户的特定效果。(如果采集的视频信号有“横条”干扰,可参考:183. 在什么情况下需要开启“反交织”模式?

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

13.///< 本地视频采集分辨率高度控制(参数为int型,同服务器配置:VideoHeight)

14.#define BRAC_SO_LOCALVIDEO_HEIGHTCTRL                39

其中视频质量控制有两种模式“平均码率模式”(默认设置)和“质量因子模式”,当设置的码率大于0时,启动“平均码率模式”,当设置的码率为0时,启动“质量因子模式”。

典型的设置“平均码率模式”参数代码如下:

01.DWORD dwValue = 0;

02.// 设置本地视频编码的码率

03.dwValue = 60 * 1000;    // 60 kbps

04.BRAC_SetSDKOption(BRAC_SO_LOCALVIDEO_BITRATECTRL,(const char*)&dwValue,sizeof(DWORD));

05.// 设置本地视频编码的关键帧间隔

06.dwValue = 20;

07.BRAC_SetSDKOption(BRAC_SO_LOCALVIDEO_GOPCTRL,(const char*)&dwValue,sizeof(DWORD));

08.// 设置本地视频编码的帧率

09.dwValue = 8;

10.BRAC_SetSDKOption(BRAC_SO_LOCALVIDEO_FPSCTRL,(const char*)&dwValue,sizeof(DWORD));

11.// 设置本地视频编码的预设参数

12.dwValue = 3;

13.BRAC_SetSDKOption(BRAC_SO_LOCALVIDEO_PRESETCTRL,(const char*)&dwValue,sizeof(DWORD));

14.// 使参数设置生效

15.BOOL bUseAppParam = TRUE;

16.BRAC_SetSDKOption(BRAC_SO_LOCALVIDEO_APPLYPARAM,(const char*)&bUseAppParam,sizeof(DWORD));

典型的设置“质量因子模式”参数代码如下:

01.DWORD dwValue = 0;

02.// 设置本地视频编码的码率

03.dwValue = 0;

04.BRAC_SetSDKOption(BRAC_SO_LOCALVIDEO_BITRATECTRL,(const char*)&dwValue,sizeof(DWORD));

05.// 设置本地视频编码的质量因子

06.dwValue = 4;

07.BRAC_SetSDKOption(BRAC_SO_LOCALVIDEO_QUALITYCTRL,(const char*)&dwValue,sizeof(DWORD));

08.// 设置本地视频编码的关键帧间隔

09.dwValue = 20;

10.BRAC_SetSDKOption(BRAC_SO_LOCALVIDEO_GOPCTRL,(const char*)&dwValue,sizeof(DWORD));

11.// 设置本地视频编码的帧率

12.dwValue = 8;

13.BRAC_SetSDKOption(BRAC_SO_LOCALVIDEO_FPSCTRL,(const char*)&dwValue,sizeof(DWORD));

14.// 设置本地视频编码的预设参数

15.dwValue = 3;

16.BRAC_SetSDKOption(BRAC_SO_LOCALVIDEO_PRESETCTRL,(const char*)&dwValue,sizeof(DWORD));

17.// 使参数设置生效

18.BOOL bUseAppParam = TRUE;

19.BRAC_SetSDKOption(BRAC_SO_LOCALVIDEO_APPLYPARAM,(const char*)&bUseAppParam,sizeof(DWORD));

当启动“平均码率模式”时,质量因子的参数设置仍然有效,只是系统会限制输出的最高码率。另外要使设置的参数生效,需要调用“BRAC_SetSDKOption”接口并使用“BRAC_SO_LOCALVIDEO_APPLYPARAM”标志启用所设置的参数,同时也可利用该标志恢复服务器配置的默认视频质量参数。

关于视频帧率关键帧间隔的参数设置可参考如下原则:

1、帧率越高,视频越流畅(最大值为25fps),同时帧率也会对码率和CPU资源占用产生一定的影响,通常的建议是互联网应用(8-12fps),局域网应用(18-25fps);

2、关键帧间隔是指在编码的过程中,两个关键帧之间非关键帧的数量,值越大,码率越小,但会降低视频的质量,值越小,码率越大,视频质量较好,但不宜过小,通常的建议是互联网应用(帧率的3、4倍),局域网应用(等于帧率),不要小于帧率;

关于本地视频编码的预设参数:BRAC_SO_LOCALVIDEO_PRESETCTRL,其取值范围为1-5,主要用来控制CPU资源占用率和画面细节,值越小,编码时的CPU占用率越低,但会损失对画面细节的处理;值越大,编码时的CPU占用率越高,但对画面细节的处理会更细腻,该参数主要针对高码率有效,低码率时由于码率的限制,视频画面细节无法表现出来,所以低码率模式下,可以将该参数调节低一些,以降低CPU的利用率。

关于本地视频编码的码率参数:BRAC_SO_LOCALVIDEO_BITRATECTRL,单位为bps,码率越小,视频质量越差;码率越高,视频质量越好,同时该参数还与视频画面的分辩率有关,不同的分辨率有不同的取值范围,如在互联网应用状态下,分辩率是176x144典型的取值范围是(10kbps ~ 60kbps),分辨率是320x240典型的取值范围是50kbps ~ 120kbps,如果是局域网应用,则码率可适当提高。

关于本地视频编码的质量因子参数:BRAC_SO_LOCALVIDEO_QUALITYCTRL,取值范围为1-6,值越小,画面质量越低,输出码率也越低,值越大,画面质量越高,输出码率也越高。

关于“平均码率模式”和“质量因子模式”两种视频质量控制模式的区别和应用,可参考如下原则:

1、“平均码率模式”:视频编码时以输出码率为优先考虑条件,当画面静止时,输出的码率较低,动态画面码率会较高,瞬时码率可能会超过设置的参数(最高不会超过10%),但是其输出的视频数据平均码率将会维持在设置的参数附近,当画面运动量过大时,编码器为了维持平均码率,将会损失画面的质量,通常互联网应用可采用该模式;

2、“质量因子模式”:当码率参数设置为0时,该模式生效,视频编码时以视频质量为优先考虑条件,静止的画面和动态画面将会用不同的量化因子进行编码,维持在一个固定的画面质量下,当画面静止时,码率较低,当画面运动时,码率较高,通常局域网应用可采用该模式。由于该模式下没有限制码率,所以大运动量画面时,为了保持固定的画面质量,码率的变化将会比较大,所以该模式不适合于互联网应用。

3、如果希望在互联网的环境下获得较高质量的视频效果(在网络带宽许可的情况下),建议采用“平均码率模式”,只是可以适当提高视频质量参数(VideoQuality)的值,视频码率参数根据需要进行设置。低码率,配置较低的视频质量,高码率就需要配置较高的视频质量。

注:“AnyChat Platform Core SDK” V4.0版本开始支持每个用户单独设置视频采集分辩率,当上层应用程序没有设置视频采集分辨率以及视频质量控制相关参数时,客户端将采用服务器默认配置参数,而早期的版本只支持视频质量相关参数的设置,不支持视频采集分辩率的设置,典型的设置本地视频采集分辩率的代码如下:

01.DWORD dwValue = 0;

02.// 设置本地视频采集的宽度

03.dwValue = 320;

04.BRAC_SetSDKOption(BRAC_SO_LOCALVIDEO_WIDTHCTRL,(const char*)&dwValue,sizeof(DWORD));

05.// 设置本地视频采集的高度

06.dwValue = 240;

07.BRAC_SetSDKOption(BRAC_SO_LOCALVIDEO_HEIGHTCTRL,(const char*)&dwValue,sizeof(DWORD));

08.// 使参数设置生效

09.BOOL bUseAppParam = TRUE;

10.BRAC_SetSDKOption(BRAC_SO_LOCALVIDEO_APPLYPARAM,(const char*)&bUseAppParam,sizeof(DWORD));

怎么样设置AnyChat视频质量?,布布扣,bubuko.com

时间: 2024-08-09 06:33:56

怎么样设置AnyChat视频质量?的相关文章

如何设置AnyChat视频质量?

AnyChat SDK视频质量主要是通过服务器的“AnyChatCoreServer.ini”配置文件来控制,该配置是整个系统所有房间的默认配置,早期的版本无法实现由上层应用来控制不同的用户采用不同的视频质量参数,自“AnyChat Platform Core SDK V2.8”版本开始,AnyChat便提供了本地视频质量控制接口,可以由上层应用控制本地视频的编码质量,为某些特定的应用提供了基础,例如:可以实现主持人发言时采用高质量的视频参数,而普通用户采集一般的视频参数,从而达到发言者的视频效

即时通讯过程中如何设置音视频质量参数

在通过网络进行音视频即使通讯的时候,选择合适的视频质量参数就需要根据实际的系统运行环境综合来决定,下面我们针对常见的网络环境给出一些建议供参考. 目前常见的网络主要有四种类型:ADSL拨号接入方式.光纤接入方式.3G拨号接入方式.局域网. ADSL拨号接入方式是一种非对称的网络接入,下行流量通常有2Mbps.4Mbps.6Mbps等,而上行流量通常都是512kbps,即上行速率和下行速率是不对称的.此时如果需要使用AnyChat进行音视频的交互,则上传流量只能用512kbps作为参考值,适合的分

如何设置AnyChat的P2P连接策略

自AnyChat Platform Core SDK V2.8.6版本开始,AnyChat SDK向上层应用开放了内核的P2P连接策略,可以让应用程序来干预内核的P2P连接,以满足各种场合下的应用需求. 设置P2P连接策略的典型代码如下: 1.DWORD dwP2PPolitic = 3; 2.BRAC_SetSDKOption(BRAC_SO_NETWORK_P2PPOLITIC,(const char*)&dwP2PPolitic,sizeof(DWORD)); 目前开放的P2P连接策略包含

干货 | VMAF视频质量评估在视频云转码中的应用

作者介绍:姜生,PP云高级技术经理,10余年视频编解码算法设计优化,流媒体应用等领域开发经验. 一 .VMAF 技术介绍: VMAF 的全称是:Visual Multimethod Assessment Fusion,视频质量多方法评价融合.这项技术是由美国Netflix公司开发的一套主观视频质量评价体系.2016年1月,VMAF 正式开源: 下载地址: https://github.com/Netflix/vmaf 二 .通行视频质量评价方法的局限: 评价一个编码后的视频流与压缩前的视频流质量

视频质量诊断----概述

随着平安城市.大安防的发展,监控摄像机数量的不断增加,给监控系统的维护工作带来了新的挑战.如何及时了解前端视频设备的运行情况,发现故障并检测恶意遮挡与破坏的不法行为已成为视频监控系统运行的首要迫切问题.对于成千上万个监控摄像机,依靠人工去检测监控画面是否有故障是不现实的,因此视频质量诊断系统应运而生. 本文主要研究视频质量诊断系统中的诊断算法.主要有:偏亮检测.偏暗检测.偏色检测.雪花噪声检测.条纹噪声检测.模糊检测.遮挡检测.信号丢失检测.画面冻结检测.PTZ云台运动检测.画面抖动检测.其中后

视频质量诊断----雪花噪声检测

雪花噪声即椒盐噪声,以前黑白电视常见的噪声现象. 原理 准备0°,45°,90°,135°4个方向的卷积模板. 用图像先和四个模板做卷积,用四个卷积绝对值最小值Min来检测噪声点. 求灰度图gray与其中值滤波图median. 判断噪声点:fabs(median-gray)>10 && min>0.1. 噪声点占整幅图像的比较即为雪花噪声率. 三.结果演示 雪花噪声率:0.67 0.63 0.15 1.0 雪花噪声率:0.65 1.0 Demo演示下载地址:http://fil

视频质量诊断----画面抖动检测

当摄像头立杆不稳或因车辆引起地面振动时,视频画面就会发生抖动. 原理 每隔N帧取一帧. 对取到的每帧进行特征点提取. 对检测的相邻2帧进行特征点匹配. 得到匹配矩阵,当匹配矩阵大于A时认为这2帧画面有抖动. 当抖动帧数大于B时认为画面发生抖动. 三.结果演示 Demo演示下载地址:http://files.cnblogs.com/wqvbjhc/%E8%A7%86%E9%A2%91%E8%B4%A8%E9%87%8F%E8%AF%8A%E6%96%ADdemo_20140501.rar 视频质量

视频质量诊断----色度异常检测

色度异常检测一般称为偏色检测. 即图像为某一范围颜色值分布过多而导致图像整体偏色的情况. 原理 提取图像的色度分量H 计算色度分量H的直方图 求最方图最大bin占整个直方图的比例,该比例值就为偏色值 结果演示 偏色率:1.0 0 0.21 0.43 1.0 偏色率: 1.0 0.71 0.77 1.0 偏色率: 0.23 0.17 0.0 0.0 备注:以上图像来自另一位博主的偏色检测文章http://www.cnblogs.com/Imageshop/p/3191853.html 本算法缺点对

视频质量诊断----遮挡检测

遮挡检测一般是摄像头被异物遮挡,呈现出整个场景或某一部分场景看不到的情况.被遮挡住的部分一般都呈偏黑色. 原理 把彩色图像二值化,偏黑的部分为前景,其他部分为背景. 对前景进行连通区域检测,求得最大连通区域面积. 该面积整幅图像面积的比较即为遮挡率. 三.结果演示 遮挡率:0.67 0.43 0.52 遮挡率:1.0 本算法缺点:对于黑屏图像,会被检测为遮挡. Demo演示下载地址:http://files.cnblogs.com/wqvbjhc/%E8%A7%86%E9%A2%91%E8%B4