|
AnyChat技术团队继续完善视频质量参数控制接口,新版本(AnyChat r4756)支持在视频通话过程中动态调节视频质量参数,包括:
1、视频输出码率(BRAC_SO_LOCALVIDEO_BITRATECTRL);
2、关键帧间隔(BRAC_SO_LOCALVIDEO_GOPCTRL);
3、质量因子(BRAC_SO_LOCALVIDEO_QUALITYCTRL);
4、预设参数(BRAC_SO_LOCALVIDEO_PRESETCTRL);
在视频质量动态调节过程中,不会造成远端画面的闪烁。
动态调节码率示例代码:- DWORD dwBitrate = 100 * 1000; // 100kbps
- BRAC_SetSDKOption(BRAC_SO_LOCALVIDEO_BITRATECTRL, (CHAR*)&dwBitrate, sizeof(DWORD));
复制代码 动态调节码率与质量因子示例代码:- DWORD dwQuality = 3;
- BRAC_SetSDKOption(BRAC_SO_LOCALVIDEO_QUALITYCTRL, (CHAR*)&dwQuality, sizeof(DWORD));
- DWORD dwBitrate = 100 * 1000; // 100kbps
- BRAC_SetSDKOption(BRAC_SO_LOCALVIDEO_BITRATECTRL, (CHAR*)&dwBitrate, sizeof(DWORD));
复制代码 有关动态调节视频分辨率
1、当需要动态改变视频分辩率时,需要调用参数应用(BRAC_SO_LOCALVIDEO_APPLYPARAM)接口使得视频分辩率修改生效;
2、当使用外部视频输入接口,且需要改变视频分辩率时,需要先调用API接口(BRAC_SO_CORESDK_EXTVIDEOINPUT)关闭外部视频输入,然后再重新打开,调节前需要停止调用(关闭定时器)API:BRAC_InputVideoData;
3、视频分辨率的动态调节,可能会导致远程视频画面短暂的闪烁,因为分辨率变化后,远端需要重构显示表面;
4、视频分辨率依赖硬件设备以及底层驱动的支持,所设置的分辨率不一定能被底层驱动所支持,若不支持,AnyChat将会采用驱动默认的分辩率初始化硬件设备。
注意事项:
1、当动态调节多项参数时,需要把码率调节的代码放在最后的位置;
2、当不需要动态改变视频分辩率时,只需要调用调节码率的代码(BRAC_SO_LOCALVIDEO_BITRATECTRL)即可,会即时生效,不需要额外调用参数应用(BRAC_SO_LOCALVIDEO_APPLYPARAM)接口;
3、视频质量调节后,可通过客户端日志文件(BRAnyChatCore.log)来验证调节是否成功,或者通过第三方的网络流量监控工具来检测网络上传的码率是否有变化;
|
|