`
songqiuling
  • 浏览: 8785 次
  • 性别: Icon_minigender_2
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

如何设置视频质量

 
阅读更多
如何设置AnyChat视频质量?
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
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,(constchar*)&dwValue,sizeof(DWORD));
05.// 设置本地视频编码的关键帧间隔
06.dwValue = 20;
07.BRAC_SetSDKOption(BRAC_SO_LOCALVIDEO_GOPCTRL,(constchar*)&dwValue,sizeof(DWORD));
08.// 设置本地视频编码的帧率
09.dwValue = 8;
10.BRAC_SetSDKOption(BRAC_SO_LOCALVIDEO_FPSCTRL,(constchar*)&dwValue,sizeof(DWORD));
11.// 设置本地视频编码的预设参数
12.dwValue = 3;
13.BRAC_SetSDKOption(BRAC_SO_LOCALVIDEO_PRESETCTRL,(constchar*)&dwValue,sizeof(DWORD));
14.// 使参数设置生效
15.BOOL bUseAppParam = TRUE;
16.BRAC_SetSDKOption(BRAC_SO_LOCALVIDEO_APPLYPARAM,(constchar*)&bUseAppParam,sizeof(DWORD));

典型的设置“质量因子模式”参数代码如下:
01.DWORD dwValue = 0;
02.// 设置本地视频编码的码率
03.dwValue = 0;
04.BRAC_SetSDKOption(BRAC_SO_LOCALVIDEO_BITRATECTRL,(constchar*)&dwValue,sizeof(DWORD));
05.// 设置本地视频编码的质量因子
06.dwValue = 4;
07.BRAC_SetSDKOption(BRAC_SO_LOCALVIDEO_QUALITYCTRL,(constchar*)&dwValue,sizeof(DWORD));
08.// 设置本地视频编码的关键帧间隔
09.dwValue = 20;
10.BRAC_SetSDKOption(BRAC_SO_LOCALVIDEO_GOPCTRL,(constchar*)&dwValue,sizeof(DWORD));
11.// 设置本地视频编码的帧率
12.dwValue = 8;
13.BRAC_SetSDKOption(BRAC_SO_LOCALVIDEO_FPSCTRL,(constchar*)&dwValue,sizeof(DWORD));
14.// 设置本地视频编码的预设参数
15.dwValue = 3;
16.BRAC_SetSDKOption(BRAC_SO_LOCALVIDEO_PRESETCTRL,(constchar*)&dwValue,sizeof(DWORD));
17.// 使参数设置生效
18.BOOL bUseAppParam = TRUE;
19.BRAC_SetSDKOption(BRAC_SO_LOCALVIDEO_APPLYPARAM,(constchar*)&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,(constchar*)&dwValue,sizeof(DWORD));
05.// 设置本地视频采集的高度
06.dwValue = 240;
07.BRAC_SetSDKOption(BRAC_SO_LOCALVIDEO_HEIGHTCTRL,(constchar*)&dwValue,sizeof(DWORD));
08.// 使参数设置生效
09.BOOL bUseAppParam = TRUE;
10.BRAC_SetSDKOption(BRAC_SO_LOCALVIDEO_APPLYPARAM,(constchar*)&bUseAppParam,sizeof(DWORD));
分享到:
评论

相关推荐

    Allok Video Joiner v4.6中文版(附注册码).rar

    这个软件的操作界面很漂亮,使用起来也比较简单,先添加要合并的视频,然后选择输出目录和输出格式,再按“开始合并”按钮即可,可根据实际需要来设置视频质量、音频质量及视频分辨率屏幕宽高比。可以增加黑边保持...

    ImTOO DVD Creator 7.1.3中文破解版.rar

    自定义设置视频质量,NTSC/PAL电视制式,设置4:3或者16:9宽高比。软件本身带有视频编辑器,可以对要转换的视频进行编辑,如剪辑视频、添加视频效果视频字幕,设置音频属性,编辑菜单缩略图等,内置多种菜单模板可供...

    GiliSoft Screen Recorder屏幕录像软件V6.3.0中文版.rar

    详细的参数设置支持设置视频质量、视频分辨率及视频帧率。支持录制透明窗体,使用该功能透明窗体将被录制,但是可能会降低录制效率,所以建议有需要时才使用。水印添加支持添加文字及图片水印,可以在指定位置添加...

    4Media Movie Editor 6简体中文注册版.rar

    支持设置视频质量及音频质量。可以设置转换时所使用的CPU内核数,将影响转换的速度和占用的系统资源,如果想获得最快速度,可以选择使用全部内核进行转换,使用最少内核转换占用的资源最少,支持显卡GPU加速,可以将...

    DVD素材制作之视频篇视频质量的控制和几种常见编码器设置.doc

    DVD素材制作之视频篇视频质量的控制和几种常见编码器设置.doc

    DVD素材制作之视频篇(1)视频质量的控制和几种常见编码器设置.doc

    DVD素材制作之视频篇(1)视频质量的控制和几种常见编码器设置.doc

    uni-app录制视频插件,视频压缩,支持设置分辨率和视频名称

    uni-app在Android平台上录制视频,支持设置分辨率和视频名称,有取消、重录和完成功能 视频录制 视频设置分辨率 Android录制视频 资源包中有demo源码和相关操作文档

    X.264常规选项设置

    常规选项设置  在常规选项栏中的参数设置及... 滑条:设置转换时使用的比特率(Bitrate-based、Two-Pass、Three-Pass,范围0Kbps-20000Kbps)及原来视 屏质量的百分比(Quality-based范围1-100),数值越大质量越

    狸窝视频转换,mp4格式,视频体积小无失真

    其最大优点就是可以将视频转换为mp4格式,且转换后的文件体积很小,视频质量无失真。 狸窝视频转换支持几乎所有主流视频格式的互相转换,无论是avi、rmvb、wmv还是mov、flv等格式,都可以通过简单的设置一键转换为mp4...

    HandBrake-跨平台免费开源视频转码器/视频压缩转码压制工具

    它可以轻松进行视频转码、压缩视频体积等操作,同时支持设置裁切、视频质量、字幕、滤镜、编解码器等功能,提供丰富的可选参数,并支持批量转换。用户可以直接将视频文件或文件夹拖放到HandBrake界面上开始处理,...

    Aiesoft Video Enhancer视频画质增强工具.rar

    还可删除视频中影响观看体验的“雪”和“点”等视频干扰噪音,以及调整视频亮度、对比度、饱和度、色调、水印、裁剪、3D、逐行扫描以及音量,同时减少晃动动作以获得更高的视频质量,所以也叫视频清晰度增强软件。...

    万能视频格式转换器3.7简体中文免费版.rar

    使用方法:首先点击“添加文件”来添加要转换的视频,在预置方案中选择转换后输出的格式,点击旁边的设置按钮,可以设置视频分辨率及视频质量。时间剪辑中可以指定要转换的时间段,添加文字或图片水印。设置视频效果...

    全能视频转换工具

    如输出视频质量、尺寸、分辨率等。 2、支持批量转换,可以处理多个文件。 3、视频编辑功能: 1)视频裁剪。 2)视频拆分;截取单一视频中的任意部分,进行转换。 3)视频合并;把不同的多个视频文件合并成一个文件,...

    基于MATLAB的视频换脸

    matlab下载 基于MATLAB的视频换脸 准备工作: 1)创建两个空文件夹“my...是否手动处理根据你对视频质量的要求而定 3)把处理后的图片转为视频: 1、打开c_Video_compositing.m,设置要处理的图片起始帧数,并运行即可

    维棠FLV视频下载软件

    维棠还提供视频批量下载,且维棠FLV视频下载软件还内置了视频转换工具,视频格式,视频质量、分时段分割,文档智能命名,代理服务器自定义,悬浮穿,下载任务设置以及下载完以后关机等设定充分展现了该软件功能上...

    视频无损分割软件LosslessCut v3.42.0一款不重新编码的视频和无损质量切割的软件.exe

    LosslessCut 专业的视频无损分割软件,用于修剪或不重新编码的视频和无损质量切割一个免费的工具。非常适合轻松处理从摄像机,GoPro等拍摄的大视频文件。让您快速摆脱无用的零件。该程序不执行任何解码或编码,因此...

    采用H264编码视频的参数设定

    这意味着,CABAC应该在码率低5-15%,的情况下,提供同等的,或者更高的视频质量。 在我自己做的测试中,CABAC产出的视频质量要明显的好于CAVLC,虽然只是在高清晰视频编码测试中,采用非常低的码率的情况下。 如图4...

    视频分割器Boilsoft Video Splitter.rar

    Boilsoft Video Splitter 是一款优秀且快速的专业无损视频分割软件,支持大于2GB以上的视频分割和直接拖放功能,无需重新编码就...在保持原始音频/视频质量的同时拆分视频。分裂速度极高。拆分速度比编码模式快 10 倍。

    iSee视频监控 v5.2

    视频录像图像质量有多种等级可调,以改变存储文件大小,方便不同场合应用。 视频移动报警录像功能,报警录像灵敏度、预录像时间、延迟录像时间可调,支持声音 报警输出。 智能检索,可按摄像镜头年/月/日/时间...

    人工智能-matlab-基于MATLAB的视频换脸

    基于MATLAB的视频换脸 准备工作: 1)创建两个空文件夹“my picture”...是否手动处理根据你对视频质量的要求而定 3)把处理后的图片转为视频: 1、打开c_Video_compositing.m,设置要处理的图片起始帧数,并运行即可

Global site tag (gtag.js) - Google Analytics