屏幕录制方法和装置与流程

文档序号:33618443发布日期:2023-03-25 10:09阅读:来源:国知局

技术特征:
1.一种屏幕录制方法,其特征在于,所述方法包括:响应于接收的录屏指令,获取屏幕显示osd层的第i帧待合成屏幕数据:获取与所述第i帧待合成屏幕数据对应的视频video层的目标白板数据,所述目标白板数据的目标采集时刻,与所述第i帧待合成屏幕数据的采集时刻最近;将所述第i帧待合成屏幕数据与所述目标白板数据进行合成处理,得到第i帧合成数据,以录制包括osd层数据和video层数据的视频数据;其中,i为0,1,2,3
……
。2.根据权利要求1所述的方法,其特征在于,所述获取osd层的第i帧待合成屏幕数据之前,所述方法还包括:创建自定义glsurfaceview,以及与所述自定义glsurfaceview对应的自定义开放图形库opengl渲染器,所述自定义opengl渲染器包括外部录屏纹理管线和纹理叠加管线;所述将所述第i帧待合成屏幕数据与所述目标白板数据进行合成处理,得到第i帧合成数据,包括:通过所述外部录屏纹理管线处理所述第i帧待合成屏幕数据,得到第i帧纹理;通过所述纹理叠加管线处理所述第i帧纹理和所述目标白板数据,得到所述第i帧合成数据。3.根据权利要求1所述的方法,其特征在于,所述获取osd层的每帧待合成屏幕数据,包括:监听所述osd层的数据缓存区的数据可用事件;当监听到预设次数的所述数据可用事件后,从所述数据缓存区获取所述osd层的数据。4.根据权利要求1所述的方法,其特征在于,所述将所述第i帧待合成屏幕数据与所述目标白板数据进行合成处理,得到第i帧合成数据,以录制包括osd层数据和video层数据的视频数据之后,所述方法还包括:显示所述第i帧合成数据,以播放所述视频数据;或者,对所述第i帧合成数据进行编码处理,以生成编码后的所述视频数据。5.根据权利要求4所述的方法,其特征在于,所述对所述第i帧合成数据进行编码处理之前,所述方法还包括:判断是否满足第一条件,所述第一条件为当前时刻与所述目标采集时刻的差值小于或等于时长阈值,且当前处于视频录制状态;所述对所述第i帧合成数据进行编码处理,包括:在满足所述第一条件的情况下,对所述第i帧合成数据进行编码处理;所述方法还包括:在不满足所述第一条件的情况下,丢弃所述第i帧合成数据。6.根据权利要求5所述的方法,其特征在于,经过编码处理的所述第i帧合成数据包括时间戳,所述时间戳用于指示对所述第i帧合成数据进行编码处理的时刻与目标时刻的差值;所述在满足所述第一条件的情况下,对所述第i帧合成数据进行编码处理,包括:在满足所述第一条件的情况下,检测当前是否处于数据合成状态;
在当前处于所述数据合成状态的情况下,对所述第i帧合成数据进行编码处理,将第一差值与接收到所述录屏指令的系统时刻之和确定为所述目标时刻,所述第一差值为0,或者,所述第一差值用于指示对所述第i帧合成数据进行编码处理的时刻与上一次从数据合成状态切换为数据暂停合成状态的时刻的差值;在当前处于所述数据暂停状态的情况下,对所述第i帧合成数据进行编码处理,并将所述数据暂停状态切换为数据合成状态,将第二差值与接收到所述录屏指令的系统时刻之和确定为所述目标时刻,所述第二差值用于指示对所述第i帧合成数据进行编码处理的时刻与上一次从数据合成状态切换为数据暂停合成状态的时刻的差值。7.根据权利要求6所述的方法,其特征在于,所述在不满足所述第一条件的情况下,丢弃所述第i帧合成数据,包括:在不满足所述第一条件的情况下,检测当前是否处于数据合成状态;在当前处于所述数据合成状态的情况下,将所述数据合成状态设置为数据暂停合成状态,记录当前将数据合成状态切换为数据暂停合成状态的时刻,并丢弃所述第i帧合成数据;在当前处于所述数据暂停合成状态的情况下,丢弃所述第i帧合成数据。8.根据权利要求6所述的方法,其特征在于,在对所述第i帧合成数据进行编码处理,以生成编码后的所述视频数据之后,在按照目标倍速播放编码后的所述视频数据时,将所述时间戳与所述目标倍速的倒数的乘积作为播放所述第i帧合成数据与播放下一帧合成数据的时间间隔。9.一种屏幕录制装置,其特征在于,所述装置包括:获取模块和合成模块;所述获取模块,用于响应于接收的录屏指令,获取屏幕显示osd层的第i帧待合成屏幕数据:所述获取模块,还用于获取与所述第i帧待合成屏幕数据对应的视频video层的目标白板数据,所述目标白板数据的目标采集时刻,与所述第i帧待合成屏幕数据的采集时刻最近;所述合成模块,用于将所述第i帧待合成屏幕数据与所述目标白板数据进行合成处理,得到第i帧合成数据,以录制包括osd层数据和video层数据的视频数据;其中,i为0,1,2,3
……
。10.根据权利要求9所述的装置,其特征在于,所述装置还包括:创建模块;所述创建模块,用于在所述获取osd层的第i帧待合成屏幕数据之前,创建自定义glsurfaceview,以及与所述自定义glsurfaceview对应的自定义开放图形库opengl渲染器,所述自定义opengl渲染器包括外部录屏纹理管线和纹理叠加管线;所述合成模块,具体用于通过所述外部录屏纹理管线处理所述第i帧待合成屏幕数据,得到第i帧纹理;通过所述纹理叠加管线处理所述第i帧纹理和所述目标白板数据,得到所述第i帧合成数据。

技术总结
本公开涉及一种屏幕录制方法和装置,应用于多媒体技术领域,该方法包括:响应于接收的录屏指令,获取OSD层的第i帧待合成屏幕数据:获取与第i帧待合成屏幕数据对应的VIDEO层的目标白板数据,目标白板数据的目标采集时刻,与第i帧待合成屏幕数据的采集时刻最近;将第i帧待合成屏幕数据与目标白板数据进行合成处理,得到第i帧合成数据,以录制包括OSD层数据和VIDEO层数据的视频数据;其中,i为0,1,2,3


技术研发人员:朱宗花 李斌
受保护的技术使用者:海信视像科技股份有限公司
技术研发日:2022.09.28
技术公布日:2023/3/24
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1