视频的获取方法及装置与流程

文档序号:30955230发布日期:2022-07-30 09:35阅读:237来源:国知局
视频的获取方法及装置与流程

1.本技术涉及多媒体技术领域,尤其涉及一种视频的获取方法及装置。


背景技术:

2.拍摄视频是电子设备常见的功能。随着用户对拍照和摄像的需求的提高,目前电子设备获取视频的方法有待改进。


技术实现要素:

3.本技术提供了一种视频的获取方法及装置,目的在于改进电子设备的视频获取功能。
4.为了实现上述目的,本技术提供了以下技术方案:
5.本技术的第一方面提供一种视频的获取方法,应用在电子设备,所述方法包括以下步骤:显示相机应用的预览界面,所述预览界面中包括录制按钮,响应于用户对所述录制按钮输入的操作,使用摄像头采集视频流,在采集所述视频流的过程中,获取所述视频流中第一视频片段的第一标记,所述视频流包括一个或多个视频片段,在采集所述视频流的过程中,显示所述相机应用的录制界面,所述录制界面包括结束按钮,响应于用户对所述结束按钮输入的操作,获取所述视频流的第二标记;并且,显示所述相机应用的预览界面,将所述第一标记和所述第二标记写入所述视频流,得到视频文件。视频的标记作为ai视频的生成依据,为依据视频文件生成ai视频奠定基础,因此,用户可通过一次按下录制按钮,获得带有tag的视频以及可以基于带有tag的视频进一步得到ai视频,从而改进电子设备的视频获取功能。
6.在一些实现方式中,获取视频流中第一视频片段的第一标记,包括:从视频流中识别第一视频片段,得到第一视频片段的起止时间标记,基于修正参数修正起止时间标记,修正参数包括视频流的首帧时间戳。基于视频流的首帧时间戳修正视频片段的起止时间标记,使得起止时间标记从绝对时间格式转换为与视频流的首帧的时间戳之间的相对时间标记,为后续依据视频文件中时间标记生成ai视频提供便利。
7.在一些实现方式中,获取视频流中第一视频片段的第一标记,还包括:获取第一视频片段的场景类别标记以及转场类别标记的至少一项。标记的多样性有利于提高ai视频的多样性。
8.在一些实现方式中,获取视频流的第二标记,包括:从视频流中识别精彩时刻标记,基于修正参数修正精彩时刻标记,修正参数包括视频流的首帧时间戳。基于视频流的首帧时间戳修正精彩时刻标记,使得精彩时刻标记转换为与首帧时间戳的相对时间,为后续依据视频文件中的时间标记生成ai视频提供便利。
9.在一些实现方式中,获取视频流的第二标记,还包括:获取视频流的主题标记。主题标记为生成ai视频过程中,为整个ai视频添加音乐等特效的依据,有利于使得添加的特效与ai视频更为匹配,从而提升用户的体验。
10.在一些实现方式中,基于修正参数修正精彩时刻标记,包括:基于修正参数修正视频流的首帧的时间区间之外的精彩时刻标记。因为首帧时间戳为修正时间标记的基础,所以为了不采纳首帧的时间区间内的精彩时刻,目的在于得到更为准确的修正后的精彩时刻标记。
11.在一些实现方式中,修正参数还包括:从开始拍摄视频至当前时刻的暂停总时长,以进一步提高修正后的精彩时刻标记的准确性。其中当前时刻为将要对时间标记进行修正的时刻。
12.在一些实现方式中,所示录制界面还包括暂停按钮。第一方面提供的视频的获取方法还包括:响应于用户对所述暂停按钮输入的操作,记录暂停时刻并显示包括恢复按钮的预览界面,响应于用户对恢复按钮输入的操作,基于暂停时刻和恢复拍摄视频的时刻,统计暂停总时长。基于用户的暂停操作和恢复拍摄的操作,获取暂停总时长,便于获得准确的暂停总时长。
13.在一些实现方式中,获取视频流中第一视频片段的第一标记,包括:识别视频流中第一视频帧的场景类别为第一类别,识别视频流中第二视频帧的场景类别为第二类别,第二视频帧为第一视频帧之后的帧,将第二视频帧之前且与第一视频帧的场景类别相同的视频帧作为第一视频片段,获取第一视频片段的第一标记,第一视频片段的第一标记包括第一视频帧的场景类别标记。逐帧识别场景类别,并基于场景类别不同的帧划分视频片段,便于与视频流的采集和传输方式兼容,具有更高的可实施性。
14.在一些实现方式中,还包括:识别视频流中第三视频帧的场景类别为第三类别,第三视频帧为第二视频帧之后的帧,将第三视频帧之前且与第二视频帧的场景类别相同的视频帧作为第二视频片段,获取第二视频片段的第一标记,第二视频片段的第一标记包括第二视频帧的场景类别标记。
15.在一些实现方式中,第一视频片段的第一标记还包括:第一视频帧与第二视频帧之间的转场类别标记,以及,第一视频片段的起止时间标记的至少一项。转场类别有利于在不同场景类别的片段之间添加特效,视频片段的起止时间标记有利于为不同的视频片段添加不同的特效,以获得层次丰富的ai视频,从而获得更优的用户体验。
16.在一些实现方式中,电子设备包括相机应用程序和媒体录制器,将第一标记和第二标记写入视频流,得到视频文件,包括:相机应用程序将第一标记和第二标记向媒体录制器传输,媒体录制器将第一标记和第二标记写入视频流,得到视频文件。媒体录制器的功能之一是将视频流编码形成视频文件,所以,将标记传输至媒体录制器,由媒体录制器写入视频文件,能够与视频文件的形成机制相统一。
17.在一些实现方式中,电子设备包括相机应用程序和相机硬件抽象层hal。获取第一标记和第二标记的流程,包括:通过相机hal从视频流中识别得到第一标记和第二标记,通过相机应用程序基于修正参数修正第一标记和第二标记中的时间标记。由底层识别标记,由应用程序将修正标记,能够与底层和应用层的功能相统一。
18.本技术的第二方面提供了一种电子设备,包括:一个或多个处理器、存储器、显示屏和摄像头;存储器和显示屏、以及摄像头与一个或多个处理器耦合,存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当一个或多个处理器执行计算机指令时,电子设备执行如第一方面提供的视频的获取方法。
19.本技术的第三方面提供了一种计算机存储介质,用于存储计算机程序,计算机程序被执行时,具体用于实现第一方面提供的视频的获取方法。
20.本技术的第四方面提供了一种包含指令的计算机程序产品。当该计算机程序产品在计算机或处理器上运行时,使得计算机或处理器执行上述第一方面的视频的获取方法。
附图说明
21.图1为本技术提供的一录多得功能获得视频的示例图;
22.图2为本技术提供的电子设备的硬件结构图;
23.图3为本技术提供的电子设备的软件架构图;
24.图4为本技术公开的一种视频的获取方法的流程图;
25.图5为本技术公开的视频的获取方法中识别得到的标记的示例图;
26.图6为本技术公开的视频的获取方法中主题标记和场景标记的示例图;
27.图7为本技术公开的视频的获取方法中对齐时间标记的示例图;
28.图8为本技术公开的又一种视频的获取方法的流程图。
具体实施方式
29.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本技术的限制。如在本技术的说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“一种”、“所述”、“上述”、“该”和“这一”旨在也包括例如“一个或多个”这种表达形式,除非其上下文中明确地有相反指示。还应当理解,在本技术实施例中,“一个或多个”是指一个、两个或两个以上;“和/或”,描述关联对象的关联关系,表示可以存在三种关系;例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b的情况,其中a、b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。
30.在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本技术的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
31.本技术实施例涉及的多个,是指大于或等于两个。需要说明的是,在本技术实施例的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
32.在以下示例中,用户对图形用户界面(graphical user interface,gui)中的控件、图标等对象的操作方式包括但不限于触摸手机屏幕上特定的控件、按压特定的物理按键或按键组合、输入语音、隔空手势。
33.一录多得功能为电子设备改进后的视频获取功能,下面将结合图例对一录多得功能进行介绍。
34.图1为用户使用手机获得视频的gui的一种示例,图1中,用户进入如图1(1)所示的
相机应用程序(后续简称为相机或相机应用)的界面,用户点击图1(1)中的相机的设置控件后,手机1跳转至图1(2)所示的相机的设置界面,在图1(2)所示的界面中通过操作“一录多得”控件101,开启手机1的“一录多得”功能(默认开启)。图1(2)中其它设置项的功能可参见拍摄功能的设置规则或标准,这里不再赘述。并且可以理解的是,本技术的附图中未被标号或说明的控件、文字等对象的功能,均可以参见手机的相应界面的设置(和使用)规则或标准,本文中不再赘述。可以理解的是,除了通过相机的设置界面开启一录多得功能之外,也可以通过手机1的设置界面(图1中未画出)开启一录多得功能,这里不做限定。
35.一录多得,可以理解为用户使用相机拍摄视频时,通过一次按下拍摄控件(如图1(2)所示的102),得到多种类型的多媒体内容的功能。可以理解的是,一录多得也可有其他名称,比如,一键多得,一键多拍,一键出片,一键大片,ai一键大片等。
36.其中,多媒体内容包括原视频、ai视频或精彩照片。响应于按下“拍摄”控件录制的视频,即电子设备的相机的录像功能获得的视频,称为原视频或第一视频。
37.一录多得功能在原视频的采集过程中,可为原视频添加标签(tag),tag的一些示例包括:片段的场景类别tag、视频的主题tag、以及精彩时刻(magic moment,mm)tag。
38.mm是指视频(原视频)录制过程中的一些精彩画面瞬间(也可称为精彩照片)。例如,mm可以是最佳运动瞬间,最佳表情时刻或最佳打卡动作时刻。可以理解,本技术对术语mm不作限定,mm也可以称作美好时刻,神奇时刻,精彩瞬间,决定性瞬间,或最佳拍摄(best shot,bs)等。
39.mm标签(mm tag),即时间标签,mm标签用于指示mm在录制的视频文件中的位置。例如,在视频文件中包括一个或多个mm标签,mm标签可指示在该视频文件的第10秒、第1分20秒等时刻。
40.将在以下实施例中对tag进行进一步说明。
41.一录多得功能中,ai视频的生成策略为:依据tag从原视频中截取包括mm的片段,每个片段的时长可以在2.5秒至6秒之间(可以包括2.5秒或6秒),然后按照片段的时间顺序拼接所有片段,并添加特效,得到ai视频。在某些实现方式中,截取视频片段过程是围绕mm照片的前后截取,基于场景标签防止视频片段跨分镜。
42.ai视频还可以称为精彩视频、精选视频、精彩短视频、精选短视频,或精彩视频等。与第一视频相对的,ai视频还可被称为第二视频。在本技术的以下实施例中,特效包括滤镜、贴纸、主题、风格、音效、文字等可以被添加至图像的对象。可以理解的是,与原视频相对应的,ai视频还可以称为精彩视频、精选视频、精彩短视频、精选短视频,或精彩视频等。
43.多媒体内容中的mm照片,是指在在录制的视频(原视频)中mm标签对应的图像帧,也就是说,时间戳为mm标签的图像帧为mm照片。可以理解的是,在不同的场景下,mm照片可以为不同类型的画面。例如当录制足球比赛视频时,mm照片可以是射门或传球时,运动员脚与足球接触的瞬间的照片,mm照片也可以是足球飞进球门的瞬间的照片。当录制人物从地面起跳的视频时,精彩时刻照片可以是人物在空中最高点的瞬间的照片,也可以是人物在空中时动作最舒展的瞬间的照片。
44.一录多得功能下的一次拍摄得到的原视频、mm照片、以及生成的ai视频,具有相同的标识,以表示关联关系。标识可以存储在图库关联的数据库中。
45.可以理解的是,在某些实现方式中,在一录多得功能开启的情况下,不一定每一次
assistant,pda),可穿戴电子设备,智能手表等具有摄像头的电子设备。
57.如图2所示,以手机为例,电子设备100可以包括处理器110,内部存储器120,显示屏130,摄像头140,天线1,天线2,移动通信模块150,无线通信模块160以及音频模块170等。
58.可以理解的是,本实施例示意的结构并不构成对该电子设备的具体限定。在另一些实施例中,该电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
59.处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,ap),调制解调处理器,图形处理器(graphics processing unit,gpu),图像信号处理器(image signal processor,isp),控制器,视频编解码器,数字信号处理器(digital signal processor,dsp),基带处理器,和/或神经网络处理器(neural-network processing unit,npu)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
60.内部存储器120可以用于存储计算机可执行程序代码,可执行程序代码包括指令。处理器110通过运行存储在内部存储器110的指令,从而执行电子设备100的各种功能应用以及数据处理。内部存储器120可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,ufs)等。处理器110通过运行存储在内部存储器120的指令,和/或存储在设置于处理器中的存储器的指令,执行电子设备的各种功能应用以及数据处理。
61.电子设备通过gpu,显示屏130,以及应用处理器等实现显示功能。gpu为图像处理的微处理器,连接显示屏130和应用处理器。gpu用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个gpu,其执行程序指令以生成或改变显示信息。
62.显示屏130用于显示图像,视频等。显示屏130包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,lcd),有机发光二极管(organic light-emitting diode,oled),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode的,amoled),柔性发光二极管(flex light-emitting diode,fled),miniled,microled,micro-oled,量子点发光二极管(quantum dot light emitting diodes,qled)等。在一些实施例中,电子设备可以包括1个或n个显示屏130,n为大于1的正整数。
63.电子设备100可以通过isp,摄像头140,视频编解码器,gpu,显示屏194以及应用处理器等实现拍摄功能。
64.isp用于处理摄像头140反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给isp处理,转化为肉眼可见的图像。isp还可以对图像的噪点,亮度,肤色进行算法优化。isp还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,isp可以设置在摄像头140中。
65.摄像头140用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,ccd)或互补金属氧化物半导
体(complementary metal-oxide-semiconductor,cmos)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给isp转换成数字图像信号。isp将数字图像信号输出到dsp加工处理。dsp将数字图像信号转换成标准的rgb,yuv等格式的图像信号。在一些实施例中,电子设备100可以包括1个或n个摄像头140,n为大于1的正整数。
66.一些实施例中,摄像头140用于拍摄本技术实施例提及的视频。
67.数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
68.视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。这样,电子设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,mpeg)1,mpeg2,mpeg3,mpeg4等。
69.内部存储器120可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器120的指令,从而执行电子设备100的各种功能应用以及数据处理。内部存储器120可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,ufs)等。处理器110通过运行存储在内部存储器120的指令,和/或存储在设置于处理器中的存储器的指令,执行电子设备100的各种功能应用以及数据处理。
70.电子设备100可以通过音频模块170,扬声器170a,麦克风170b以及应用处理器等实现音频功能。例如音乐播放,录音等。
71.音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
72.扬声器170a,也称“喇叭”,用于将音频电信号转换为声音信号。电子设备100可以通过扬声器170a收听音乐,或收听免提通话。
73.一些实施例中,扬声器170a可播放本技术实施例提及的带有特效的视频信息。
74.麦克风170b,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170b发声,将声音信号输入到麦克风170b。
75.一些实施例中,麦克风170b可在相机拍摄带有特效的视频信息的过程中,采集电子设备所处环境的声音。
76.电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
77.天线1和天线2用于发射和接收电磁波信号。
78.移动通信模块150可以提供应用在电子设备100上的包括2g/3g/4g/5g等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器
(low noise amplifier,lna)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。
79.无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wireless local area networks,wlan)(如无线保真(wireless fidelity,wi-fi)网络),蓝牙(bluetooth,bt),全球导航卫星系统(global navigation satellite system,gnss),调频(frequency modulation,fm),近距离无线通信技术(near field communication,nfc),红外技术(infrared,ir)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
80.另外,在上述部件之上,运行有操作系统。例如ios操作系统,android操作系统,windows操作系统等。在操作系统上可以安装运行应用程序。
81.图3是本技术实施例的电子设备的软件结构框图。
82.分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将android系统分为五层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(android runtime)和系统库,硬件抽象层(hal)以及内核层。
83.应用程序层可以包括一系列应用程序包。如图3所示,应用程序包可以包括相机,图库,视频编辑,媒体信息库等应用程序。
84.在一些实施例中,相机用于拍摄前述实施例所述的视频,以及实现前述一录多得功能。
85.应用程序框架层为应用程序层的应用程序提供应用编程接口(application programming interface,api)和编程框架。应用程序框架层包括一些预先定义的函数。如图3所示,应用程序框架层中与本技术实施例相关的一些模块可以包括相机后处理(post camera),相机框架(camerafwk),媒体录制器(media recorder),和媒体提供器(media provider)。
86.android runtime包括核心库和虚拟机。android runtime负责安卓系统的调度和管理。在本技术一些实施例中,应用冷启动会在android runtime中运行,android runtime由此获取到应用的优化文件状态参数,进而android runtime可以通过优化文件状态参数判断优化文件是否因系统升级而导致过时,并将判断结果返回给应用管控模块。
87.系统库可以包括多个功能模块。例如:表面管理器(surface manager),三维图形处理库(例如:opengl es),二维图形引擎(例如:sgl)以及录像服务等。
88.表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2d和3d图层的融合。三维图形处理库用于实现三维图形绘图,图像渲染、合成和图层处理等。二维图形引擎是2d绘图的绘图引擎。录像服务接收录像功能获取的视频流,并将视频流存储至电子设备的存储器中。
89.hal中包括与本技术实施例相关的相机hal以及算法模块。
90.内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动等。相机hal通过调用摄像头驱动,实现对摄像头的控制。
91.需要说明的是,本技术实施例虽然以android系统为例进行说明,但是其基本原理同样适用于基于ios、windows等操作系统的电子设备。
92.基于图3所示的软件框架,手机的一录多得功能的实现流程为:
93.相机在预览或录制视频的过程中,控制模块可向相机hal下发指令,以控制相机hal从采集的视频中识别各种tag,其中,片段的tag(将在以下实施例中说明)、主题tag以及精彩时刻tag(各种tag将在以下实施例中说明)被相机hal上报至相机的tag管理模块,tag管理模块对接收的tag进行处理后,传输至媒体录制器。
94.媒体录制器通过录像服务从相机hal接收录制的视频流,并将片段的tag、主题tag以及精彩时刻tag编码后写入视频流,形成视频文件(即前述原视频),并将视频文件存储至存储器中。
95.相机hal依据算法识别模块识别出的精彩时刻tag,从视频流中抓拍精彩时刻照片,抓拍得到的精彩时刻照片被存储至抓拍队列,编码模块对抓拍队列中的精彩时刻照片进行编码后,经相机后处理模块传输至相机的保存模块,保存模块将精彩时刻照片保存至电子设备的文件系统。
96.精彩时刻照片和原视频均可从图库进行查看,用户在图库中点击原视频的缩略图,或者结合图1(5)所示,用户点击控件105后,图库从媒体信息库中获得原视频的信息,并依据原视频的信息调用并播放原视频,并结合图1(6)所示,在用户点击控件109之后,媒体编辑器基于原视频中的tag生成ai视频,并且播放ai视频。
97.本技术的以下实施例中,将对将tag写入视频流,从而得到带有tag的视频文件进行详细说明。
98.图4为本技术实施例提供的一种视频的获取方法的流程,包括以下步骤:
99.s01、相机的控制模块响应于用户选择录像模式,通过相机框架,向相机hal传输打开相机的消息。
100.结合图1(1)所示,用户可以在相机的界面中选择录像模式。
101.s02、相机hal打开相机,并通过相机框架,向控制模块传输打开相机的响应消息。
102.可以理解的是,相机hal通过相机驱动控制一个或多个摄像头打开。打开相机的响应消息用于通知相机的控制模块相机已打开。
103.s03、控制模块响应于相机已打开,通过相机框架,向相机hal传输创建会话的消息。
104.创建会话的消息的作用为与相机hal之间建立会话,以便于交互数据。
105.s04、相机hal通过相机框架,向控制模块传输创建会话的响应消息。
106.创建会话的响应消息的作用为告知控制模块会话已创建。
107.s05、控制模块通过相机框架,向相机hal传输启动预览的消息。
108.s06、相机hal启动相机的预览功能。
109.结合图1(3)所示,相机hal启动相机的预览功能后,相机的界面的视窗103中可以显示图像。在拍摄录像的过程中,预览功能使得相机界面的视窗中显示采集的视频流。
110.结合图1(3)所示,假设用户点击图1(3)中的控件104以开始拍摄,触发以下步骤:
111.s07、控制模块响应于一录多得功能开启,通过相机框架,向相机hal传输算法使能消息。
112.可以理解的是,除了一录多得功能开启之外,向相机hal传输算法使能消息的条件还可以包括:后置摄像头打开。因为后置摄像头通常具有更优的性能(如高分辨率等),所以能够获得质量更优的视频,结合一录多得功能,可以为用户提供质量更优的多媒体内容。
113.一录多得功能的开启方式可以参见图1(2)所示,这里不再赘述。
114.s08、相机hal从算法模块加载算法。
115.可以理解的是,算法模块中的算法可以被预先配置。算法为识别相机采集的视频中的片段的场景类别、片段的转场类别、片段的起止时间、视频的主题以及精彩时刻的算法,具体算法不再赘述。
116.结合图3所示,相机hal加载的算法可以存储在算法识别模块,由算法识别模块运行算法,为了简化描述,下面将算法识别模块也统一称为相机hal。
117.s09、控制模块响应于开始录像,通过相机框架向相机hal传输启动视频分析的通知消息。
118.可以理解的是,因为前述步骤中相机的控制模块已经通知相机hal加载算法,所以,本步骤中,传输的还可以为录像通知,而非启动视频分析的通知消息,相机hal因为已经加载算法,所以响应于录像通知,同样可以实现基于算法对视频进行分析得到tag的目的。
119.s10、相机hal响应于启动视频分析的通知消息,对摄像头采集的视频流进行分析,得到首帧的时间戳(简称首帧时间戳)。
120.可以理解的是,摄像头开始采集视频后,视频流会被传输至相机hal,该步骤所述的分析可以理解为,获取视频流中的首帧的时间戳。
121.s11、相机hal通过相机框架向tag管理模块传输首帧时间戳。
122.首帧时间戳的作用为将tag中的绝对时间格式(例如,xx小时xx点xx分)的时间tag(如mm tag)转换为与视频流的首帧时间戳之间的相对时间(可称为相对时间tag,例如第x秒),以便于后续依据相对时间tag从原视频中截取片段以生成ai视频。
123.基于图3可知,相机并不存储视频流,而是提供视频流的预览功能,可以理解的是,相机播放预览的视频流的时间,晚于视频流的采集时间,所以通常相机预览视频流的每帧的时间,与视频流的每帧的时间戳并没有对齐。即hal的时间戳与应用层的时间戳没有对齐。
124.因为hal的时间戳与应用层的时间戳没有对齐,而后续需要用到视频流的首帧时间戳,所以,本实施例中,需要将视频流的首帧时间戳向相机的tag管理模块传输,从而为后续时间tag的转换做准备。
125.在某些实现方式中,首帧时间戳为视频流的首帧的采集时刻。
126.在某些实现方式中,首帧时间戳以元数据metadata的格式传输,可以理解的是,本实施例中通过元数据传输首帧时间戳仅为示例,也可以通过其它消息或数据传输首帧时间戳。
127.s12、tag管理模块记录首帧时间戳。
128.可以理解的是,相机hal在执行s10后,执行s13,因此s12与s13的执行顺序不做限定。
129.s13、相机hal使用算法进行视频分析,得到片段的场景类别tag、片段的转场类别tag以及片段的起止时间tag。
130.片段可以理解为从摄像头采集的视频流中识别得到的各个片段。
131.片段的场景类别可以理解为通过算法识别和分析确定的片段的内容所属的类别。场景类别tag可以理解为表示场景类别的标识。场景类别的一些示例如图6中的“场景类别”一列所示,从图6中可以看出,每个场景类别对应一个用于表示该类别的tag(即标识)。例如,场景类别“猫”对应的tag为“cat”。
132.转场类别可以理解为场景变化的类型,包括但不限于:拍摄对象从a变为b的主角变化,拍摄环境如亮度、颜色及快速运镜等变化,以及图像内容构成等语义层面的场景变化。可以理解的是,转场类别也可以使用字符(如相应的英文)作为对应的tag,这里不再赘述。
133.片段的起止时间tag(可与精彩时刻tag统称为时间tag)为片段的开始时间和结束时间。
134.本实施例中,片段的场景tag和转场类别tag为字符,但起止时间tag则为时间戳。但可以理解的是,字符和时间戳均为示例,tag的具体形式并不限于此。
135.以图5为例,图5中的视频流被划分为三个片段,每个片段均被识别出场景类别tag、转场类别tag以及起止时间tag。图5中以三个片段的场景类别tag分别为图6中的“dog”、“cat”、“child”为例。
136.可以理解的是,得到片段的场景类别tag、片段的转场类别tag以及片段的起止时间tag的具体方式可以为:
137.相机hal使用算法,按照摄像头采集的视频流中的每一帧的先后顺序,分别识别每一帧的场景类别,在识别到与前一帧的场景类别不同的帧(记为第一目标帧)后,记录第一目标帧之前属于同一场景类别的帧为一个片段(记为片段1),记录片段1所属的场景类别的tag,并记录片段1的起止时间,以及识别并记录第一目标帧与前一帧之前的转场类别tag。
138.也就是说,识别视频流中的第一视频帧的场景类别为第一类别,识别视频流中第一视频帧之后的第二视频帧的场景类别为第二类别,将第二视频帧之前且与第一视频帧的场景类别相同的视频帧作为第一视频片段。进而获取第一视频片段的第一标记(即l2标记)。
139.第二视频片段的标记的获取过程类似:识别视频流中第二视频帧之后的第三视频帧的场景类别为第三类别,将第三视频帧之前且与第二视频帧的场景类别相同的视频帧作为第二视频片段,进而获取所述第二视频片段的第一标记。
140.但上述具体方式并不作为限定。
141.在本实施例中,如图5所示,除了以上片段的各个tag之外,为视频流添加的tag还可以包括主题tag和精彩时刻tag(图5中以精彩时刻1、2、3表示)。为了便于描述,将片段的各个tag(片段的场景类别tag、片段的转场类别tag以及片段的起止时间tag)简称为l2标记,将主题tag和精彩时刻tag简称为l0标记。
142.本步骤涉及l2标记,因此l0标记将在以下步骤(s25)中详细说明。
143.s14、相机hal通过相机框架向tag管理模块传输片段的场景类别tag、片段的转场类别tag以及片段的起止时间tag(l2标记)。
144.在某些实现方式中,l2标记以元数据metadata的格式传输。
145.可以理解的是,s12与s13-s14的执行顺序不做限定。
146.s15、tag管理模块利用首帧时间戳,解析并缓存l2标记。
147.解析l2标记可以理解为:从封装的数据(如元数据中)解析得到片段的场景类别tag、转场类别tag以及片段的起止时间tag。进而,使用首帧时间戳将片段的起止时间tag转换为基于首帧时间戳的相对时间。
148.假设首帧时间戳记为basetime,l2标记中的任意一个时间为t,则转换后的时间为:t`=t-basetime(1)。
149.可以理解的是,l2标记中每个时间(包括片段的开始时间和结束时间)tag均进行如上转换,得到与首帧时间戳之间的相对时间。
150.结合图1(4)所示,假设用户在拍摄视频的过程中按下暂停控件108,触发执行以下步骤:
151.s16、控制模块响应于暂停录像,通过相机框架向相机hal传输暂停视频分析的通知消息。
152.s17、相机hal响应于暂停视频分析的通知消息,暂停对视频的分析。
153.s16-s17的目的在于避免相机hal无意义的算法运算,从而节省资源和功耗。
154.s18、tag管理模块响应于暂停录像,记录暂停时刻。
155.记录暂停时刻的目的在于,为后续对时间tag的转换提供依据,以获得更为准确的相对时间tag。
156.s18与s16-s17的执行顺序不做限定。
157.结合图1(4)所示,用户在暂停录像的状态下再次点击控件108后,录像被恢复,触发以下步骤。
158.s19、控制模块响应于恢复录像,通过相机框架向相机hal传输视频分析的通知消息。
159.s20、相机hal使用算法进行视频分析,得到l2标记。
160.s21、tag管理模块响应于恢复录像,基于暂停时刻和恢复录像的时刻获得暂停总时长。
161.可以理解的是,已知暂停时刻和恢复录像的时刻,恢复录像的时刻与暂停时刻的间隔时长,为本次暂停的时长,如果到本步骤为止,只有本次暂停一次暂停,则暂停总时长为本次暂停时长。如果到本步骤为止,还有其它暂停,则暂停总时长为本次暂停时长与其它暂停的时长之和。
162.暂停总时长的作用为提高时间tag的转换精度,将在以下流程中详细说明。
163.可以理解的是,s21与s19-s20的执行顺序不做限定。
164.s22、相机hal通过相机框架向tag管理模块传输l2标记。
165.s23、tag管理模块利用首帧时间戳和暂停总时长,解析并缓存l2标记。
166.可以理解的是,解析l2标记的含义可参见s15。
167.本步骤与s15中转换时间tag的区别在于:在s15之前录像并没有被暂停,而在本步骤之前录像被暂停过,所以时间tag的转换除了要依据首帧时间戳之外,还要考虑暂停总时长,因此,时间tag的转换公式为:
168.t`=t-basetime-pausetime(2),pausetime为暂停总时长。
169.结合图1(4)所示,用户点击停止控件104后,触发以下步骤。
170.s24、控制模块响应于停止录像,向相机hal传输停止视频分析的通知消息。
171.s25、相机hal响应于停止视频分析的通知消息,使用算法进行视频分析,得到视频的主题tag和精彩时刻tag。
172.如图5所示,主题tag可以理解为拍摄的视频流作为一个整体所属的类别(称为主题类别),主题类别以及对应的tag的一些示例可以参见图6中所示的“主题类别”之下的各项以及对应的tag。
173.可以理解的是,主题类别与片段的场景类别之间可以存在从属关系,如图6所示的片段的场景类别依次为“猫”、“狗”和“儿童”,这三个场景类别均属于主题类别“童趣”。
174.可以依据视频流被划分的片段的场景类别,确定视频流的主题类别。结合图5和图6为例,图5中所示的片段的场景类别tag分别表示片段的场景类别依次为“猫”、“狗”和“儿童”,在图6中,这三个场景类别属于主题类别“童趣”,所以视频流的主题类别为“童趣”,对应的tag为“childlike”。
175.可以理解的是,图5以三个片段的场景类别均属于主题类别“童趣”为例,在另一些实现方式中,有可能片段的场景类别不属于同一个主题类别,在此情况下,可以将多数片段的场景类别所属的主题类别,作为视频流的主题类别,或者,依据片段的场景类别的得分或概率等参数,进行判决得到视频流的主题类别。
176.精彩时刻tag的定义如前所述,如图5所示,在某些实现方式中,精彩时刻tag按照片段的维度识别,如每个片段均识别一个精彩时刻tag。
177.在另一些实现方式中,精彩时刻可以有数量的限制,例如识别出5个精彩时刻,在此情况下,可以每个片段均识别精彩时刻,在拍摄过程中或停止拍摄后,从识别出的精彩时刻中判决出前n(n为大于或等于1的整数)个精彩时刻,作为最终获得的精彩时刻tag。
178.s26、相机hal通过相机框架,向tag管理模块传输主题tag和精彩时刻tag(均称为l0标记)。
179.s27、tag管理模块利用首帧时间和暂停总时长,解析并缓存主题tag和精彩时刻tag。
180.解析主题tag和精彩时刻tag可以理解为:从封装的数据(如元数据)中解析得到主题tag和精彩时刻tag,并将精彩时刻tag转换为基于视频流的首帧时间戳的相对时间tag。
181.以图7为例,假设在时间轴上按照时间先后顺序,在视频的首帧(图7中未画出)之后,分别为片段1、暂停时间段p1、片段2、暂停时间段p2以及片段3。基于此,tag管理模块接收到的tag在时间轴上从先到后分别为:首帧时间戳、片段1的精彩时刻t1、片段2的精彩时刻t2、以及片段3的精彩时刻t3。
182.基于图7所示的首帧时间戳、以及各个片段与暂停时间段之间的先后关系,各个精彩时刻tag转换方式分别为:
183.t1`=t1-basetime(3),
184.t2`=t2-basetime-p1(4),
185.t3`=t3-basetime-p1-p2(5)。
186.可以理解的是,因为首帧时间戳为时间tag转换的依据,所以,为了确保转换的精度,在某些实现方式中,相机hal识别并向tag管理模块上报首帧的精彩时刻tag,但tag管理模块忽略首帧的精彩时刻tag。l2标记均可参见以上处理方式。
187.s28、tag管理模块向媒体录制器传输主题tag、片段的场景类别tag、片段的转场类别tag、片段的起止时间tag以及精彩时刻tag。
188.即传输l0标记和l1标记。
189.s29、媒体录制器将主题tag、片段场景tag以及精彩时刻tag写入视频文件。
190.在某些实现方式中,媒体录制器在对视频流进行编码形成视频文件的过程中,对主题tag、片段场景tag以及精彩时刻tag进行编码后,写入视频文件的头部,得到本次录制的视频文件(即原视频)。
191.在得到本次录制的视频文件(即原视频)之后,结合图3以及前述ai视频的生成策略可知,在某些实现方式中,用户在浏览原视频的过程中,结合图1(6)所示,在用户点击控件109之后,相册可调用媒体编辑器获取原视频中的tag,依据精彩时刻tag截取包括精彩时刻的片段,并按照截取片段的时间先后顺序,拼接截取片段,依据截取片段所属的片段(截取片段所属的片段如图5所示的片段1-片段3)的场景tag,以及原视频的主题类别tag,为拼接的截取片段添加特效,生成并且播放ai视频。
192.从图4所示的流程可以看出,底层向上层传输从采集的视频中识别的片段场景tag、视频的主题tag以及精彩时刻tag,上层将片段场景tag、视频的主题tag以及精彩时刻tag写入该视频的文件中,从而为依据该视频生成精彩视频奠定基础。
193.基于图4所示的流程,图8为相机获取视频的流程,即相机获取添加tag的视频的流程,包括以下步骤:
194.s801、响应于用户选择录像模式,相机功能初始化。
195.s801的具体步骤可以参见s01-s06。
196.s802、判断一录多得功能是否开启,如果是,执行s803,如果否,执行s804。
197.s803、触发底层使能算法。
198.s804、触发底层去使能算法。
199.触发底层使能算法的具体方式可以参见s07-s08。触发底层去使能算法的具体方式可以参见s16-s17,但可以理解的是,这里去使能的触发条件不限定为暂停录像,而是一录多得功能关闭。
200.可以理解的是,结合图1(2)所述,用户可以通过操作控件101开启或关闭一录多得功能。
201.在执行s803之后,相机开始监测录制状态并依据录制状态执行不同的步骤,以及对接收的数据进行解析处理,具体参见以下步骤:
202.s805、判断录制状态的类型,如果类型为开始录制,执行s806,如果类型为暂停录制,执行s807,如果从暂停录制状态变为恢复录制状态(简称恢复录制),执行s5808,如果状态为停止录制,执行s809。
203.结合图1以及图4,可以理解的是,录制状态可以通过用户对控件的操作确定。
204.s806、初始化标记缓存。
205.标记缓存是指用于存储底层传输的片段场景tag、视频的主题tag以及精彩时刻tag的缓存,初始化为后续的缓存操作奠定基础。
206.结合图4所示,s806可在s09之后以及s15之前执行。
207.s807、记录暂停时刻。
208.s808、累加暂停总时长。
209.s807-s808可参见s16以及s21。
210.s809、判断是否获取到l0标记,如果是,执行s815,如果否,执行s810。
211.s810、接收底层上报的元数据。
212.s811、判断是否为视频的首帧的元数据,如果是,执行s812,如果否,执行s813和s814。
213.判断是否为首帧的元数据的具体方式,可参见数据传输协议,这里不再赘述。
214.s812、从元数据获取并记录首帧时间戳。
215.s813、判断元数据中是否获取到l0标记,如果是,执行s815,如果否,可继续执行s810。
216.s814、判断元数据中是否获取到l2标记,如果是,执行s816,如果否,执行s810。
217.l0标记和l2标记可参见图4所示的实施例。
218.s815、使用首帧时间戳和暂停总时长解析精彩时刻tag,并缓存解析后的精彩时刻tag和主题tag。
219.s815可参见s27。
220.s816、使用首帧时间戳和暂停总时长解析l2标记,并缓存解析后的l2标记。
221.解析l2标记可以理解为将l2中的片段的起止时间tag转换,具体转换方式可参见s23,缓存解析后的l2标记可理解为缓存l2中的片段的场景类别、转场类别以及转换后的起止时间tag。
222.s817、向媒体录制器传输缓存的l0标记和l2标记。
223.从图8所示的流程可以看出,相机接收到底层传输的tag后,经过解析传输至媒体录制器,从而为生成具有tag的视频奠定基础。并且,相机对时间tag进行解析,屏蔽了与底层之间时间戳不一致而导致的时间tag偏移,从而能够为得到用户体验更优的ai视频的奠定良好的基础。
224.本技术另一实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机或处理器上运行时,使得计算机或处理器执行上述任一个方法中的一个或多个步骤。
225.本技术另一实施例还提供了一种包含指令的计算机程序产品。当该计算机程序产品在计算机或处理器上运行时,使得计算机或处理器执行上述任一个方法中的一个或多个步骤。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1