屏幕录制方法和装置、设备及存储介质与流程

文档序号:24445214发布日期:2021-03-27 04:53阅读:100来源:国知局
屏幕录制方法和装置、设备及存储介质与流程

1.本公开涉及屏幕录制领域,尤其涉及一种屏幕录制方法和装置、设备及存储介质。


背景技术:

2.如今4g网络早已普及,5g技术也开始实施,未来5g网络的传输速率可达10gbps,这意味着手机用户在不到一秒时间内即可完成一部高清电影的下载,大流量时代已经开始用户互联网中通讯联络图文形式已经不能满足用户需求,随着移动设备硬件性能的不断提升多媒体开始被广泛接受和应用,与此同时移动智能设备的普及率不断升高,移动设备与用户的生活娱乐联系也越来越紧密。互联网用户需要分享移动设备中产生的点滴,屏幕录制是一种很好的方式。现有常规解决方案录制中通过定时任务规律的截取设备画面生成图片储存到设备,录制结束后读取设备中的图片拼接成视频。后期编辑和分享时需要使用第三方应用。常规录屏工具采用图片合成方式,采样率低、占用资源高,致使效率低下。


技术实现要素:

3.有鉴于此,本公开提出了一种屏幕录制方法,包括:
4.获取录制指令;
5.依据所述录制指令实时获取屏幕视频流和音频流;
6.依据所述屏幕视频流建立视图数据模型;
7.依据所述视图数据模型对所述屏幕视频流进行处理得到视频数据;
8.将所述音频流转换为预设格式的音频数据;
9.将所述视频数据与所述音频数据进行封装得到视频文件。
10.在一种可能的实现方式中,依据所述录制指令获取屏幕视频流和音频流包括:
11.通过android底层的mediaprojection接口直接获取所述屏幕视频流;
12.通过所述android底层的audiorecorder接口获取所述音频流。
13.在一种可能的实现方式中,依据所述屏幕视频流建立视图数据模型包括:
14.将所述屏幕视频流通过opengl建立视图数据模型;
15.依据所述视图数据模型对所述屏幕视频流进行处理得到视频数据包括:
16.将所述屏幕视频流通过所述视图数据模型进行投影变换得到所述视频数据。
17.在一种可能的实现方式中,获取所述视频文件的人工标记;
18.根据所述人工标记生成视频片段。
19.在一种可能的实现方式中,将所述音频流转换为预设格式的音频数据:
20.获取所述音频流;
21.将所述音频流调整为预设的音调和混响得到原始音频数据;
22.将所述原始音频数据根据设定的音频参数编码为aac格式的音频数据。
23.在一种可能的实现方式中,在获取录制指令时:
24.通过悬浮球的方式触发所述录制指令。
25.在一种可能的实现方式中,将所述视频数据与所述音频数据进行封装得到视频文件包括:
26.将所述视频数据编码为h264格式;
27.将所述音频数据与h264格式的所述视频数据封装为mp4视频文件。
28.根据本公开的另一方面,提供了一种屏幕录制装置,其特征在于,包括指令获取模块、码流获取模块、视频数据转换模块、音频数据转换模块和视频文件合成模块;
29.所述指令获取模块,被配置为获取录制指令;
30.所述码流获取模块,被配置为依据所述录制指令获取屏幕视频流和音频流;
31.所述视频数据转换模块,被配置为依据所述屏幕视频流建立视图数据模型;
32.依据所述视图数据模型对所述屏幕视频流进行处理得到视频数据;
33.所述音频数据转换模块,被配置为将所述音频流转换为预设格式的音频数据;
34.所述视频文件合成模块,被配置为将所述视频数据与所述音频数据进行封装得到视频文件。
35.根据本公开的另一方面,提供了一种屏幕录制设备,其特征在于,包括:
36.处理器;
37.用于存储处理器可执行指令的存储器;
38.其中,所述处理器被配置为执行所述可执行指令时实现前面任一所述的方法。
39.根据本公开的另一方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现前面任一所述的方法。
40.通过获取录制指令,依据录制指令获取屏幕视频流和音频流,依据屏幕视频流建立视图数据模型,依据视图数据模型得到视频数据,将音频流转换为预设格式的音频数据,将视频数据与音频数据进行封装得到视频文件。从而加快了音频和视频的编码速度,使得屏幕录制的效率提高。
41.根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
42.包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
43.图1示出本公开实施例的屏幕录制方法的流程图;
44.图2示出本公开实施例的屏幕录制方法的悬浮球示意图;
45.图3示出本公开实施例的屏幕录制方法的视图数据模型;
46.图4示出本公开实施例的屏幕录制方法的投影变换原理图;
47.图5示出本公开实施例的屏幕录制装置的框图;
48.图6示出本公开实施例的屏幕录制设备的框图。
具体实施方式
49.以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同
的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
50.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
51.在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
52.另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
53.图1示出根据本公开一实施例的屏幕录制方法的流程图。如图1所示,该屏幕录制方法包括:
54.步骤s100,获取录制指令,步骤s200,依据录制指令获取屏幕视频流和音频流,步骤s300,依据屏幕视频流建立视图数据模型,依据所述视图数据模型对所述屏幕视频流进行处理得到视频数据,步骤s400,将音频流转换为预设格式的音频数据,步骤s500,将视频数据与音频数据进行封装得到视频文件。
55.通过获取录制指令,依据录制指令获取屏幕视频流和音频流,依据屏幕视频流建立视图数据模型,依据视图数据模型得到视频数据,将音频流转换为预设格式的音频数据,将视频数据与音频数据进行封装得到视频文件。从而加快了音频和视频的编码速度,使得屏幕录制的效率提高。
56.具体的,参见图1,执行步骤s100,获取录制指令。
57.在一种可能的实现方式中,在安卓手机的通知栏开关选项中,可以选择通知栏快捷方式进行录屏,当用户点击录屏的快捷方式时,即获取到了录屏指令。
58.进一步的,参见图2,在另一种可能的实现方式中,在安卓手机的桌面侧边上挂载有悬浮球,悬浮球为可以点击的方式,在用户点击悬浮球后,即获取到录屏指令。
59.需要说明的是,在安卓手机的通知栏中实现快捷方式可以使用本领域的常规技术手段,另外,在安卓手机的桌面侧边上挂载悬浮球同样可以使用本领域的常规技术手段,此处不再进行赘述。
60.进一步的,参见图1,执行步骤s200,依据录制指令获取屏幕视频流和音频流。
61.在一种可能的实现方式中,在获取到录制指令之后,依据录制指令获取屏幕视频流和音频流,依据录制指令获取屏幕视频流和音频流包括:通过 android底层的mediaprojection接口直接获取屏幕视频流,通过android底层的audiorecorder接口获取音频流。举例来说,在安卓手机的桌面侧边上挂载有悬浮球,悬浮球为可以点击的方式,在用户点击悬浮球后,即获取到录屏指令。在获取到录屏指令后,通过android系统的api直接获取视频流,即调用mediaprojectionmanager\mediaprojection的接口,实时获取屏幕内容实时视频流,同样的,通过android系统的api直接获取音频流,即调用audiorecorder 的接口,通过麦克风实时获取音频流。
62.进一步的,参见图1,执行步骤s300,依据屏幕视频流建立视图数据模型,依据所述
视图数据模型对所述屏幕视频流进行处理得到视频数据。
63.在一种可能的实现方式中,获取到屏幕实时视频流后,依据屏幕视频流建立视图数据模型包括:将屏幕视频流通过opengl建立视图数据模型。依据视图数据模型对屏幕视频流进行处理得到视频数据包括:将屏幕视频流通过视图数据模型进行投影变换得到视频数据。举例来说,在安卓手机的桌面侧边上挂载有悬浮球,悬浮球为可以点击的方式,在用户点击悬浮球后,即获取到录屏指令。在获取到录屏指令后,通过android系统的api直接获取视频流,即调用mediaprojectionmanager\mediaprojection的接口,参见图3,实时获取屏幕内容实时视频流,同样的,通过android系统的api直接获取音频流,即调用audiorecorder的接口,通过麦克风实时获取音频流。将屏幕实时的视频流通过opengl建立视图数据模型,参见图4,然后进行投影变换,即使用矩阵转换、模型变换、试图变换等步骤实现视频数据方向切换,即得到视频数据。
64.进一步的,参见图1,执行步骤s400,将音频流转换为预设格式的音频数据。
65.在一种可能的实现方式中,将音频流转换为预设格式的音频数据:获取原始音频流,将音频流调整为预设的音调和混响得到原始音频数据,将原始音频数据根据设定的音频参数编码为aac格式的音频数据。举例来说,在安卓手机的桌面侧边上挂载有悬浮球,悬浮球为可以点击的方式,在用户点击悬浮球后,即获取到录屏指令。在获取到录屏指令后,通过android系统的 api直接获取视频流,即调用mediaprojectionmanager\mediaprojection的接口,参见图3,实时获取屏幕内容实时视频流,同样的,通过android系统的api 直接获取音频流,即调用audiorecorder的接口,通过麦克风实时获取音频流,音频流为pcm数据格式,接着按照设定调整音频流的音调和混响,得到原始音频数据,将原始音频数据根据设定的音频参数编码为aac格式的音频数据,其中,音频参数包括采样率、位深和码率中的任意一种,示例性的,将原始音频数据的采样率降低后,将原始音频数据编码为aac格式的音频数据。
66.进一步的,参见图1,执行步骤s500,将视频数据与音频数据进行封装得到视频文件。
67.在一种可能的实现方式中,将视频数据与音频数据进行封装得到视频文件包括:将视频数据编码为h264格式,将音频数据与h264格式的视频数据封装为mp4视频文件。举例来说,在安卓手机的桌面侧边上挂载有悬浮球,悬浮球为可以点击的方式,在用户点击悬浮球后,即获取到录屏指令。在获取到录屏指令后,通过android系统的api直接获取视频流,即调用 mediaprojectionmanager\mediaprojection的接口,参见图3,实时获取屏幕内容实时视频流,同样的,通过android系统的api直接获取音频流,即调用 audiorecorder的接口,通过麦克风实时获取音频流,音频流为pcm数据格式,接着按照设定调整音频流的音调和混响,得到原始音频数据,将原始音频数据根据设定的音频参数编码为aac格式的音频数据,其中,音频参数包括采样率、位深和码率中的任意一种,示例性的,将原始音频数据的采样率降低后,将原始音频数据编码为aac格式的音频数据。将屏幕实时的视频流通过 opengl建立视图数据模型,参见图4,然后进行投影变换,即使用矩阵转换、模型变换、试图变换等步骤实现视频数据方向切换,即得到视频数据,将视频数据编码为h264格式,将h264格式的视频数据与aac格式的音频数据通过android系统的mediamuxer接口进行封装得到mp4视频文件。
68.进一步的,本公开的方法还包括获取视频文件的人工标记,根据人工标记生成视频片段。举例来说,录制中桌面悬浮有快速标记按钮,点击可记录标记时间点(人工标记),在录制完成时,可通过人工标记跳转到视频文件中的指定位置,供客户进行预览,还可快速调整每个人工标记标记的开始和结束位置,可根据人工标记快速生成多个视频片段。
69.另外的,在一种可能的实现方式中,还可以使用编辑功能可编辑来自设备存储和已有的视频,视频编辑中的图像处理编解码器使用硬件加速和 opengl可以进行视频截取、视频拼接、配音变音、添加音乐、视频压缩、视频转动图、视频旋转、视频添加贴纸功能,视频加贴纸支持显示时间段和显示位置设置。
70.需要说明的是,尽管以上述各个实施例作为示例介绍了本公开屏幕录制方法如上,但本领域技术人员能够理解,本公开应不限于此。事实上,用户完全可根据个人喜好和/或实际应用场景灵活设定屏幕录制方法,只要达到所需功能即可。
71.这样,通过获取录制指令,依据录制指令获取屏幕视频流和音频流,依据屏幕视频流建立视图数据模型,依据视图数据模型得到视频数据,将音频流转换为预设格式的音频数据,将视频数据与音频数据进行封装得到视频文件。从而加快了音频和视频的编码速度,使得屏幕录制的效率提高。
72.进一步的,根据本公开的另一方面,还提供了一种屏幕录制装置100。由于本公开实施例的屏幕录制装置100的工作原理与本公开实施例的屏幕录制方法的原理相同或相似,因此重复之处不再赘述。参见图5,本公开实施例的屏幕录制装置100包括:指令获取模块110、码流获取模块120、视频数据转换模块130、音频数据转换模块140和视频文件合成模块150;
73.指令获取模块110,被配置为获取录制指令;
74.码流获取模块120,被配置为依据录制指令获取屏幕视频流和音频流;
75.视频数据转换模块130,被配置为依据屏幕视频流建立视图数据模型,依据所述视图数据模型对所述屏幕视频流进行处理得到视频数据;
76.音频数据转换模块140,被配置为将音频流转换为预设格式的音频数据,
77.视频文件合成模块150,被配置为将视频数据与音频数据进行封装得到视频文件。
78.更进一步地,根据本公开的另一方面,还提供了一种屏幕录制设备200。参阅图6,本公开实施例屏幕录制设备200包括处理器210以及用于存储处理器210可执行指令的存储器220。其中,处理器210被配置为执行可执行指令时实现前面任一的屏幕录制方法。
79.此处,应当指出的是,处理器210的个数可以为一个或多个。同时,在本公开实施例的屏幕录制设备200中,还可以包括输入装置230和输出装置 240。其中,处理器210、存储器220、输入装置230和输出装置240之间可以通过总线连接,也可以通过其他方式连接,此处不进行具体限定。
80.存储器220作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序和各种模块,如:本公开实施例的屏幕录制方法所对应的程序或模块。处理器210通过运行存储在存储器220中的软件程序或模块,从而执行屏幕录制设备200的各种功能应用及数据处理。
81.输入装置230可用于接收输入的数字或信号。其中,信号可以为产生与设备/终端/服务器的用户设置以及功能控制有关的键信号。输出装置240可以包括显示屏等显示设备。
82.根据本公开的另一方面,还提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,计算机程序指令被处理器210执行时实现前面任一所述的屏幕录制方法。
83.以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1