本发明涉及一种通讯领域,尤其涉及一种视频通话中切换分辨率的实现方法。
背景技术:
随着通讯的发展,视频通话越来越普及。能够进行视频通话的终端设备有很多,如常见的电脑、手机、智能电视、电视盒子等。对于类似电视盒子的终端,如果终端没有自带摄像头,要进行视频通话时就要另外配置一个摄像头。现在的设备接口都是标准规范,如摄像头与电视盒子一般是通过USB接口进行联接。终端生产厂家多,摄像头生产厂家也多,技术参差不齐,导致在电气性能、接口规范上存在很大差异。这就产生了适配问题。
目前遇到的问题是,电视盒子等终端有时无法正常采集到摄像头在某一分辨率的视频数据,在视频通话时,如果摄像头正好选择了不能正常被终端采集的分辨率,就会导致终端无法显示画面,给用户带来很大的困扰,以为设备出了问题,影响用户体验。
技术实现要素:
本发明的目的在于克服现有技术中存在的不足,提供一种视频通话系统,以及视频通话中切换分辨率的方法,智能切换摄像头不能正常采集与显示的分辨率画面,给用户带来新的方便。本发明采用的技术方案是:
一种视频通话系统,该视频通话系统的视频通话终端中设有分辨率异常检测与切换模块;
所述的分辨率异常检测与切换模块,包含以下子模块:
摄像头初始化测模块,用于初始化摄像头,调用异常分辨率检测模块检测摄像头当前分辨率的视频数据是否正常采集,依据检测结果决定是否进行摄像头分辨率切换;当检测结果表明摄像头当前分辨率的视频数据无法正常采集,则调用分辨率适配模块,选择不同于当前分辨率的另一分辨率作为初始化摄像头的参数;
异常分辨率检测模块,用于检测摄像头当前分辨率的视频数据是否正常采集;
分辨率获取模块,获取摄像头支持的所有分辨率;
分辨率适配模块,从摄像头支持的分辨率中,删除已知的异常分辨率,根据设置选取一个合适的分辨率;
检测设置模块,供用户修改异常分辨率检测的设置。
一种视频通话中切换分辨率的方法,适用于上述视频通话系统,包括:
摄像头初始化测模块进行摄像头初始化的方法,包括以下步骤:
步骤301,开始;
步骤302,设置分辨率画面检测标志;
步骤302,清除已检测次数;
步骤304,清除分辨率正常标志;
步骤305,获取分辨率参数,以该分辨率参数打开摄像头;
步骤306,判断摄像头是否成功打开,是,转步骤307,否,转步骤313;
步骤307,判断分辨率画面检测标志,是否检测结束,是,转步骤310,否转步骤308;
步骤308,获取摄像头的视频数据到缓冲区;
步骤309,调用异常分辨率检测模块,将缓冲区的视频数据作为参数,进行分辨率对应视频数据的检测;转步骤307;
步骤310,判断分辨率正常标志,当前分辨率的视频数据是否能正常采集,是,转步骤314,否,转步骤311;
步骤311,调用分辨率适配模块,选择一个不同于当前分辨率的另一个分辨率作为初始化摄像头的参数;
步骤312,关闭摄像头,转步骤302;
步骤313,关闭摄像头;
步骤314,结束。
进一步地,步骤309中,调用异常分辨率检测模块,进行分辨率对应视频数据的检测的方法如下:
步骤401,开始;
步骤402,读取视频数据参数缓冲区;
步骤403,读取设置中的需要检测次数;
步骤404,判断当前已检测次数,是否大于等于需要检测次数,是,转步骤408,否,转步骤405;
步骤405,已检测次数加1;
步骤406,判断视频数据缓存区中,是否有数据发生变化,是,转步骤407,否,转步骤410;
步骤407,设置分辨率正常标志,转步骤409;
步骤408,清除分辨率正常标志;
步骤409,清除分辨率画面检测标志;
步骤410,结束。
进一步地,步骤311中,调用分辨率适配模块进行分辨率适配的方法如下:
步骤501,开始;
步骤502,获取当前分辨率参数;
步骤503,获取摄像头支持的分辨率列表;
步骤504,对分辨率列表进行排序;
步骤505,将已知的异常分辨率,从分辨率列表中删除;
步骤506,读取设置的分辨率适配条件;
步骤507,判断分辨率适配条件,是否选择大于当前分辨率,是,转步骤508,否,转步骤509;
步骤508,从大于当前分辨率的分辨率中,选择最小的分辨率;转步骤510;
步骤509,从小于当前分辨率的分辨率中,选择最大的分辨率;
步骤510,将选中的分辨率作为当前分辨率参数;
步骤511,结束。
进一步地,本发明还包括利用检测设置模块进行异常分辨率检测设置的方法,包括以下步骤:
步骤701,开始;
步骤702,收到用户进行异常分辨率检测设置的命令;
步骤703,显示异常分辨率检测设置界面,提示用户进行操作;异常分辨率检测设置界面中包括检测次数和分辨率适配条件;
步骤704,判断用户是否执行设置操作,是,转步骤705,否,转步骤707;
步骤705,判断设置是否发生变化,是,转步骤706,否,转步骤707;
步骤706,保存异常分辨率检测设置;
步骤707,隐藏异常分辨率检测设置界面;
步骤708,结束。
本发明的优点在于:应用本发明,视频通话中,当前设置的分辨率无法正常显示画面时,及时检测当前分辨率的视频数据是否正常采集,根据检测结果切换到正确的摄像头分辨率,避免给用户带来不必要的困扰,从来给使用者带来更好的视频通话体验。
附图说明
图1为本发明的视频通话系统结构示意图。
图2为本发明的分辨率异常检测与切换模块结构示意图。
图3为本发明的摄像头初始化流程图。
图4为本发明的摄像头视频数据的检测流程图。
图5为本发明的分辨率适配模块进行分辨率适配流程图。
图6为本发明的异常分辨率检测设置的界面示意图。
图7为本发明的异常分辨率检测设置的流程图。
具体实施方式
下面结合具体附图和实施例对本发明作进一步说明。
(一)视频通话中切换分辨率的方法,用于一种视频通话系统,该视频通话系统包括:
视频通话服务器101和视频通话终端111;其中:
视频通话服务器101用于接受用户登录,接收各视频通话终端111发来的数据,并向各终端发送请求的数据;
视频通话终端111用于用户登录,录制、发送、接收、播放音频视频数据,具有智能切换不能显示的分辨率功能;视频通话终端111可以有多个;
进一步的,视频通话服务器101,包含以下模块:
终端接入模块102,接收终端登录请求;
账号管理模块103,保存终端账号和终端登录的数据;
数据服务模块104,接收各终端发来的的数据,向终端发送请求的数据;
进一步的,视频通话终端111,包含以下模块:
登录模块112,登录到视频通话服务器;
视频录制发送模块113,负责录制、发送视频数据;
视频接收播放模块115,负责接收、播放视频数据;
音频录制发送模块114,负责录制、发送音频数据;
音频接收播放模块116,负责接收、播放音频数据;
分辨率异常检测与切换模块117,检测摄像头当前分辨率的视频数据是否正常采集,并进行对应的操作;
进一步的,本发明视频通话终端的分辨率异常检测与切换模块117,包含以下子模块:
摄像头初始化测模块201,用于初始化摄像头,调用异常分辨率检测模块检测摄像头当前分辨率的视频数据是否正常采集,依据检测结果决定是否进行摄像头分辨率切换;当检测结果表明摄像头当前分辨率的视频数据无法正常采集,则调用分辨率适配模块,选择不同于当前分辨率的另一分辨率作为初始化摄像头的参数;
异常分辨率检测模块202,用于检测摄像头当前分辨率的视频数据是否正常采集;
分辨率获取模块203,获取摄像头支持的所有分辨率;
分辨率适配模块204,从摄像头支持的分辨率中,删除已知的异常分辨率,根据设置选取一个合适的分辨率;
检测设置模块205,供用户修改异常分辨率检测的设置。
(二)视频通话中切换分辨率的方法,具体包括:
如图3所示,摄像头初始化测模块201进行摄像头初始化的方法:
步骤301,开始;
步骤302,设置分辨率画面检测标志;
步骤302,清除已检测次数;
步骤304,清除分辨率正常标志;
步骤305,获取分辨率参数,以该分辨率参数打开摄像头;
步骤306,判断摄像头是否成功打开,是,转步骤307,否,转步骤313;
步骤307,判断分辨率画面检测标志,是否检测结束,是,转步骤310,否转步骤308;
步骤308,获取摄像头的视频数据到缓冲区;
步骤309,调用异常分辨率检测模块,将缓冲区的视频数据作为参数,进行分辨率对应视频数据的检测;转步骤307;
步骤310,判断分辨率正常标志,当前分辨率的视频数据是否能正常采集,是,转步骤314,否,转步骤311;
步骤311,调用分辨率适配模块,选择一个不同于当前分辨率的另一个分辨率作为初始化摄像头的参数;
步骤312,关闭摄像头,转步骤302;
步骤313,关闭摄像头;
步骤314,结束。
应用本发明,视频通话中,检测当前设置的分辨率的视频数据无法正常采集和显示时,及时切换到正确的摄像头分辨率,避免给用来带来不必要的困扰,从来给使用者带来更好的视频通话体验。
如图4所示,调用异常分辨率检测模块,进行分辨率对应视频数据的检测的方法如下:
步骤401,开始;
步骤402,读取视频数据参数缓冲区;
步骤403,读取设置中的需要检测次数;
步骤404,判断当前已检测次数,是否大于等于需要检测次数,是,转步骤408,否,转步骤405;
步骤405,已检测次数加1;
步骤406,判断视频数据缓存区中,是否有数据发生变化,是,转步骤407,否,转步骤410;
此步骤中,如果当前分辨率的视频数据能够正常采集,则缓存区中的数据一定会变化;
步骤407,设置分辨率正常标志,转步骤409;
步骤408,清除分辨率正常标志;
步骤409,清除分辨率画面检测标志;
步骤410,结束。
如图5所示,分辨率适配模块进行分辨率适配的方法如下(即步骤311的一种具体实现):
步骤501,开始;
步骤502,获取当前分辨率参数;
步骤503,获取摄像头支持的分辨率列表;
步骤504,对分辨率列表进行排序;
步骤505,将已知的异常分辨率,从分辨率列表中删除;异常分辨率是指该分辨率的视频数据不能正常采集;
步骤506,读取设置的分辨率适配条件;
步骤507,判断分辨率适配条件,是否选择大于当前分辨率,是,转步骤508,否,转步骤509;
步骤508,从大于当前分辨率的分辨率中,选择最小的分辨率;转步骤510;
步骤509,从小于当前分辨率的分辨率中,选择最大的分辨率;
步骤510,将选中的分辨率作为当前分辨率参数;
步骤511,结束。
如图6所示,异常分辨率检测设置的界面,包括检测次数和分辨率适配条件的设置界面;图6中的检测次数10,可以更改为其它需要的数字;图6中的圆圈,黑的表示当前已选择,白的表示未选择;
如图7所示,检测设置模块进行异常分辨率检测设置的方法如下:
步骤701,开始;
步骤702,收到用户进行异常分辨率检测设置的命令;
步骤703,显示异常分辨率检测设置界面,提示用户进行操作;
步骤704,判断用户是否执行设置操作,是,转步骤705,否,转步骤707;
步骤705,判断设置是否发生变化,是,转步骤706,否,转步骤707;
步骤706,保存异常分辨率检测设置;
步骤707,隐藏异常分辨率检测设置界面;
步骤708,结束。