CN113422903B - 拍摄模式切换方法、设备、存储介质 - Google Patents
拍摄模式切换方法、设备、存储介质 Download PDFInfo
- Publication number
- CN113422903B CN113422903B CN202110676716.3A CN202110676716A CN113422903B CN 113422903 B CN113422903 B CN 113422903B CN 202110676716 A CN202110676716 A CN 202110676716A CN 113422903 B CN113422903 B CN 113422903B
- Authority
- CN
- China
- Prior art keywords
- shooting mode
- video
- shooting
- mode
- picture
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/667—Camera operation mode switching, e.g. between still and video, sport and normal or high- and low-resolution modes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/63—Control of cameras or camera modules by using electronic viewfinders
- H04N23/631—Graphical user interfaces [GUI] specially adapted for controlling image capture or setting capture parameters
- H04N23/632—Graphical user interfaces [GUI] specially adapted for controlling image capture or setting capture parameters for displaying or modifying preview images prior to image capturing, e.g. variety of image resolutions or capturing parameters
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- Studio Devices (AREA)
Abstract
本申请实施例提供了一种拍摄模式切换方法、设备、存储介质和程序产品,所述方法包括按照第一拍摄模式进行视频拍摄,在预览界面内,显示所述第一拍摄模式拍摄的视频画面;在拍摄过程中,接收拍摄模式切换指令,所述拍摄模式切换指令用于指示将所述第一拍摄模式切换为第二拍摄模式,其中,所述第一拍摄模式与所述第二拍摄模式基于不同的摄像头进行拍摄;在所述预览界面内,将所述第一拍摄模式拍摄的视频画面切换为所述第二拍摄模式拍摄的视频画面。采用本申请实施例提供的技术方案,可以在视频拍摄过程中触发拍摄模式切换指令,将第一拍摄模式切换为第二拍摄模式。
Description
技术领域
本申请涉及计算机技术领域,具体地涉及一种拍摄模式切换方法、设备、存储介质和程序产品。
背景技术
为了提高用户体验,手机、平板电脑等电子设备通常配置多个摄像头,例如在电子设备上分别配置一个前置摄像头和一个后置摄像头。用户可以根据自己的需求选择相应的拍摄模式,例如,前摄模式、后摄模式、前后双摄模式等。
在视频拍摄的过程中,用户可能需要对拍摄模式进行切换,例如将前摄模式切换为后摄模式。但是,现有技术中用户无法在拍摄过程中直接进行拍摄模式切换。例如,当用户需要将前摄模式切换为后摄模式时,需要先停止前摄模式的视频拍摄,然后再将拍摄模式设置为后摄模式,通过后摄模式进行视频拍摄,用户体验较差。
发明内容
有鉴于此,本申请提供一种拍摄模式切换方法、设备、存储介质和程序产品,以利于解决现有技术在视频拍摄过程中,拍摄模式不能自由切换的问题。
第一方面,本申请实施例提供了一种拍摄模式切换方法,包括:
按照第一拍摄模式进行视频拍摄,在预览界面内,显示所述第一拍摄模式拍摄的视频画面;
在拍摄过程中,接收拍摄模式切换指令,所述拍摄模式切换指令用于指示将所述第一拍摄模式切换为第二拍摄模式,其中,所述第一拍摄模式与所述第二拍摄模式基于不同的摄像头进行拍摄;
在所述预览界面内,将所述第一拍摄模式拍摄的视频画面切换为所述第二拍摄模式拍摄的视频画面。
优选地,所述在所述预览界面内,将所述第一拍摄模式拍摄的视频画面切换为所述第二拍摄模式拍摄的视频画面,包括:
在所述预览界面内,将所述第一拍摄模式拍摄的视频画面切换为转场动效画面;
在所述预览界面内,将所述转场动效画面切换为所述第二拍摄模式拍摄的视频画面。
优选地,所述在所述预览界面内,将所述转场动效画面切换为所述第二拍摄模式拍摄的视频画面,包括:
在完成所有转场动效画面的显示后,将所述转场动效画面切换为所述第二拍摄模式拍摄的视频画面。
优选地,所述在所述预览界面内,将所述转场动效画面切换为所述第二拍摄模式拍摄的视频画面,包括:
在获取到所述第二拍摄模式拍摄的视频画面后,将所述转场动效画面切换为所述第二拍摄模式拍摄的视频画面。
优选地,所述方法还包括:
接收暂停拍摄操作,在所述预览界面内显示所述暂停拍摄操作对应的所述第一拍摄模式拍摄的视频画面、所述转场动效画面,或所述第二拍摄模式拍摄的视频画面。
优选地,所述在预览界面内,显示所述第一拍摄模式拍摄的视频画面,包括:获取所述第一拍摄模式对应的预览视频画面;在所述预览界面内,显示所述第一拍摄模式对应的预览视频画面;
和/或,
所述在所述预览界面内,将所述第一拍摄模式拍摄的视频画面切换为所述第二拍摄模式拍摄的视频画面,包括:获取所述第二拍摄模式对应的预览视频画面;在所述预览界面内,显示所述第二拍摄模式对应的预览视频画面。
优选地,所述第一拍摄模式拍摄两路或两路以上视频画面,所述获取所述第一拍摄模式对应的预览视频画面,包括:获取所述第一拍摄模式拍摄的两路或两路以上视频画面;将所述两路或两路以上视频画面进行渲染合并处理,获得所述第一拍摄模式对应的预览视频画面;
和/或,
所述第二拍摄模式拍摄两路或两路以上视频画面,所述获取所述第二拍摄模式对应的预览视频画面,包括:获取所述第二拍摄模式拍摄的两路或两路以上视频画面;将所述两路或两路以上视频画面进行渲染合并处理,获得所述第二拍摄模式对应的预览视频画面。
优选地,所述将所述两路或两路以上视频画面进行渲染合并处理,包括:
根据所述两路或两路以上视频画面的纹理信息、位置信息和合并策略,将所述两路或两路以上视频画面进行渲染合并处理。
优选地,所述合并策略包括:
对所述两路或两路以上视频画面进行拼接;
和/或,
将所述两路或两路以上预览视频画面中的至少一路视频画面填充至所述两路或两路以上视频画面中的其它预览视频画面中。
优选地,所述转场动效画面的显示时长与所述拍摄模式切换过程中的断流时长相匹配,所述断流时长为所述第一拍摄模式上报的最后一帧视频画面与所述第二拍摄模式上报的第一帧视频画面的时间差。
优选地,所述方法还包括:
在拍摄过程中,对所述第一拍摄模式拍摄的视频画面进行编码;
对所述第二拍摄模式拍摄的视频画面进行编码;
接收停止拍摄指令,生成视频文件,所述视频文件包括所述第一拍摄模式拍摄的视频画面、所述转场动效画面和所述第二拍摄模式拍摄的视频画面;
存储所述视频文件。
优选地,所述方法还包括:对所述转场动效画面进行编码。
优选地,所述对所述转场动效画面进行编码,包括:
在完成所述第一拍摄模式拍摄的视频画面的编码后,对所述转场动效画面进行编码。
优选地,所述对所述第二拍摄模式拍摄的视频画面进行编码,包括:
在完成所有转场动效画面的编码后,对所述第二拍摄模式拍摄的视频画面进行编码。
优选地,所述方法还包括:
接收暂停拍摄操作,暂停对所述暂停拍摄操作对应的所述第一拍摄模式拍摄的视频画面、所述转场动效画面,或所述第二拍摄模式拍摄的视频画面的编码。
优选地,所述方法还包括:
接收开始拍摄操作,开始对所述暂停拍摄操作对应的所述第一拍摄模式拍摄的视频画面、所述转场动效画面,或所述第二拍摄模式拍摄的视频画面的编码。
优选地,所述对所述第一拍摄模式拍摄的视频画面进行编码,包括:获取所述第一拍摄模式对应的编码视频画面;对所述编码视频画面进行编码;
和/或,
所述对所述第二拍摄模式拍摄的视频画面进行编码,包括:获取所述第二拍摄模式对应的编码视频画面;对所述编码视频画面进行编码。
优选地,所述获取所述第一拍摄模式对应的编码视频画面,包括:对所述第一拍摄模式对应的预览视频画面进行复制,获得所述第一拍摄模式对应的编码视频画面;
和/或,
所述获取第二拍摄模式对应的编码视频画面,包括:对所述第二拍摄模式对应的预览视频画面进行复制,获得所述第二拍摄模式对应的编码视频画面。
优选地,所述第一拍摄模式拍摄两路或两路以上视频画面;和/或,所述第二拍摄模式拍摄两路或两路以上视频画面。
优选地,所述转场动效画面的编码时长与所述拍摄模式切换过程中的断流时长相匹配,所述断流时长为所述第一拍摄模式上报的最后一帧视频画面与所述第二拍摄模式上报的第一帧视频画面的时间差。
第二方面,本申请实施例提供了一种电子设备,包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被所述处理器执行时,触发所述电子设备执行第一方面任一项所述的步骤。
第三方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行第一方面任意一项所述的方法。
第四方面,本申请实施例提供了一种计算机程序产品,所述计算机程序产品包含可执行指令,当所述可执行指令在计算机上执行时,使得计算机执行第一方面任意一项所述的方法。
采用本申请实施例提供的技术方案,可以在视频拍摄过程中触发拍摄模式切换指令,将第一拍摄模式切换为第二拍摄模式。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本申请实施例提供的一种电子设备示意图;
图2为本申请实施例提供的一种电子设备的软件结构框图;
图3A为本申请实施例提供的一种前后双摄模式拍摄场景示意图;
图3B为本申请实施例提供的一种前后画中画模式拍摄场景示意图;
图3C为本申请实施例提供的一种后置画中画模式拍摄场景示意图;
图4为本申请实施例提供的一种拍摄模式切换场景示意图;
图5为本申请实施例提供的一种拍摄模式切换方法流程示意图;
图6为本申请实施例提供的另一种拍摄模式切换场景示意图;
图7为本申请实施例提供的另一种拍摄模式切换方法流程示意图
图8A为本申请实施例提供的一种视频流渲染合并示意图;
图8B为本申请实施例提供的另一种视频流渲染合并示意图;
图9A为本申请实施例提供的一种视频流渲染合并场景示意图;
图9B为本申请实施例提供的另一种视频流渲染合并场景示意图;
图10为本申请实施例提供的一种编码示意图;
图11为本申请实施例提供的另一种拍摄模式切换场景示意图;
图12为本申请实施例提供的另一种拍摄模式切换方法流程示意图;
图13为本申请实施例提供的一种预览流和编码流示意图;
图14为本申请实施例提供的另一种预览流和编码流示意图;
图15为本申请实施例提供的另一种拍摄模式切换场景示意图;
图16为本申请实施例提供的另一种拍摄模式切换场景示意图;
图17为本申请实施例提供的一种转场动效生成方法流程示意图;
图18为本申请实施例提供的一种转场控制模块的软件结构框图;
图19为本申请实施例提供的另一种转场动效生成方法流程示意图;
图20为本申请实施例提供的一种旋转转场效果示意图;
图21为本申请实施例提供的一种拉伸转场效果示意图;
图22为本申请实施例提供的一种转场动效插入方法流程示意图;
图23为本申请实施例提供的一种预览流示意图;
图24为本申请实施例提供的另一种转场动效插入方法流程示意图;
图25A为本申请实施例提供的一种编码流示意图;
图25B为本申请实施例提供的另一种编码流示意图;
图26A为本申请实施例提供的另一种编码示意图;
图26B为本申请实施例提供的另一种编码示意图;
图27A为本申请实施例提供的一种渲染场景示意图;
图27B为本申请实施例提供的另一种渲染场景示意图;
图28为本申请实施例提供的另一种转场动效插入方法流程示意图;
图29为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为了更好的理解本申请的技术方案,下面结合附图对本申请实施例进行详细描述。
应当明确,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在本申请实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,甲和/或乙,可以表示:单独存在甲,同时存在甲和乙,单独存在乙这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
参见图1,为本申请实施例提供的一种电子设备示意图。在图1中以手机100为例对电子设备进行示例性说明,图1中示出了手机100的前视图和后视图,在手机100的前侧配置有两个前置摄像头111、112,在手机100的后侧面配置有四个后置摄像头121、122、123、124。通过配置的多个摄像头,可以为用户提供多种拍摄模式。用户可以根据拍摄场景,选择相应的拍摄模式进行拍摄,以提高用户体验。
可理解,图1所示仅为一种示例性说明,并不应当将其作为本申请保护范围的限制。例如,不同的手机,其摄像头的配置数量和配置位置可能不同。另外,本申请实施例涉及的电子设备除了手机以外,还可以为平板电脑、个人计算机(personal computer,PC)、个人数字助理 (personal digital assistant,PDA)、智能手表、上网本、可穿戴电子设备、增强现实技术 (augmented reality,AR)设备、虚拟现实(virtual reality,VR)设备、车载设备、智能汽车、智能音响、机器人、智能眼镜、智能电视等。
需要指出的是,在一些可能的实现方式中,电子设备也可能称为终端设备、用户设备(User Equipment,UE)等,本申请实施例对此不作限制。
参见图2,为本申请实施例提供的一种电子设备的软件结构框图。分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将安卓(Android)系统分为四层,从上至下分别为应用层、框架层、硬件抽象层和硬件层。
应用层(Application,App)可以包括一系列应用程序包。例如,该应用程序包可以包括相机应用。应用层又可以分为应用界面(UI)和应用逻辑。
相机应用的应用界面包括单景模式、双景模式、画中画模式等,对应于不同的视频拍摄模式。
相机应用的应用逻辑包括多摄框架和相机管理。其中,多摄框架包括切换控制模块、 Surface切换管理模块、多摄编码模块、转场控制模块等。切换控制模块用于控制拍摄模式的切换,例如前摄模式、后摄模式、前后模式、后后模式、画中画模式之间的切换。其中,在拍摄模式切换过程中可能会涉及打开或关闭的特定的摄像头、屏蔽不同芯片平台的硬件差异等。 Surface切换管理模块用于在拍摄模式切换过程中控制Surface切换。在Android系统中, Surface对应一块屏幕缓冲区,用于保存当前窗口的像素数据。具体地,在视频拍摄过程中,存在预览Surface和编码Surface,Surface切换管理模块用于在拍摄模式切换过程中控制预览Surface和编码Surface的切换。多摄编码模块用于在拍摄模式过程中进行编码,生成视频文件,即实现拍摄视频的录制。转场控制模块用于在拍摄模式切换过程中生成转场动效。相机管理包括设备管理模块、Surface管理模块、会话管理模块等。
框架层(Framework,FWK)为应用层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架,包括一些预先定义的函数。在图2中,框架层包括相机框架和媒体框架。其中,相机框架可以为相机访问接口(Camera2 API),Camera2 API是Android推出的一套访问摄像头设备的接口,其采用管道式的设计,使数据流从摄像头流向 Surface。Camera2 API包括相机管理(CameraManager)和相机设备(CameraDevice)。CameraManager为Camera设备的管理类,通过该类对象可以查询设备的Camera设备信息,得到CameraDevice对象。CameraDevice提供了Camera设备相关的一系列固定参数,例如基础的设置和输出格式等。
媒体框架包括媒体编解码器(MediaCodec)、音频录制模块(AudioRecord)和视音频复用器(Muxer)。其中,MediaCodec是Android提供的用于对音视频进行编解码的类,它通过访问底层的codec来实现编解码的功能,是Android media基础框架的一部分。AudioRecord 的主要功能是让各种应用能够管理音频资源,以便能够录制硬件所收集的声音。Muxer用于将视频压缩数据(例如H.264)和音频压缩数据(例如,AAC)合并到一个封装格式数据中。
硬件抽象层(HAL)是位于操作系统内核与硬件电路之间的接口层,其目的在于将硬件抽象化。它隐藏了特定平台的硬件接口细节,为操作系统提供虚拟硬件平台,使其具有硬件无关性, 可在多种平台上进行移植。在图2中,HAL包括相机硬件抽象层(Camera HAL),Camera HAL包括摄像头1、摄像头2等。可理解,该摄像头1、摄像头2为抽象的设备。在视频拍摄场景中,HAL会根据上层下发的分辨率以及Surface大小创建相应大小的数据流。
硬件层(HardWare,HW)是位于操作系统最底层的硬件。在图2中,HW包括摄像头1、摄像头2、摄像头3等。其中,摄像头1、摄像头2、摄像头3可对应于电子设备上的多个摄像头。
在一些可能的实现方式中,电子设备涉及的拍摄模式可能包括单摄模式和多摄模式。其中,单摄模式可能包括前置单摄模式、后置单摄模式等;多摄模式可能包括前置双摄模式、后置双摄模式、前后双摄模式、前置画中画模式、后置画中画模式、前后画中画模式等。
其中,在单摄模式下,采用一个摄像头进行视频拍摄;在多摄模式下采用两个或两个以上摄像头进行视频拍摄。
具体地,在前置单摄模式下,采用一个前置摄像头进行视频拍摄;在后置单摄模式下,采用一个后置摄像头进行视频拍摄;在前置双摄模式下,采用两个前置摄像头进行视频拍摄;在后置双摄模式下,采用两个后置摄像头进行视频拍摄;在前后双摄模式下,采用一个前置摄像头和一个后置摄像头进行视频拍摄;在前置画中画模式下,采用两个前置摄像头进行视频拍摄,且将一个前置摄像头拍摄的画面置于另一个前置摄像头拍摄的画面之中;在后置画中画模式下,采用两个后置摄像头进行视频拍摄,且将一个后置摄像头拍摄的画面置于另一个后置摄像头拍摄的画面之中;在前后画中画模式下,采用一个前置摄像头和一个后置摄像头进行视频拍摄,且将前置摄像头或后置摄像头拍摄的画面置于后置摄像头或前置摄像头拍摄的画面之中。
参见图3A,为本申请实施例提供的一种前后双摄模式拍摄场景示意图。在前后双摄模式下,采用一个前置摄像头采集前景画面,采用一个后置摄像头采集后景画面,前景画面和后景画面在预览界面内同时显示。
参见图3B,为本申请实施例提供的一种前后画中画模式拍摄场景示意图。在前后画中画模式下,采用一个前置摄像头采集前景画面,采用一个后置摄像头采集后景画面,将前景画面置于后景画面之中。
参见图3C,为本申请实施例提供的一种后置画中画模式拍摄场景示意图。在后置画中画模式下,采用一个后置摄像头采集远景画面,采用另一个后置摄像头采集近景画面,将近景画面置于远景画面之中。
需要指出的是,上述拍摄模式仅是本申请实施例列举的一些可能的实现方式,本领域技术人员可以根据实际需要配置其它拍摄模式,本申请实施例对此不作具体限制。
在视频拍摄的过程中,用户可能需要对拍摄模式进行切换。参见表一,为本申请实施例列举的一些可能的拍摄模式切换场景。
表一:
但是,相关技术中用户无法在拍摄过程中直接进行拍摄模式切换。例如,采用前置单摄模式拍摄的过程中,无法切换至其它拍摄模式,只能停止或拍照。因此,当用户需要将前置单摄模式切换为后置单摄模式时,需要先停止视频拍摄,然后再将拍摄模式设置为后置单摄模式,通过后置单摄模式进行视频拍摄,用户体验较差。
针对该问题,本申请实施例提供一种拍摄模式切换方法,可以在拍摄过程中直接进行拍摄模式切换。
参见图4,为本申请实施例提供的一种拍摄模式切换场景示意图。如图4所示,用户在通过电子设备进行视频拍摄的过程中,显示界面内可以实时显示拍摄的视频画面。另外,在显示界面内还包括拍摄模式选择窗口401,用户可以在拍摄模式选择窗口401内选择相应的拍摄模式进行视频拍摄。例如,前置单摄模式、后置单摄模式、前后双摄模式、前后画中画模式等。
在图4所示的应用场景中,用户首先选择前置单摄模式进行视频拍摄,在显示界面内实时显示前景画面。当用户触发拍摄模式选择窗口401内的“前后双摄”控件后,电子设备接收到拍摄模式切换指令,直接将前置单摄模式切换为前后双摄模式,在显示界面内实时显示在前后双摄模式下拍摄的视频画面,例如,图4所示的前景画面和后景画面。也就是说,在前后双摄模式下,分别通过前置摄像头和后置摄像头进行前景画面的采集和后景画面的采集,并在显示界面内分别显示前景画面和后景画面。
可理解,在视频拍摄过程中,除了需要在显示界面内对摄像头采集到的视频流进行预览以外,还需要进行视频录制,即将摄像头采集到的视频流(预览画面中所显示的视频画面)同步编码为视频文件(例如,MP4格式的视频文件),并存储在电子设备中。本申请实施例在拍摄模式切换过程中,不中断编码操作,保持持续编码,将切换前拍摄的视频以及切换后拍摄的视频直接编码为一个视频文件。下文中进行详细说明。
参见图5,为本申请实施例提供的一种拍摄模式切换方法流程示意图。该方法可应用于图 1所示的电子设备,如图5所示,其主要包括以下步骤。
步骤S501:按照第一拍摄模式进行视频拍摄,在预览界面内,显示所述第一拍摄模式拍摄的视频画面。
可理解,在进行视频拍摄时,通常会在显示界面内实时显示拍摄的视频画面,以便用户预览。
在一些可能的实现方式中,该显示界面也可能称为显示屏幕。另外,将显示界面内显示视频画面的区域称为预览界面。
本申请实施例涉及的第一拍摄模式可以为前置单摄模式、后置单摄模式、前置双摄模式、后置双摄模式、前后双摄模式、前置画中画模式、后置画中画模式、前后画中画模式中的任意一种,本申请实施例对此不作具体限制。
步骤S502:在拍摄过程中,接收拍摄模式切换指令,所述拍摄模式切换指令用于指示将所述第一拍摄模式切换为第二拍摄模式,其中,所述第一拍摄模式与所述第二拍摄模式基于不同的摄像头进行拍摄。
在实际应用中,用户可能在视频拍摄过程中需要切换拍摄模式,在电子设备中输入拍摄模式切换指令,以将第一拍摄模式切换为第二拍摄模式。其中,用户可以通过触摸屏、物理按键、手势控制、语音控制等方式输入拍摄模式切换指令。
本申请实施例涉及的拍摄模式切换可以为上述表一种任意一种拍摄模式切换场景,本申请实施例对此不作具体限制。
步骤S503:在所述预览界面内,将所述第一拍摄模式拍摄的视频画面切换为所述第二拍摄模式拍摄的视频画面。
在一种可能的实现方式中,第一视频画面和第二视频画面大小相同,例如,均为1920*1080,或者2520*1080,以保证拍摄模式切换前后显示界面显示的视频画面大小相同,提高用户体验。
采用本申请实施例提供的技术方案,可以在视频拍摄过程中触发拍摄模式切换指令,将第一拍摄模式切换为第二拍摄模式。在显示界面内,将第一拍摄模式拍摄的视频画面直接切换为第二拍摄模式拍摄的视频画面,提高用户体验。
参见图6,为本申请实施例提供的另一种拍摄模式切换场景示意图。在图6所示的应用场景中,切换前的拍摄模式为前置单摄模式;切换后的拍摄模式为前后双摄模式。
如图6A所示,按照前置单摄模式进行视频拍摄时,在预览界面内显示前置单摄模式拍摄的视频画面。
如图6B所示,用户触发拍摄模式切换指令,该拍摄模式切换指令用于指示将前置单摄模式切换为前后双摄模式。具体地,用户可以在拍摄模式选择窗口中点击“前后双摄模式”对应的区域,实现拍摄模式切换指令的触发。当然,用户也可以通过滑动拍摄模式选择窗口实现拍摄模式切换指令的触发,本申请实施例对此不作具体限制。
如图6C所示,电子设备在接收到拍摄模式切换指令后,将前置单摄模式对应的预览界面切换为前后双摄模式对应的预览界面,并在前后双摄模式对应的预览界面内显示前后双摄模式拍摄的视频画面。
可理解,在视频拍摄过程中,除了可以在预览界面内对拍摄的视频进行预览以外,还可以将拍摄的视频编码为视频文件(例如,MP4格式的视频文件),并存储在电子设备中,即实现拍摄视频的录制。本申请实施例在拍摄模式切换过程中,编码操作并不发生中断,因此,即使进行了拍摄模式切换,最终只会生成一个视频文件。以下结合流程示意图进行说明。
参见图7,为本申请实施例提供的另一种拍摄模式切换方法流程示意图。该方法可应用于图1所示的电子设备,如图7所示,主要包括以下步骤。
步骤S701:在拍摄过程中,对所述第一拍摄模式拍摄的视频画面进行编码。
本申请实施例在视频拍摄过程中,除了可以在预览界面内对拍摄的视频进行预览以外,还可以将拍摄的视频编码为视频文件。
本申请实施例涉及的编码操作可以为一个编码进程。具体地,在按照第一拍摄模式进行视频拍摄的过程中,第一拍摄模式对应的摄像头会持续上报视频帧。该过程中启用一个编码进程,对摄像头上报的视频帧进行持续编码。
本申请实施例涉及的第一拍摄模式可以为前置单摄模式、后置单摄模式、前置双摄模式、后置双摄模式、前后双摄模式、前置画中画模式、后置画中画模式、前后画中画模式中的任意一种,本申请实施例对此不作具体限制。
步骤S702:接收拍摄模式切换指令,拍摄模式切换指令用于指示将第一拍摄模式切换为第二拍摄模式。
在实际应用中,用户可能在视频拍摄过程中需要切换拍摄模式,在电子设备中输入拍摄模式切换指令,以将第一拍摄模式切换为第二拍摄模式。其中,第二拍摄模式可以为前置单摄模式、后置单摄模式、前置双摄模式、后置双摄模式、前后双摄模式、前置画中画模式、后置画中画模式和前后画中画模式中的任意一种。
步骤S703:对所述第二拍摄模式拍摄的视频画面进行编码。
可理解,在将第一拍摄模式切换至第二拍摄模式的过程中,视频流会发生切换,即第一拍摄模式对应的视频流切换至第二拍摄模式对应的视频流。但是,在该过程中,并不会结束S701 的编码进程,也不会在S702中拉起新的编码进程,而是在S701~S703的过程中始终维持S701的编码进程,基于S701的编码进程持续对第二拍摄模式对应的视频流进行编码,或者等待第二拍摄模式对应的视频流上流后,继续编码,从而直接生成一个包含第一拍摄模式的视频画面以及第二拍摄模式的视频画面的视频文件。
步骤S704:接收停止拍摄指令,生成视频文件,所述视频文件包括所述第一拍摄模式拍摄的视频画面、所述转场动效画面和所述第二拍摄模式拍摄的视频画面。
当接收到停止拍摄指令后,第二拍摄模式对应的摄像头停止上报视频帧,第二拍摄模式对应的视频流中断,编码操作停止编码,生成视频文件。可理解,该视频文件中包括第一拍摄模式拍摄的视频画面和第二拍摄模式拍摄的视频画面。
采用本申请实施例提供的技术方案,可以在视频拍摄过程中触发拍摄模式切换指令,将第一拍摄模式切换为第二拍摄模式。在拍摄模式切换过程中,将第一拍摄模式下拍摄的视频和第二拍摄模式下拍摄的视频编码为一个视频文件,以便于后续播放,提高用户体验。
在一些可能的实现方式中,第一拍摄模式和/或第二拍摄模式可能基于两个或两个以上摄像头进行拍摄。例如,当第一拍摄模式或第二拍摄模式为前置双摄模式、后置双摄模式、前后双摄模式、前置画中画模式、后置画中画模式、前后画中画模式时,可能会存在两个或两个以上摄像头同时拍摄。此时,需要对该两个或两个以上摄像头拍摄的视频画面进行渲染合并处理,然后对渲染合并处理后的视频画面进行编码或显示。
参见图8A,为本申请实施例提供的一种视频流渲染合并示意图。在图8A中,以前后双摄模式为例进行说明。
如图8A所示,在采用前后双摄模式进行视频拍摄的过程中,前置摄像头采集一路视频流,缓存在前置摄像头Surface中,后置摄像头采集一路视频流,缓存在后置摄像头Surface中。前置摄像头Surface和后置摄像头Surface中缓存的视频流均发送至渲染器,渲染器对两路视频流进行渲染合并处理。渲染合并处理后的数据一路发送至预览Surface进行缓存,进而在预览界面内显示;另一路发送至编码Surface进行缓存,进而通过编码器进行编码,生成视频文件。
进一步的,基于图8A所示视频流渲染合并逻辑,在拍摄过程中用户还可以暂停拍摄。如图8B所示,当电子设备接收到暂停拍摄指令后,渲染器与编码Surface不再进行数据交换,即暂停编码;渲染器与预览Surface继续进行数据交换,即继续在预览界面内显示渲染合并的视频画面。具体实现中,可以通过编码器控制编码Surface停止接收数据,即渲染器仍然可以向编码Surface发送数据,编码Surface拒绝接收数据。
在一种可能的实现方式中,该渲染器可以为开放图形库(Open GraphicsLibrary, OpenGL),OpenGL为用于渲染2D、3D图形的跨语言、跨平台的应用程序编程接口。
参见图9A,为本申请实施例提供的一种视频流渲染合并场景示意图。在图9A中示出了一帧前置摄像头采集的视频图像和一帧后置摄像头采集的视频图像。其中,前置摄像头和后置摄像头采集的视频图像均为1080*960。经过渲染合并处理后,将前置摄像头采集的视频图像和后置摄像头采集的视频图像拼接为一帧1080*1920大小的图像,该拼接后的图像为双景模式,即前置摄像头采集的图像和后置摄像头采集的图像并列展示。该拼接后的图像可以送编码器编码,以及送预览界面显示。
参见图9B,为本申请实施例提供的另一种视频流渲染合并场景示意图。在图9B中示出了一帧前置摄像头采集的视频图像和一帧后置摄像头采集的视频图像。其中,前置摄像头采集的视频图像大小为540*480,后置摄像头采集的视频图像大小为1080*960。经过渲染合并处理后,将前置摄像头采集的视频图像嵌入后置摄像头采集的图像内部,该拼接后的图像为画中画模式。
可理解,该将所述两路或两路以上视频画面进行渲染合并处理,具体为:根据所述两路或两路以上视频画面的纹理信息、位置信息和合并策略,将所述两路或两路以上视频画面进行渲染合并处理。其中,合并策略包括对所述两路或两路以上视频画面进行拼接,如图9A所示;和/或,将所述两路或两路以上预览视频画面中的至少一路视频画面填充至所述两路或两路以上视频画面中的其它预览视频画面中,如图9B所示。
可理解,图9A和图9B所示的图像大小仅为本申请实施例一种示例性说明,并不应当将其作为本申请保护范围的限制。
参见图10,为本申请实施例提供的一种编码示意图。如图10所示,对于单路视频流和多路视频流采用不同的编码处理方式。
具体地,在单摄模式下,单个摄像头采集一路视频流,将该视频流上报至相机框架,相机框架直接将该视频流发送至编码缓存,然后送编码器进行编码生成视频文件。也就是说,在单摄模式下,视频流不经过相机应用,直接送编码器进行编码。
在双摄模式下,两个摄像头各自采集一路视频流,将该双路视频流上报至相机框架,相机框架将该双路视频流发送至相机应用,以便相机应用对该双路视频流进行渲染合并处理(例如,采用图8所示的方式进行渲染合并处理)。当完成渲染合并处理后,相机应用将渲染合并处理后的数据发送至编码缓存,然后送编码器进行编码生成视频文件。也就是说,在双摄模式下,视频流经过相机应用处理后,再送编码器进行编码。
在实际应用中还可能同时采集两路以上的多路视频流,其编码方式与双路视频流的编码方式相似,在此不再赘述。
但是,在本申请实施例提供的视频切换场景中,无论是单路视频流、双路视频流还是多路视频流,均有可能上报至相机应用,以便在视频切换过程中,相机应用对视频流做相应处理,例如,在切换前后的视频流之间插入转场动效等。转场动效的生成及插入过程在下文中进行详细描述。
在一些可能的实现方式中,视频拍摄过程中,电子设备的显示界面内不显示拍摄模式选择窗口,在接收到启动切换指令后,才会在显示界面内显示拍摄模式选择窗口,便于用户在拍摄模式选择窗口中触发拍摄模式切换指令。
参见图11,为本申请实施例提供的另一种拍摄模式切换场景示意图。在图11所示的应用场景中,切换前的拍摄模式为前置单摄模式;切换后的拍摄模式为前后双摄模式。
如图11A所示,在初始状态下,电子设备按照前置单摄模式进行视频拍摄,此时,在显示界面内未显示拍摄模式选择窗口。
如图11B所示,当用户需要进行拍摄模式切换时,在显示界面内点击“切换”控件对应的区域,触发启动切换指令。
如图11C所示,当用户触发启动切换指令后,在显示界面内显示拍摄模式选择窗口,拍摄模式选择窗口中包括多种拍摄模式标识,用户可以在拍摄模式选择窗口中进行拍摄模式选择。
如图11D所示,用户在拍摄模式选择窗口中点击“前后双摄”模式对应的区域,触发拍摄模式切换指令,该拍摄模式切换指令用于指示将前置单摄模式切换为前后双摄模式。
如图11E所示,在完成拍摄模式切换后,重新取消拍摄模式选择窗口的显示,使得视频预览界面可以占据较大的屏幕显示区域。
为了便于本领域技术人员更好地理解本技术方案,下面对拍摄模式切换的整体流程进行介绍。
参见图12,为本申请实施例提供的另一种拍摄模式切换方法流程示意图。该方法可应用于图2所示的软件结构,如图12所示,其主要包括以下步骤。
步骤S1201:在单景UI内显示按照单景模式拍摄的视频画面。
在本申请实施例中,拍摄模式包括单景模式和双景模式。当前,用户在单景模式下进行视频拍摄,在单景UI内实时显示按照单景模式拍摄的视频画面。
其中,单景模式可以为前置单摄模式、后置单摄模式等;双景模式可以为前置双摄模式、后置双摄模式、前后双摄模式等。
步骤S1202:对按照单景模式拍摄的视频进行编码。
在拍摄过程中,多摄编码模块可以选择合适的编码器对拍摄的视频进行编码,生成视频文件,存储在电子设备中。
步骤S1203:触发拍摄模式切换指令。
用户在拍摄过程中,希望将拍摄模式由单景模式切换为双景模式,此时触发拍摄模式切换指令,拍摄模式切换指令用于指示将单景模式切换为双景模式。
步骤S1204:切换控制模块启动切换。
切换控制模块接收到拍摄模式切换指令后,启动切换。
步骤S1205:切换控制模块检测当前拍摄模式。
启动切换后,切换控制模块首先对当前的拍摄模式进行检测。在本申请实施例中,切换控制模块检测当前拍摄模式为单景模式。
步骤S1206:切换控制模块向Surface切换管理模块发送Surface切换指令。
在Android系统中,Surface对应一块屏幕缓冲区,用于保存当前窗口的像素数据。本申请实施例Surface切换管理模块接收到Surface切换指令后,将单景模式对应的Surface切换为双景模式对应的Surface。
具体实现中,视频流需要分别发送至应用界面和多摄编码模块,以进行预览和编码。相应地,Surface包括预览Surface和编码Surface。Surface切换管理模块接收到Surface切换指令后,将单景模式对应的预览Surface切换为双景模式对应的预览Surface;将单景模式对应的编码Surface切换为双景模式对应的编码Surface。
步骤S1207:切换控制模块向相机管理模块发送关闭单景摄像头指令。
由于需要将单景模式切换为双景模式,因此,单景摄像头不需要再继续采集视频画面,因此,可以通过相机管理模块将单景摄像头关闭。
在一些可能的实现方式中,也可以保持单景模式下的单景摄像头处于开启状态,然后再打开一个单景摄像头,实现双景视频图像的采集,本申请实施例对此不作具体限制。
步骤S1208:切换控制模块识别不同摄像头的设备策略和能力差异。
不同芯片平台的摄像头可能具有不同的设备策略和能力,在拍摄模式切换过程中,通过切换控制模块识别不同摄像头的设备控制策略和能力差异,以便在后续步骤中根据摄像头的设备控制策略和能力对切换后的摄像头进行配置,屏蔽不同芯片平台的硬件差异。
步骤S1209:切换控制模块向多摄编码模块发送保持编码指令。
可理解,在单景模式下,单景模式对应的摄像头会持续上报视频帧。该过程中,多摄编码模块启用一个编码进程,对摄像头上报的视频帧进行持续编码。
本申请实例在拍摄模式切换过程中控制多摄编码模块保持编码,即不结束编码进程,由该编码进程继续对双景模式对应的视频流进行编码,或者等待双景模式对应的视频流上流后,继续编码。
具体实现中,拍摄模式切换过程中可能会造成编码流断流,因此多摄编码模块在保持编码的过程中可能存在断流场景和不断流场景。
在断流场景中,摄像头报帧会断流,此时多摄编码模块会停止编码打包,但是仍然等待接收数据,直到摄像头报帧后再进行编码打包。
在不断流场景中,摄像头报帧不断流,持续报帧,多摄编码模块会收到持续不断的报帧,进行持续编码打包。
步骤S1210:切换控制模块向应用界面发送切换为双景UI指令。
在单景模式下,应用界面显示单景UI。在启动切换后,切换控制模块向应用界面发送切换为双景UI指令,指示应用界面切换为双景UI。
步骤S1211:切换控制模块向相机管理模块发送断开单景、启动双景指令。
在启动切换后,切换控制模块向相机管理模块发送断开单景、启动双景指令,以便相机管理模块断开单景模式、启动双景模式。
步骤S1212:相机管理模块向框架层发送断开单景、启动双景指令。
相机管理模块在断开单景模式、启动双景模式后,向框架层发送断开单景、启动双景指令,以便框架层断开单景模式、启动双景模式。
步骤S1213:框架层向硬件抽象层发送断开单景、启动双景指令。
框架层在断开单景模式、启动双景模式后,向硬件抽象层发送断开单景、启动双景指令,以便框架层断开单景模式、启动双景模式。
步骤S1214:向Surface切换管理模块发送双景视频数据流。
可理解,在双景模式下存在两个摄像头同时进行视频画面的采集,因此,双景视频数据流包括两路视频数据(连个视频画面),该两路视频数据分别发送至Surface切换管理模块。
当然,在一些可能的实现方式中可能会采用3个或4个摄像头同时进行视频画面的采集,相应地,会包括3路或4路视频数据,本申请实施例对此不作限制。
步骤S1215:Surface切换管理模块对双景视频数据渲染合并处理。
由于双景视频数据中存在两路视频数据,因此,需要对双景视频数据渲染合并处理。具体渲染过程可以参见上述实施例的描述,在此不再赘述。
步骤S1216:Surface切换管理模块发送渲染合并后的视频数据至多摄编码模块。
在完成双景视频数据渲染合并处理后,Surface切换管理模块将渲染合并后的视频数据发送至多摄编码模块,以便对渲染合并后的视频数据进行编码。
步骤S1217:多摄编码模块获取音频数据。
在一些可能的应用场景中,通常存在与拍摄的视频对应的音频。在本申请实施例中,多摄编码模块获取音频数据,以便对音频数据进行编码。
步骤S1218:多摄编码模块对音频数据和视频数据进行编码。
具体实现中,多摄编码模块可以对音频数据和视频数据分别进行编码,也可以将音频数据和视频数据进行混合编码,本申请实施例对此不作具体限制。
需要指出的是,此时对音频数据和视频数据进行编码的编码进程,与拍摄模式切换前采用的编码进程,为同一个编码进程,即拍摄模式切换过程中,编码进程不会发生中断,最终生成一个视频文件。
步骤S1219:Surface切换管理模块发送渲染合并后的视频数据至应用界面预览。
在完成双景视频数据渲染合并处理后,Surface切换管理模块将渲染合并后的视频数据发送至应用界面预览,以便用户查看拍摄的视频画面。
可理解,图12所示仅为本申请实施例所列举的一种可能的实现方式,并不应当将其作为本申请保护范围的限制。
参见图13,为本申请实施例提供的一种预览流和编码流示意图。本申请实施例在进行拍摄模式切换的过程中,会引起摄像头的切换。具体地,当触发拍摄模式切换指令后,断开第一拍摄模式,开启第二拍摄模式,该过程会造成视频流的断流。即第一拍摄模式对应的视频流结束,第二拍摄模式对应的视频流还未到达。如图13所示,第一拍摄模式对应的预览流与第二拍摄模式对应的预览流之间存在1500ms的断流时间;第一拍摄模式对应的编码流与第二拍摄模式对应的编码流之间存在1500ms的断流时间。在断流期间,会引起视频画面的黑屏、卡顿等,影响用户体验。其中,为了实现视频防抖等功能,在编码的过程中会对编码流进行缓存,例如在本申请实施例中对编码流进行20帧的缓存。
针对上述拍摄模式切换过程中存在断流,影响用户体验的问题,本申请实施例提供了一种拍摄模式切换方法,通过延迟第一拍摄模式的断开时间,避免拍摄模式切换过程中断流,以下结合附图进行说明。
参见图14,为本申请实施例提供的另一种预览流和编码流示意图。在本申请实施例中,当接收到拍摄模式切换指令后,首先开启第二拍摄模式,使得第二拍摄模式对应的视频流开始上流。在延迟一定的时间(例如,1500ms)后,断开第一拍摄模式,可理解,此时第二拍摄模式对应的视频流已经到达,实现第一拍摄模式对应的视频流和第二拍摄模式对应的视频流的衔接。也就是说,本申请实施例第一拍摄模式多产生1500ms的视频流,实现断流的过渡。具体实现中,第一拍摄模式的延迟断开时间可以根据拍摄模式切换过程中的断流时间确定。
需要指出的是,当第一拍摄模式和第二拍摄模式不存在共用的摄像头时,可以直接控制第一拍摄模式对应的摄像头延迟关闭,待到达延迟时间后,关闭第一拍摄模式对应的摄像头。
但是,当第一拍摄模式和第二拍摄模式存在共用的摄像头时,该共用的摄像头需要始终保持开启状态。
参见图15,为本申请实施例提供的另一种拍摄模式切换场景示意图。在图15中,将前后双景模式切换为后后双景模式。在该拍摄模式切换过程中,第一后置摄像头为拍摄模式切换前后的共用摄像头。
如图15所示,在前后双景模式下,前置摄像头采集1080*480大小的前景图像;第一后置摄像头采集1080*480大小的第一后景图像。当接收到拍摄模式切换指令后,前置摄像头延迟关闭,打开第二后置摄像头。此时,由于第二后置摄像头采集的视频流还未到达,因此仍然预览和编码前置摄像头和第一后置摄像头采集的图像。当到达延迟时间后,第二后置摄像头采集的视频流到达,关闭前置摄像头,预览和编码第一后置摄像头和第二后置摄像头采集的图像。在该过程中,第一后置摄像头始终保持打开状态。需要指出的是,本申请实施例在前后双摄模式和后后双摄模式中,需要第一后置摄像头采集的画面大小始终为1080*480。
但是,在一些可能的实现方式中,切换前后的共用摄像头需要采集的画面大小可能不同,此时,需要对该共用的摄像头采集的画面进行处理,以下结合附图进行说明。
参见图16,为本申请实施例提供的另一种拍摄模式切换场景示意图。在图16中,将前景模式切换为前后双景模式。可理解,在该拍摄模式切换过程中,前置摄像头为拍摄模式切换前后的共用摄像头。
如图16所示,在前景模式下,前置摄像头采集1080*960大小的图像。当接收到前景模式切换至后景模式的指令后,前置摄像头保持打开状态,并开启后置摄像头。可理解,此时继续对前置摄像头采集的1080*960大小的前景画面进行编码和预览。当后置摄像头的视频流达到后,需要将前景画面和后景画面进行渲染合并处理。但是,由于前后双景模式中要求前景画面的大小为1080*480,此时需要将1080*960大小的前景画面裁剪至1080*480,然后将 1080*480大小的前景画面与1080*480大小的后景画面渲染合并处理。
针对上述拍摄模式切换过程中存在断流,影响用户体验的问题,还可以在拍摄模式切换过程中生成转场动效,并在断流期间插入转场动效,通过转场动效实现切换前后视频画面的过渡。
参见图17,为本申请实施例提供的一种转场动效生成方法流程示意图。该方法可应用于图1所示的电子设备,如图17所示,其主要包括以下步骤。
步骤S1701:接收拍摄模式切换指令,所述拍摄模式切换指令用于指示将第一拍摄模式切换为第二拍摄模式,所述第一拍摄模式和所述第二拍摄模式采用不同的摄像头进行拍摄。
在实际应用中,用户可能在视频拍摄过程中需要切换拍摄模式,在电子设备中输入拍摄模式切换指令,以将第一拍摄模式切换为第二拍摄模式。其中,用户可以通过触摸屏、物理按键、手势控制、语音控制等方式输入拍摄模式切换指令,本申请实施例对此不作具体限制。
在本申请实施例涉及的第一拍摄模式和第二拍摄模式基于不同的摄像头进行拍摄。具体地,电子设备涉及的拍摄模式可能包括单摄模式和多摄模式。其中,单摄模式可能包括前置单摄模式、后置单摄模式等;多摄模式可能包括前置双摄模式、后置双摄模式、前后双摄模式、前置画中画模式、后置画中画模式、前后画中画模式等。在下文中进行详细说明。
步骤S1702:获取初始转场图像,所述初始转场图像与所述第一拍摄模式拍摄的视频的图像相关。
本申请实施例在接收到拍摄模式切换指令后,获取初始转场图像,该初始转场图像与所述第一拍摄模式拍摄的视频的图像相关。
具体实现中,该初始转场图像可以为第一拍摄模式下拍摄的视频的图像可理解,为了使转场动效更好地衔接第一拍摄模式和第二拍摄模式,初始转场图像可以为在第一拍摄模式下拍摄的视频的最后一帧图像。
步骤S1703:对所述初始转场图像进行调整,生成转场动效。
具体实现中,可以根据转场策略确定图像调整参数,根据图像调整参数,对初始转场图像进行调整,生成转场动效。该转场策略可以包括转场动效时长、转场动效帧率、转场效果等。
可理解,在不同的应用场景(拍摄模式切换场景)中,对转场动效的需求可能不同。例如,需要设置不同的转场动效时长、转场动效帧率、转场效果等。因此,本申请实施例需要根据转场策略确定图像调整参数,进而根据图像调整参数生成相应的转场动效。
在一些可能的实现方式中,该图像调整参数可以包括旋转角度、缩放比例、透明度、模糊度、位移量等。
具体实现中,转场动效中的每一帧转场图像对应一个图像调整参数。也就是说,需要根据转场策略确定所述转场动效中每一帧转场图像对应的图像调整参数。例如,当转场动效时长为 1s,转场动效帧率为30时,需要根据转场策略确定30帧转场图像对应的30个图像调整参数。
可理解,转场动效由连续的转场图像帧组成。本申请实施例根据转场动效中每一帧转场图像对应的图像调整参数,对初始转场图像进行调整(旋转角度、缩放比例、透明度、模糊度、位移量等),生成转场动效中的每一帧转场图像。
例如,当转场动效时长为1s,转场动效帧率为30时,根据转场动效中30帧转场图像对应的30个图像调整参数,对初始转场图像进行调整,生成30帧转场图像,即转场动效。
采用本申请实施例提供的技术方案,在接收到拍摄模式切换指令后,生成转场动效,该转场动效用于在拍摄模式切换过程中的断流时间,对切换前后的预览画面进行过度,为用户提供流畅的视频拍摄体验。另外,该转场动效还可用于同步编码到生成的视频文件中,为用户提供流畅的视频播放体验。
在一些可能的实现方式中,转场动效包括显示界面内预览的转场动效和在视频文件中编码的转场动效。具体地:
对于在显示界面内预览的转场动效,所述根据转场策略确定所述转场动效中每一帧转场图像对应的图像调整参数,包括:根据转场策略确定所述转场动效中每一帧转场预览图像对应的图像调整参数;所述根据所述转场动效中每一帧转场图像对应的图像调整参数,对所述初始转场图像进行调整,生成所述转场动效中的每一帧转场图像,包括:根据所述转场动效中每一帧转场预览图像对应的图像调整参数,对所述初始转场图像进行调整,生成所述转场动效中的每一帧转场预览图像,所述转场预览动效用于在预览界面内显示。
对于在视频文件中编码的转场动效,所述转场策略确定所述转场动效中每一帧转场图像对应的图像调整参数,包括:根据转场策略确定所述转场动效中每一帧转场编码图像对应的图像调整参数;所述根据所述转场动效中每一帧转场图像对应的图像调整参数,对所述初始转场图像进行调整,生成所述转场动效中的每一帧转场图像,包括:根据所述转场动效中每一帧转场编码图像对应的图像调整参数,对所述初始转场图像进行调整,生成所述转场动效中的每一帧转场编码图像,所述转场编码图像用于编码为转场动效文件。
在一些可能的实现方式中,所述转场策略还包括转场效果,本领域技术人员可以根据实际需要设计相应的转场效果,以提高用户体验。例如,可以将转场动效设计为拉伸效果、旋转效果、飞入飞出效果、淡入淡出效果等。在下文中进行详细说明。
可理解,转场效果可能与切换前后的拍摄模式相关。例如,当第一拍摄模式为前后双摄模式,第二拍摄模式为前置单摄模式时,最好采用拉伸效果,通过拉伸前后双摄模式下的前景画面,将后景画面覆盖,进而切换为前置单摄模式。
因此,在一些可能的实现方式中可以根据所述第一拍摄模式和所述第二拍摄模式,确定所述转场效果。
具体实现中,可以通过电子设备的转场控制模块生成转场动效。
参见图18,为本申请实施例提供的一种转场控制模块的软件结构框图。如图18所示,转场控制模块包括纹理管理器、预览渲染引擎、编码渲染引擎、渲染器和着色器库。
其中,纹理管理器可以生成用于转场的纹理(图像)数据,即初始转场图像,该初始转场图像用于生成转场动效。渲染器用于根据转场策略(转场动效时长、转场动效帧率、转场效果等)计算转场动效中每一帧转场图像对应的图像调整参数,并根据图像调整参数渲染对应转场帧纹理。着色器库用于配合渲染器的GPU着色程序,可以包括多个着色器(shader),例如,顶点着色器、片元着色器等。预览渲染引擎用于驱动渲染器在指定时间区间、按照指定帧率生成转场帧纹理,并送预览屏幕显示;编码渲染引擎用于驱动渲染器在指定时间区间、按照指定帧率生成转场帧纹理,并送多摄编码模块编码。
参见图19,为本申请实施例提供的另一种转场动效生成方法流程示意图。该方法可应用于图18所示的软件结构,如图19所示,其主要包括以下步骤。
S1901:切换控制模块向纹理管理器发送启动转场动效指令。
具体地,用户触发拍摄模式切换指令后,切换控制模块向纹理管理器发送启动转场动效指令。
S1902:纹理管理器获取初始转场图像。
纹理管理器可以生成用于转场的纹理(图像)数据。纹理管理器接收到启动转场动效指令后,获取初始转场图像,该初始转场图像用于生成转场动效。
具体实现中,该初始转场图像可以为第一拍摄模式下拍摄的视频的图像。其中,第一拍摄模式为切换前的拍摄模式;第二拍摄模式为切换后的拍摄模式。
可理解,为了使转场动效更好地衔接第一拍摄模式和第二拍摄模式,初始转场图像可以为在第一拍摄模式下拍摄的视频的最后一帧图像。
S1903:纹理管理器向预览渲染引擎发送启动转场动效预览指令。
纹理管理器在获取初始转场图像后,向预览渲染引擎发送启动转场动效预览指令,使得预览渲染引擎驱动渲染器在指定时间区间、按照指定帧率生成转场帧纹理,并送应用界面显示。
S1904:预览渲染引擎配置渲染器。
渲染器用于根据转场策略(转场动效时长、转场动效帧率、转场效果等)计算转场动效中每一帧转场图像对应的图像调整参数,并根据图像调整参数渲染对应转场帧纹理。该图像调整参数可以包括旋转角度、缩放比例、透明度、模糊度、位移量等。
预览渲染引擎在接收到启动转场动效预览指令后,配置渲染器,渲染器可以在着色器库中选择对应的着色器。例如,顶点着色器、片元着色器等。
S1905:纹理管理器向编码渲染引擎发送启动转场动效编码指令。
纹理管理器在获取初始转场图像后,向编码渲染引擎发送启动转场动效编码指令,使得预览渲染引擎驱动渲染器在指定时间区间、按照指定帧率生成转场帧纹理,并送多摄编码模块编码。
S1906:编码渲染引擎配置渲染器。
编码渲染引擎在接收到启动转场动效预览指令后,配置渲染器,渲染器可以在着色器库中选择对应的着色器。
S1907:预览渲染引擎驱动渲染器绘制转场动效中的一帧转场预览图像。
在完成渲染器的配置后,预览渲染引擎驱动渲染器绘制转场动效中的一帧转场预览图像。具体地,渲染器可以根据转场策略和当前时间计算一帧转场预览图像的图像调整参数,并根据该图像调整参数对初始转场图像进行调整,绘制一帧转场预览图像。
S1908:编码渲染引擎驱动渲染器绘制转场动效中的一帧转场编码图像。
在完成渲染器的配置后,编码渲染引擎驱动渲染器绘制转场动效中的一帧转场编码图像。具体地,渲染器可以根据转场策略和当前时间计算一帧转场编码图像的图像调整参数,并根据该图像调整参数对初始转场图像进行调整,绘制一帧转场编码图像。
S1909:渲染器向应用界面发送转场预览图像。
具体地,渲染器在绘制完一帧转场预览图像后,将该转场预览图像发送至应用界面进行显示。
S1910:渲染器向多摄编码模块发送转场编码图像。
具体地,渲染器在绘制完一帧转场编码图像后,将该转场编码图像发送至多摄编码模块进行编码。
可理解,在转场动效时长内,渲染器持续向应用界面发送转场预览图像,以便在应用界面显示转场动效;渲染器持续向多摄编码模块发送转场编码图像,以便生成转场动效视频文件,保存在电子设备中。
具体实现中,本领域技术人员可以根据实际需要设计相应的转场效果,以下结合附图进行详细说明。
参见图20,为本申请实施例提供的一种旋转转场效果示意图。在图20所示的应用场景中,切换前的拍摄模式为后置单摄模式,切换后的拍摄模式为前置单摄模式。
由于切换前的拍摄模式为后置单摄模式,因此在初始状态下(图20A)预览 界面内显示后景画面。在图20A-20D,后景画面由0度逐渐旋转至+36度;在 图20D预览界面内同时显示后景画面和前景画面,后景画面旋转+36度,前景 画面旋转-36度,且前景画面位于后景画面的上层;在图20D-20G,后景画面由 +36度逐渐旋转至0度,前景画面由-36度逐渐旋转至0度;在图20G中前景 画面将后景画面完全覆盖,因此可以取消后景画面仅保留前景画面,转场动效结 束。
也就是说,在由后置单摄模式切换至前置单摄模式的过程中,后景画面和前景画面沿着相反的方向旋转,最终前景画面将后景画面完全覆盖。
可理解,转场动效是一种随着时间持续变化的动态效果,图20仅为截取部分时刻的示意图。另外,本领域技术人员还可以根据实际需要设置其它的旋转角度;或者,在画面旋转的过程中添加其它的效果,例如调整旋转过程中画面的透明度、模糊度等。本申请实施例对此不作限制。
参见图21,为本申请实施例提供的一种拉伸转场效果示意图。在图21所示的应用场景中,切换前的拍摄模式为前后双摄模式;切换后的拍摄模式为前置单摄模式。
由于切换前的拍摄模式为前后双摄模式,因此在初始状态下(图21A)预览界面内同时显示前景画面和后景画面。在图21A-21D,前景画面逐渐拉伸,将后景画面覆盖;在图21D所示的状态下,前景画面将后景画面完全覆盖,因此可以取消后景画面仅保留前景画面,转场动效结束。
另外,为了取得较好的转场效果,还可以在前景画面拉伸的过程中,对前景画面进行高斯模糊处理,随着前景画面的拉伸,高斯模糊逐渐加强。当然,本领域技术人员可以根据实际需要在前景画面和/或后景画面中添加其它图像处理效果,其均应当处于本申请的保护范围之内。
可理解,在生成转场动效后,需要在拍摄模式切换过程中的断流时间,将转场动效插入预览界面以及编码的视频文件中,以下进行详细说明。
参见图22,为本申请实施例提供的一种转场动效插入方法流程示意图。该方法可应用于图1所示的电子设备,该方法重点说明在预览流中插入转场动效的过程,如图22所示,其主要包括以下步骤。
步骤S2201:按照第一拍摄模式进行视频拍摄,在预览界面内显示按照所述第一拍摄模式拍摄的视频画面。
本申请实施例涉及的第一拍摄模式可以为前置单摄模式、后置单摄模式、前置双摄模式、后置双摄模式、前后双摄模式、前置画中画模式、后置画中画模式、前后画中画模式中的任意一种,本申请实施例对此不作具体限制。
步骤S2202:接收拍摄模式切换指令,所述拍摄模式切换指令用于指示将所述第一拍摄模式切换为第二拍摄模式。
在实际应用中,用户可能在视频拍摄过程中需要切换拍摄模式,在电子设备中输入拍摄模式切换指令,以将第一拍摄模式切换为第二拍摄模式。其中,用户可以通过触摸屏、物理按键、手势控制、语音控制等方式输入拍摄模式切换指令。
本申请实施例涉及的拍摄模式切换可以为上述表一种任意一种拍摄模式切换场景,本申请实施例对此不作具体限制。
步骤S2203:在所述预览界面内,将按照所述第一拍摄模式拍摄的视频画面切换为转场动效画面。
如上文所述,在拍摄模式切换过程中,通常会引起视频流的断流,体现在预览界面内,当切换前拍摄模式下采集的视频画面播放结束,切换后拍摄模式下采集的视频画面还未生成,会造成预览界面的断流,影响用户体验。
针对该问题,本申请实施例在拍摄模式切换过程中的断流时间插入转场动效。具体地,在接收到拍摄模式切换指令后,将第一拍摄模式拍摄的视频画面切换为转场动效画面。该转场动效可以为上述实施例中生成的转场动效。
步骤S2204:按照所述第二拍摄模式进行视频拍摄,在所述预览界面内,将所述转场动效画面切换为按照所述第二拍摄模式拍摄的视频画面。
可理解,在拍摄模式切换完成后,需要将预览界面内的转场动效画面切换为按照所述第二拍摄模式拍摄的视频画面。
参见图23,为本申请实施例提供的一种预览流示意图。如图23所示,在拍摄模式切换过程中,第一拍摄模式预览流和第二拍摄模式预览流之间会存在断流,本申请实施例在第一拍摄模式预览流和第二拍摄模式预览流之间插入转场动效预览流,通过转场动效进行过度。
为了提高用户体验,该转场动效时长应当与拍摄模式切换过程中的断流时长相匹配,该断流时长为所述第一拍摄模式上报的最后一帧视频画面与所述第二拍摄模式上报的第一帧视频画面的时间差。
可理解,在视频拍摄过程中,除了可以在预览界面内对拍摄的视频进行预览以外,还可以将拍摄的视频编码为视频文件(例如,MP4格式的视频文件),并存储在电子设备中。本申请实施例在拍摄模式切换过程中,将切换前拍摄的视频、转场动效以及切换后拍摄的视频编码合成为一个视频文件。以下结合流程示意图进行说明。
参见图24,为本申请实施例提供的另一种转场动效插入方法流程示意图。该方法可应用于图1所示的电子设备,该方法重点说明在编码流中插入转场动效的过程,如图24所示,其主要包括以下步骤。
步骤S2401:按照第一拍摄模式进行视频拍摄,通过编码操作对所述第一拍摄模式拍摄的视频画面进行持续编码。
本申请实施例在视频拍摄过程中,除了可以在预览界面内对拍摄的视频进行预览以外,还可以将拍摄的视频编码为视频文件。
本申请实施例涉及的编码操作可以为一个编码进程。具体地,在按照第一拍摄模式进行视频拍摄的过程中,第一拍摄模式对应的摄像头会持续上报视频帧。该过程中启用一个编码进程,对摄像头上报的视频帧进行持续编码。
本申请实施例涉及的第一拍摄模式可以为前置单摄模式、后置单摄模式、前置双摄模式、后置双摄模式、前后双摄模式、前置画中画模式、后置画中画模式、前后画中画模式中的任意一种,本申请实施例对此不作具体限制。
步骤S2402:接收拍摄模式切换指令,所述拍摄模式切换指令用于指示将第一拍摄模式切换为第二拍摄模式,所述第一拍摄模式和所述第二拍摄模式基于不同的摄像头进行拍摄。
在实际应用中,用户可能在视频拍摄过程中需要切换拍摄模式,在电子设备中输入拍摄模式切换指令,以将第一拍摄模式切换为第二拍摄模式。其中,第二拍摄模式可以为前置单摄模式、后置单摄模式、前置双摄模式、后置双摄模式、前后双摄模式、前置画中画模式、后置画中画模式和前后画中画模式中的任意一种。
步骤S2403:通过所述编码操作对转场动效进行持续编码。
参见图25A,为本申请实施例提供的一种编码流示意图。如图25A所示,当第一拍摄模式对应的编码流结束后,编码操作继续对转场动效进行编码,将转场动效对应的画面帧持续刷新到视频文件中。
步骤S2404:按照第二拍摄模式进行视频拍摄,通过所述编码操作对所述第二拍摄模式拍摄的视频画面进行持续编码。
参见图25B,为本申请实施例提供的另一种编码流示意图。如图25B所示,当转场动效对应的编码流结束后,编码操作继续基于第二拍摄模式对应的编码流进行编码,将第二拍摄模式对应的视频画面持续刷新到视频文件中。
步骤S2405:接收停止拍摄指令,所述编码操作停止编码,生成视频文件。
当接收到停止拍摄指令后,第二拍摄模式对应的摄像头停止上报视频帧,第二拍摄模式对应的视频流中断,编码操作停止编码,生成视频文件。可理解,该视频文件中包括第一拍摄模式拍摄的视频画面、转场动效画面和第二拍摄模式拍摄的视频画面。
采用本申请实施例提供的技术方案,在拍摄模式切换过程中的断流时间插入转场动效,通过转场动效对切换前后的预览画面进行过度,为用户提供流畅的视频拍摄体验。另外,将转场动效同步编码到生成的视频文件中,为用户提供流畅的视频播放体验。
参见图26A,为本申请实施例提供的另一种编码示意图。如图26A所示,按照第一拍摄模式进行视频拍摄的过程中,摄像头将第一拍摄模式视频流发送至相机框架,相机框架将该第一拍摄模式视频流发送至相机应用,相机应用根据第一拍摄模式视频流生成第一拍摄模式编码流,并将该第一拍摄模式编码流发送至编码缓存,然后送编码器进行编码。
当触发拍摄模式切换指令时,第一拍摄模式视频流结束,相机应用不能继续向编码缓存发送第一拍摄模式编码流。此时,相机应用生成转场动效,开始向编码缓存发送转场动效编码流,然后将转场动效编码流送编码器进行编码。当转场动效编码流接收后,相机应用开始向编码缓存发送第二拍摄模式编码流,编码器继续对基于第二拍摄模式编码流进行编码。
也就是说,编码器依次基于第一拍摄模式编码流、转场动效编码流、第二拍摄模式编码流进行编码,生成视频文件。
参见图26B,为本申请实施例提供的另一种编码示意图。如图26B所示,在拍摄模式切换的过程中,第一拍摄模式视频流、转场动效流(由转场动效帧图像组成的数据流)和第一拍摄模式视频流依次通过OpenGL渲染器进行渲染处理,并将渲染处理后的图像发送至预览界面进行显示,以及发送至编码缓存,编码器可以在编码缓存中依次读取上述数据进行编码,进而将第一拍摄模式视频流、转场动效流和第一拍摄模式视频流编码为一个视频文件。
参见图27A,为本申请实施例提供的一种渲染场景示意图。在图27A中以Open GL为例对图像的渲染过程进行说明。
为了分别实现预览图像和编码图像的处理,通常设置两个渲染引擎,即Open GL预览渲染引擎和Open GL编码渲染引擎,Open GL预览渲染引擎和Open GL编码渲染引擎可以调用Open GL渲染器实现图像的渲染处理。
在单景模式下,Open GL预览渲染引擎可以分别通过第一监听模块及第二监听模块监听一路视频图像,两个监听模块监听的视频图像一个用作预览渲染,一个用作编码渲染。当然,也可以仅使用一个监听模块监听视频图像,将监听的视频图像进行预览渲染,并将预览渲染后的视频图像进行编码渲染。具体如下:
Open GL预览渲染引擎通过第一监听模块及第二监听模块分别监听第一摄像头采集的视频图像。Open GL预览渲染引擎将第一监听模块监听到的视频图像传输至上屏渲染单元进行缓存,将第二监听模块监听到的视频图像传输至编码缓存区。将上屏渲染单元中缓存的视频图像传输至预览界面(SurfaceView),在预览界面内显示该视频图像。Open GL编码渲染引擎获取编码缓存区内的视频图像,并对该视频图像根进行相关渲染,例如对该视频图像进行美颜处理,或者在该视频图像中添加水印,将渲染后的视频图像发送至编码模块,以便编码模块进行相应的编码处理,生成视频文件。
在双景模式或画中画模式下,Open GL预览渲染引擎通过第一监听模块和第二监听模块监听分别监听第一摄像头及第二摄像头采集的视频图像,并将监听到的两路视频图像及合成策略传输至Open GL渲染器。Open GL渲染器根据合成策略,将两路视频图像合成为一个视频图像,并将该视频图像传输至上屏渲染单元进行缓存。将上屏渲染单元中缓存的视频图像分别传输至预览界面(SurfaceView)及编码缓存区。在预览界面内显示该视频图像。Open GL编码渲染引擎获取编码缓存区内的视频图像,并对该视频图像根进行相关渲染,例如对该视频图像进行美颜处理,或者在该视频图像中添加水印,将渲染后的视频图像发送至编码模块,以便编码模块进行相应的编码处理,生成视频文件。
需说明的是,在上述过程中,除了编码模块生成的视频文件为MP4格式外,其他视频图像均是RGB格式的。也就是说,Open GL预览渲染引擎监听的视频图像为RGB格式的图像, Open GL渲染器渲染合成后输出的视频图像也是RGB格式。即为,上屏渲染单元缓存的视频图像为RGB格式,发送至预览界面及编码缓存区的视频图像也是RGB格式。Open GL编码渲染引擎获取到RGB格式的视频图像,并对该视频图像根据用户输入的图像渲染指令进行相关渲染,得到的渲染后的视频图像是RGB格式。编码模块接收的视频图像为RGB格式,对RGB格式的视频图像进行编码处理,生成MP4格式的视频文件。
在转场动效的应用场景中,Open GL预览渲染引擎和Open GL编码渲染引擎分别初始化一个对应的Open GL环境,分别用于转场预览图像和转场编码图像的渲染。该初始化的内容可以包括计时器线程、纹理等。
在另一种可能的实现方式中,还可以仅通过Open GL预览渲染引擎初始化一个对应的 Open GL环境,该Open GL预览渲染引擎进行转场预览图像渲染。Open GL编码渲染引擎共享转场预览图像,根据转场预览图像生成转场编码图像,进而实现转场编码图像的编码。
参见图27B,为本申请实施例提供的另一种渲染场景示意图。其与图27A的不同之处在于,在单景模式中Open GL预览渲染引擎可以仅通过一个监听模块监听电子设备的一路视频图像。例如,Open GL预览渲染引擎通过第一监听模块监听第一摄像头采集的视频图像。Open GL预览渲染引擎将第一监听模块监听到的视频图像传输至上屏渲染单元进行缓存。将上屏渲染单元中缓存的视频图像传输至预览界面。在预览界面内显示该视频图像,并将该视频图像传输至编码缓存区中。Open GL编码渲染引擎获取编码缓存区内的视频图像,并对该视频图像根进行相关渲染,例如对该视频图像进行美颜处理,或者在该视频图像中添加水印,将渲染后的视频图像发送至编码模块,以便编码模块进行相应的编码处理,生成视频文件。
具体地,在Open GL预览渲染引擎和Open GL编码渲染引擎之间可以通过SharedContext实现数据共享。
为了便于本领域技术人员更好地理解本技术方案,下面对转场动效插入的整体流程进行介绍。
参见图28,为本申请实施例提供的另一种转场动效插入方法流程示意图。该方法可应用于图2所示的软件结构,如图28所示,其主要包括以下步骤。
S2801:在预览界面内显示按照单摄模式拍摄的视频画像。
在本申请实施例中,拍摄模式包括单景模式和双景模式。当前,用户在单景模式下进行视频拍摄,在预览界面内实时显示按照单摄模式拍摄的视频画像。
其中,单景模式可以为前置单摄模式、后置单摄模式等;双景模式可以为前置双摄模式、后置双摄模式、前后双摄模式等。
S2802:对按照单景模式拍摄的视频进行编码。
在拍摄过程中,多摄编码模块对拍摄的视频进行编码。
S2803:触发拍摄模式切换指令。
用户在拍摄过程中,希望将拍摄模式由单景模式切换为双景模式,此时触发拍摄模式切换指令,拍摄模式切换指令用于指示将单景模式切换为双景模式。
S2804:切换控制模块启动切换。
切换控制模块接收到拍摄模式切换指令后,启动切换。
S2805:切换控制模块向多摄编码模块发送保持编码指令。
可理解,在单景模式下,多摄编码模块对单景模式下拍摄的视频实时编码。
本申请实例在拍摄模式切换过程中控制多摄编码模块保持编码,以便将单景模式下拍摄的视频、转场动效和双景模式下拍摄的视频生成一个视频文件。
S2806:切换控制模块向应用界面发送切换为双景UI指令。
在单景模式下,应用界面显示单景UI。在启动切换后,切换控制模块向应用界面发送切换为双景UI指令,指示应用界面切换为双景UI。
S2807:切换控制模块向转场控制模块发送启动转场动效指令。
为了避免在拍摄模式切换过程中影响用户体验,在拍摄模式切换的断流期间插入转场动效。具体地,切换控制模块向转场控制模块发送启动转场动效指令,以便转场控制模块生成转场动效。
S2808:多摄编码模块向相机管理模块发送断开单景、启动双景指令。
在启动切换后,多摄编码模块向相机管理模块发送断开单景、启动双景指令,以便相机管理模块断开单景模式、启动双景模式。
S2809:相机管理模块向框架层发送断开单景、启动双景指令。
相机管理模块在断开单景模式、启动双景模式后,向框架层发送断开单景、启动双景指令,以便框架层断开单景模式、启动双景模式。
S2810:框架层向硬件抽象层发送断开单景、启动双景指令。
框架层在断开单景模式、启动双景模式后,向硬件抽象层发送断开单景、启动双景指令,以便框架层断开单景模式、启动双景模式。
S2811:转场控制模块生成转场动效。
转场控制模块在接收到启动转场动效指令后生成转场动效,转场动效的生成过程参见上述实施例的描述。
S2812:转场控制模块向多摄编码模块发送转场动效。
转场控制模块在生成转场动效后,将转场动效发送至多摄编码模块,以便对转场动效进行编码。
S2813:多摄编码模块对转场动效进行编码。
多摄编码模块在接收到转场动效后,对转场动效进行编码。
需要指出的是,在拍摄模式切换过程中,多摄编码模块保持持续编码,也就是说在拍摄模式切换过程中,编码操作并不会中断,而是将编码流由第一拍摄模式编码流切换为第二拍摄模式编码流。
S2827:在应用界面显示转场动效画面。
具体地,转场控制模块在生成转场动效后,将转场动效发送至应用界面,以便在断流期间显示转场动效画面。
S2815:向切换控制模块发送双景启动消息。
双景模式启动后,双景模式启动消息由底层逐级发送至切换控制模块。具体地,硬件抽象层启动双景模式后,向框架层发送双景启动消息;框架层启动双景模式后,向相机管理模块发送双景启动消息;相机管理模块启动双景模式后,向切换控制模块发送双景启动消息。
S2816:发送双景UI切换完成消息。
上层的应用界面完成双景UI切换后,将双景UI切换完成消息发送至切换控制模块。至此,表明拍摄模式切换完成。
S2817:切换控制模块向转场控制模块发送停止转场动效指令。
切换至双景模式后,切换控制模块向转场控制模块发送停止转场动效指令。该停止转场动效可以理解为转场控制模块停止生成转场动效图像、停止向多摄编码模块和应用界面发送转场动效图像等,以便停止转场动效的编码和预览。
S2818:切换控制模块向多摄编码模块发送保持编码指令。
本申请实例在拍摄模式切换过程中控制多摄编码模块保持编码,以便将单景模式下拍摄的视频、转场动效和双景模式下拍摄的视频生成一个视频文件。
S2819:在应用界面内显示按照双景模式拍摄的视频画像。
拍摄模式切换完成后,在双景模式下进行视频拍摄,在应用界面内显示按照双景模式拍摄的视频画像。
S2820:对按照双景模式拍摄的视频进行编码。
在按照双景模式拍摄的过程中,对双景模式下拍摄的视频进行持续编码,最终将单景模式下拍摄的视频、转场动效和双景模式下拍摄的视频生成一个视频文件。
与上述方法实施例相对应,本申请还提供了一种电子设备,该电子设备用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被所述处理器执行时,触发所述电子设备执行上述方法实施例中的部分或全部步骤。
参见图29,为本申请实施例提供的一种电子设备的结构示意图。如图29所示,该电子设备2900可以包括处理器2910,外部存储器接口2920,内部存储器2921,通用串行总线(universal serial bus,USB)接口2930,充电管理模块2940,电源管理模块2941,电池2942,天线1,天线2,移动通信模块2950,无线通信模块2960,音频模块2970,扬声器2970A,受话器2970B,麦克风2970C,耳机接口2970D,传感器模块2980,按键2990,马达2991,指示器2992,摄像头2993,显示屏2994,以及用户标识模块(subscriber identification module,SIM)卡接口2995等。其中传感器模块2980可以包括压力传感器2980A,陀螺仪传感器2980B,气压传感器2980C,磁传感器2980D,加速度传感器2980E,距离传感器2980F,接近光传感器2980G,指纹传感器2980H,温度传感器2980J,触摸传感器2980K,环境光传感器2980L,骨传导传感器2980M等。
可以理解的是,本发明实施例示意的结构并不构成对电子设备2900的具体限定。在本申请另一些实施例中,电子设备2900可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器2910可以包括一个或多个处理单元,例如:处理器2910可以包括应用处理器 (application processor,AP),调制解调处理器,图形处理器(graphics processingunit, GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural- network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器2910中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器2910 中的存储器为高速缓冲存储器。该存储器可以保存处理器2910刚用过或循环使用的指令或数据。如果处理器2910需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器2910的等待时间,因而提高了系统的效率。
在一些实施例中,处理器2910可以包括一个或多个接口。接口可以包括集成电路(inter- integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S) 接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
I2C接口是一种双向同步串行总线,包括一根串行数据线(serial data line,SDA)和一根串行时钟线(derail clock line,SCL)。在一些实施例中,处理器2910可以包含多组I2C 总线。处理器2910可以通过不同的I2C总线接口分别耦合触摸传感器2980K,充电器,闪光灯,摄像头2993等。例如:处理器2910可以通过I2C接口耦合触摸传感器2980K,使处理器 2910与触摸传感器2980K通过I2C总线接口通信,实现电子设备2900的触摸功能。
I2S接口可以用于音频通信。在一些实施例中,处理器2910可以包含多组I2S总线。处理器2910可以通过I2S总线与音频模块2970耦合,实现处理器2910与音频模块2970之间的通信。在一些实施例中,音频模块2970可以通过I2S接口向无线通信模块2960传递音频信号,实现通过蓝牙耳机接听电话的功能。
PCM接口也可以用于音频通信,将模拟信号抽样,量化和编码。在一些实施例中,音频模块2970与无线通信模块2960可以通过PCM总线接口耦合。在一些实施例中,音频模块2970 也可以通过PCM接口向无线通信模块2960传递音频信号,实现通过蓝牙耳机接听电话的功能。所述I2S接口和所述PCM接口都可以用于音频通信。
UART接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,UART接口通常被用于连接处理器2910与无线通信模块2960。例如:处理器2910通过UART接口与无线通信模块2960中的蓝牙模块通信,实现蓝牙功能。在一些实施例中,音频模块2970可以通过UART接口向无线通信模块2960传递音频信号,实现通过蓝牙耳机播放音乐的功能。
MIPI接口可以被用于连接处理器2910与显示屏2994,摄像头2993等外围器件。MIPI接口包括摄像头串行接口(camera serial interface,CSI),显示屏串行接口(display serial interface,DSI)等。在一些实施例中,处理器2910和摄像头2993通过CSI接口通信,实现电子设备2900的拍摄功能。处理器2910和显示屏2994通过DSI接口通信,实现电子设备 2900的显示功能。
GPIO接口可以通过软件配置。GPIO接口可以被配置为控制信号,也可被配置为数据信号。在一些实施例中,GPIO接口可以用于连接处理器2910与摄像头2993,显示屏2994,无线通信模块2960,音频模块2970,传感器模块2980等。GPIO接口还可以被配置为I2C接口,I2S 接口,UART接口,MIPI接口等。
USB接口2930是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口, USB Type C接口等。USB接口2930可以用于连接充电器为电子设备2900充电,也可以用于电子设备2900与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他电子设备,例如AR设备等。
可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备2900的结构限定。在本申请另一些实施例中,电子设备2900也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块2940用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块2940可以通过USB接口2930接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块2940可以通过电子设备2900的无线充电线圈接收无线充电输入。充电管理模块2940为电池2942充电的同时,还可以通过电源管理模块2941为电子设备供电。
电源管理模块2941用于连接电池2942,充电管理模块2940与处理器2910。电源管理模块2941接收电池2942和/或充电管理模块2940的输入,为处理器2910,内部存储器2921,显示屏2994,摄像头2993,和无线通信模块2960等供电。电源管理模块2941还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块2941也可以设置于处理器2910中。在另一些实施例中,电源管理模块2941和充电管理模块2940也可以设置于同一个器件中。
电子设备2900的无线通信功能可以通过天线1,天线2,移动通信模块2950,无线通信模块2960,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备2900中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块2950可以提供应用在电子设备2900上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块2950可以包括至少一个滤波器,开关,功率放大器,低噪声放大器 (low noise amplifier,LNA)等。移动通信模块2950可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块2950还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块2950的至少部分功能模块可以被设置于处理器2910中。在一些实施例中,移动通信模块2950的至少部分功能模块可以与处理器2910的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器2970A,受话器2970B等)输出声音信号,或通过显示屏2994显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器2910,与移动通信模块2950或其他功能模块设置在同一个器件中。
无线通信模块2960可以提供应用在电子设备2900上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared, IR)等无线通信的解决方案。无线通信模块2960可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块2960经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器2910。无线通信模块2960还可以从处理器2910接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,电子设备2900的天线1和移动通信模块2950耦合,天线2和无线通信模块2960耦合,使得电子设备2900可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobilecommunications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(code division multiple access,CDMA),宽带码分多址(wideband codedivision multiple access,WCDMA),时分码分多址(time-division code divisionmultiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidou navigation satellite system,BDS),准天顶卫星系统(quasi-zenithsatellite system,QZSS)和/或星基增强系统 (satellite based augmentationsystems,SBAS)。
电子设备2900通过GPU,显示屏2994,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏2994和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器2910可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏2994用于显示图像,视频等。显示屏2994包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode, OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled, MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,电子设备2900可以包括1个或N个显示屏2994,N为大于1的正整数。
电子设备2900可以通过ISP,摄像头2993,视频编解码器,GPU,显示屏2994以及应用处理器等实现拍摄功能。
ISP用于处理摄像头2993反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头2993中。
摄像头2993用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体 (complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,电子设备2900可以包括1个或N个摄像头2993,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备2900在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。电子设备2900可以支持一种或多种视频编解码器。这样,电子设备2900可以播放或录制多种编码格式的视频,例如:动态图像专家组 (moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现电子设备2900的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
外部存储器接口2920可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备 2900的存储能力。外部存储卡通过外部存储器接口2920与处理器2910通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器2921可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器2921可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备2900使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器2921可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。处理器2910通过运行存储在内部存储器2921的指令,和/或存储在设置于处理器中的存储器的指令,执行电子设备2900的各种功能应用以及数据处理。
电子设备2900可以通过音频模块2970,扬声器2970A,受话器2970B,麦克风2970C,耳机接口2970D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块2970用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块2970还可以用于对音频信号编码和解码。在一些实施例中,音频模块2970可以设置于处理器2910中,或将音频模块2970的部分功能模块设置于处理器2910中。
扬声器2970A,也称“喇叭”,用于将音频电信号转换为声音信号。电子设备2900可以通过扬声器2970A收听音乐,或收听免提通话。
受话器2970B,也称“听筒”,用于将音频电信号转换成声音信号。当电子设备2900接听电话或语音信息时,可以通过将受话器2970B靠近人耳接听语音。
麦克风2970C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风2970C发声,将声音信号输入到麦克风2970C。电子设备2900可以设置至少一个麦克风2970C。在另一些实施例中,电子设备2900可以设置两个麦克风2970C,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,电子设备 2900还可以设置三个,四个或更多麦克风2970C,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。
耳机接口2970D用于连接有线耳机。耳机接口2970D可以是USB接口2930,也可以是3.5mm的开放移动电子设备平台(open mobile terminal platform,OMTP)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the USA,CTIA) 标准接口。
压力传感器2980A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器2980A可以设置于显示屏2994。压力传感器2980A的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器2980A,电极之间的电容改变。电子设备2900根据电容的变化确定压力的强度。当有触摸操作作用于显示屏2994,电子设备2900根据压力传感器2980A检测所述触摸操作强度。电子设备2900也可以根据压力传感器2980A的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。例如:当有触摸操作强度小于第一压力阈值的触摸操作作用于短消息应用图标时,执行查看短消息的指令。当有触摸操作强度大于或等于第一压力阈值的触摸操作作用于短消息应用图标时,执行新建短消息的指令。
陀螺仪传感器2980B可以用于确定电子设备2900的运动姿态。在一些实施例中,可以通过陀螺仪传感器2980B确定电子设备2900围绕三个轴(即,x,y和z轴)的角速度。陀螺仪传感器2980B可以用于拍摄防抖。示例性的,当按下快门,陀螺仪传感器2980B检测电子设备2900抖动的角度,根据角度计算出镜头模组需要补偿的距离,让镜头通过反向运动抵消电子设备2900的抖动,实现防抖。陀螺仪传感器2980B还可以用于导航,体感游戏场景。
气压传感器2980C用于测量气压。在一些实施例中,电子设备2900通过气压传感器2980C 测得的气压值计算海拔高度,辅助定位和导航。
磁传感器2980D包括霍尔传感器。电子设备2900可以利用磁传感器2980D检测翻盖皮套的开合。在一些实施例中,当电子设备2900是翻盖机时,电子设备2900可以根据磁传感器 2980D检测翻盖的开合。进而根据检测到的皮套的开合状态或翻盖的开合状态,设置翻盖自动解锁等特性。
加速度传感器2980E可检测电子设备2900在各个方向上(一般为三轴)加速度的大小。当电子设备2900静止时可检测出重力的大小及方向。还可以用于识别电子设备姿态,应用于横竖屏切换,计步器等应用。
距离传感器2980F,用于测量距离。电子设备2900可以通过红外或激光测量距离。在一些实施例中,拍摄场景,电子设备2900可以利用距离传感器2980F测距以实现快速对焦。
接近光传感器2980G可以包括例如发光二极管(LED)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。电子设备2900通过发光二极管向外发射红外光。电子设备2900 使用光电二极管检测来自附近物体的红外反射光。当检测到充分的反射光时,可以确定电子设备2900附近有物体。当检测到不充分的反射光时,电子设备2900可以确定电子设备2900附近没有物体。电子设备2900可以利用接近光传感器2980G检测用户手持电子设备2900贴近耳朵通话,以便自动熄灭屏幕达到省电的目的。接近光传感器2980G也可用于皮套模式,口袋模式自动解锁与锁屏。
环境光传感器2980L用于感知环境光亮度。电子设备2900可以根据感知的环境光亮度自适应调节显示屏2994亮度。环境光传感器2980L也可用于拍照时自动调节白平衡。环境光传感器2980L还可以与接近光传感器2980G配合,检测电子设备2900是否在口袋里,以防误触。
指纹传感器2980H用于采集指纹。电子设备2900可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
温度传感器2980J用于检测温度。在一些实施例中,电子设备2900利用温度传感器2980J 检测的温度,执行温度处理策略。例如,当温度传感器2980J上报的温度超过阈值,电子设备 2900执行降低位于温度传感器2980J附近的处理器的性能,以便降低功耗实施热保护。在另一些实施例中,当温度低于另一阈值时,电子设备2900对电池2942加热,以避免低温导致电子设备2900异常关机。在其他一些实施例中,当温度低于又一阈值时,电子设备2900对电池 2942的输出电压执行升压,以避免低温导致的异常关机。
触摸传感器2980K,也称“触控器件”。触摸传感器2980K可以设置于显示屏2994,由触摸传感器2980K与显示屏2994组成触摸屏,也称“触控屏”。触摸传感器2980K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏2994提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器2980K也可以设置于电子设备2900的表面,与显示屏2994所处的位置不同。
骨传导传感器2980M可以获取振动信号。在一些实施例中,骨传导传感器2980M可以获取人体声部振动骨块的振动信号。骨传导传感器2980M也可以接触人体脉搏,接收血压跳动信号。在一些实施例中,骨传导传感器2980M也可以设置于耳机中,结合成骨传导耳机。音频模块2970可以基于所述骨传导传感器2980M获取的声部振动骨块的振动信号,解析出语音信号,实现语音功能。应用处理器可以基于所述骨传导传感器2980M获取的血压跳动信号解析心率信息,实现心率检测功能。
按键2990包括开机键,音量键等。按键2990可以是机械按键。也可以是触摸式按键。电子设备2900可以接收按键输入,产生与电子设备2900的用户设置以及功能控制有关的键信号输入。
马达2991可以产生振动提示。马达2991可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏2994不同区域的触摸操作,马达2991也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
指示器2992可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
SIM卡接口2995用于连接SIM卡。SIM卡可以通过插入SIM卡接口2995,或从SIM卡接口2995拔出,实现和电子设备2900的接触和分离。电子设备2900可以支持1个或N个SIM 卡接口,N为大于1的正整数。SIM卡接口2995可以支持Nano SIM卡,Micro SIM卡,SIM卡等。同一个SIM卡接口2995可以同时插入多张卡。所述多张卡的类型可以相同,也可以不同。 SIM卡接口2995也可以兼容不同类型的SIM卡。SIM卡接口2995也可以兼容外部存储卡。电子设备2900通过SIM卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,电子设备2900采用eSIM,即:嵌入式SIM卡。eSIM卡可以嵌在电子设备2900中,不能和电子设备2900分离。
具体实现中,本申请还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行上述实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-onlymemory,简称:ROM)或随机存储记忆体(英文:random access memory,简称:RAM)等。
具体实现中,本申请实施例还提供了一种计算机程序产品,所述计算机程序产品包含可执行指令,当所述可执行指令在计算机上执行时,使得计算机执行上述方法实施例中的部分或全部步骤。
本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示单独存在A、同时存在A和B、单独存在B的情况。其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项”及其类似表达,是指的这些项中的任意组合,包括单项或复数项的任意组合。例如,a,b和c中的至少一项可以表示:a,b,c,a-b,a-c,b-c,或 a-b-c,其中a,b,c可以是单个,也可以是多个。
本领域普通技术人员可以意识到,本文中公开的实施例中描述的各单元及算法步骤,能够以电子硬件、计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,任一功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,简称 ROM)、随机存取存储器(random access memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。本发明的保护范围应以所述权利要求的保护范围为准。
Claims (19)
1.一种拍摄模式切换方法,其特征在于,包括:
按照第一拍摄模式进行视频拍摄,在预览界面内,显示所述第一拍摄模式拍摄的视频画面,所述预览界面还显示多个第二拍摄模式对应的控件,其中,所述第一拍摄模式为单摄模式,单摄模式下采用一个摄像头进行视频拍摄,通过第一监听模块和第二监听模块分别监听所述一个摄像头采集的视频图像,一个监听模块监听的视频图像用于预览渲染,一个监听模块监听的视频图像用于编码渲染;
在拍摄过程中,接收拍摄模式切换指令,所述拍摄模式切换指令用于指示将所述第一拍摄模式切换为第二拍摄模式,其中,所述第一拍摄模式与所述第二拍摄模式基于不同的摄像头进行拍摄,所述第二拍摄模式为多摄模式,多摄模式下采用两个或两个以上摄像头进行视频拍摄;
在所述预览界面内,将所述第一拍摄模式拍摄的视频画面切换为所述第二拍摄模式拍摄的视频画面;
其中,在拍摄过程中,接收拍摄模式切换指令,所述拍摄模式切换指令用于指示将所述第一拍摄模式切换为所述第二拍摄模式包括:在拍摄过程中,响应于对所述多个第二拍摄模式对应的控件的第一操作,执行以下步骤:
打开所述两个或两个以上摄像头,
通过所述第一监听模块监听第一摄像头采集的视频图像,通过所述第二监听模块监听第二摄像头采集的视频图像;
将所述第一拍摄模式对应的Surface切换为所述第二拍摄模式对应的Surface,其中,所述第二拍摄模式对应的Surface包括:所述第二拍摄模式对应的预览Surface,
对所述第一监听模块监听的第一摄像头采集的视频图像和所述第二监听模块监听的第二摄像头采集的视频图像进行渲染合并处理后,发送给所述预览Surface;
在所述预览界面内,将所述第一拍摄模式拍摄的视频画面切换为所述第二拍摄模式拍摄的视频画面,包括:
将所述第一拍摄模式对应的用户界面UI切换为所述第二拍摄模式对应的UI;
在所述第二拍摄模式对应的UI内显示所述预览Surface缓存的视频流对应的画面。
2.根据权利要求1所述的方法,其特征在于,所述在所述预览界面内,将所述第一拍摄模式拍摄的视频画面切换为所述第二拍摄模式拍摄的视频画面,包括:
在所述预览界面内,将所述第一拍摄模式拍摄的视频画面切换为转场动效画面;
在所述预览界面内,将所述转场动效画面切换为所述第二拍摄模式拍摄的视频画面。
3.根据权利要求2所述的方法,其特征在于,所述在所述预览界面内,将所述转场动效画面切换为所述第二拍摄模式拍摄的视频画面,包括:
在完成所有转场动效画面的显示后,将所述转场动效画面切换为所述第二拍摄模式拍摄的视频画面。
4.根据权利要求2所述的方法,其特征在于,所述在所述预览界面内,将所述转场动效画面切换为所述第二拍摄模式拍摄的视频画面,包括:
在获取到所述第二拍摄模式拍摄的视频画面后,将所述转场动效画面切换为所述第二拍摄模式拍摄的视频画面。
5.根据权利要求2所述的方法,其特征在于,所述方法还包括:
接收暂停拍摄操作,在所述预览界面内显示所述暂停拍摄操作对应的所述第一拍摄模式拍摄的视频画面、所述转场动效画面,或所述第二拍摄模式拍摄的视频画面。
6.根据权利要求1所述的方法,其特征在于,
所述在预览界面内,显示所述第一拍摄模式拍摄的视频画面,包括:获取所述第一拍摄模式对应的预览视频画面;在所述预览界面内,显示所述第一拍摄模式对应的预览视频画面;
和/或,
所述在所述预览界面内,将所述第一拍摄模式拍摄的视频画面切换为所述第二拍摄模式拍摄的视频画面,包括:获取所述第二拍摄模式对应的预览视频画面;在所述预览界面内,显示所述第二拍摄模式对应的预览视频画面。
7.根据权利要求1所述的方法,其特征在于,所述将所述第一监听模块监听的第一摄像头采集的视频图像和所述第二监听模块监听的第二摄像头采集的视频图像进行渲染合并处理,包括:
根据所述第一监听模块监听的第一摄像头采集的视频图像和所述第二监听模块监听的第二摄像头采集的视频图像的纹理信息、位置信息和合并策略,进行渲染合并处理。
8.根据权利要求7所述的方法,其特征在于,所述合并策略包括:
对所述两路或两路以上视频画面进行拼接;
和/或,
将所述两路或两路以上预览视频画面中的至少一路视频画面填充至所述两路或两路以上视频画面中的其它预览视频画面中。
9.根据权利要求2所述的方法,其特征在于,所述转场动效画面的显示时长与所述拍摄模式切换过程中的断流时长相匹配,所述断流时长为所述第一拍摄模式上报的最后一帧视频画面与所述第二拍摄模式上报的第一帧视频画面的时间差。
10.根据权利要求2或5所述的方法,其特征在于,所述方法还包括:
在拍摄过程中,对所述第一拍摄模式拍摄的视频画面进行编码;
对所述转场动效画面进行编码;
对所述第二拍摄模式拍摄的视频画面进行编码;
接收停止拍摄指令,生成视频文件,所述视频文件包括所述第一拍摄模式拍摄的视频画面、所述转场动效画面和所述第二拍摄模式拍摄的视频画面;
存储所述视频文件。
11.根据权利要求10所述的方法,其特征在于,所述对所述转场动效画面进行编码,包括:
在完成所述第一拍摄模式拍摄的视频画面的编码后,对所述转场动效画面进行编码。
12.根据权利要求10所述的方法,其特征在于,所述对所述第二拍摄模式拍摄的视频画面进行编码,包括:
在完成所有转场动效画面的编码后,对所述第二拍摄模式拍摄的视频画面进行编码。
13.根据权利要求10所述的方法,其特征在于,所述方法还包括:
接收暂停拍摄操作,暂停对所述暂停拍摄操作对应的所述第一拍摄模式拍摄的视频画面、所述转场动效画面,或所述第二拍摄模式拍摄的视频画面的编码。
14.根据权利要求13所述的方法,其特征在于,所述方法还包括:
接收开始拍摄操作,开始对所述暂停拍摄操作对应的所述第一拍摄模式拍摄的视频画面、所述转场动效画面,或所述第二拍摄模式拍摄的视频画面的编码。
15.根据权利要求10所述的方法,其特征在于,
所述对所述第一拍摄模式拍摄的视频画面进行编码,包括:获取所述第一拍摄模式对应的编码视频画面;对所述编码视频画面进行编码;
和/或,
所述对所述第二拍摄模式拍摄的视频画面进行编码,包括:获取所述第二拍摄模式对应的编码视频画面;对所述编码视频画面进行编码。
16.根据权利要求15所述的方法,其特征在于,
所述获取所述第一拍摄模式对应的编码视频画面,包括:对所述第一拍摄模式对应的预览视频画面进行复制,获得所述第一拍摄模式对应的编码视频画面;
和/或,
所述获取第二拍摄模式对应的编码视频画面,包括:对所述第二拍摄模式对应的预览视频画面进行复制,获得所述第二拍摄模式对应的编码视频画面。
17.根据权利要求10所述的方法,其特征在于,
所述转场动效画面的编码时长与所述拍摄模式切换过程中的断流时长相匹配,所述断流时长为所述第一拍摄模式上报的最后一帧视频画面与所述第二拍摄模式上报的第一帧视频画面的时间差。
18.一种电子设备,其特征在于,包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被所述处理器执行时,触发所述电子设备执行权利要求1-17任一项所述的方法。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行权利要求1-17中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110676716.3A CN113422903B (zh) | 2021-06-16 | 2021-06-16 | 拍摄模式切换方法、设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110676716.3A CN113422903B (zh) | 2021-06-16 | 2021-06-16 | 拍摄模式切换方法、设备、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113422903A CN113422903A (zh) | 2021-09-21 |
CN113422903B true CN113422903B (zh) | 2023-01-03 |
Family
ID=77789048
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110676716.3A Active CN113422903B (zh) | 2021-06-16 | 2021-06-16 | 拍摄模式切换方法、设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113422903B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110784674B (zh) | 2019-10-30 | 2022-03-15 | 北京字节跳动网络技术有限公司 | 视频处理的方法、装置、终端及存储介质 |
WO2021083146A1 (zh) | 2019-10-30 | 2021-05-06 | 北京字节跳动网络技术有限公司 | 视频处理方法、装置、终端及存储介质 |
CN116126202A (zh) * | 2021-11-12 | 2023-05-16 | Oppo广东移动通信有限公司 | 界面显示方法、装置以及电子设备 |
CN114245005A (zh) * | 2021-11-29 | 2022-03-25 | 荣耀终端有限公司 | 一种电子设备的控制方法、装置以及相关设备 |
WO2023124200A1 (zh) * | 2021-12-27 | 2023-07-06 | 北京荣耀终端有限公司 | 视频处理方法与电子设备 |
CN114268741B (zh) * | 2022-02-24 | 2023-01-31 | 荣耀终端有限公司 | 转场动效生成方法、电子设备和存储介质 |
CN114626975A (zh) * | 2022-03-21 | 2022-06-14 | 北京字跳网络技术有限公司 | 数据处理方法、装置、设备、存储介质和程序产品 |
CN114745507A (zh) * | 2022-04-28 | 2022-07-12 | 维沃移动通信有限公司 | 拍摄方法、装置、电子设备和可读存储介质 |
CN117425065A (zh) * | 2022-07-06 | 2024-01-19 | 荣耀终端有限公司 | 一种拍摄方法及相关设备 |
CN117425057A (zh) | 2022-07-07 | 2024-01-19 | 抖音视界(北京)有限公司 | 用于影像拍摄的方法、装置、设备和存储介质 |
CN115334246A (zh) | 2022-09-06 | 2022-11-11 | 抖音视界有限公司 | 用于影像拍摄的方法、装置、设备和存储介质 |
CN117956269A (zh) * | 2022-10-27 | 2024-04-30 | 荣耀终端有限公司 | 一种摄像头切换方法及相关电子设备 |
WO2024117744A1 (ko) * | 2022-11-28 | 2024-06-06 | 삼성전자 주식회사 | 카메라를 포함하는 전자 장치 및 그 동작 방법 |
CN117173304A (zh) * | 2023-06-05 | 2023-12-05 | 北京虹宇科技有限公司 | 三维内容多人协同方法、装置、系统及设备 |
CN116916530B (zh) * | 2023-09-12 | 2023-12-08 | 荣耀终端有限公司 | 电路板、电路板组件及电子设备 |
CN117424958B (zh) * | 2023-09-15 | 2024-06-07 | 荣耀终端有限公司 | 相机显示界面的切换方法、电子设备、芯片系统及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110381276A (zh) * | 2019-05-06 | 2019-10-25 | 华为技术有限公司 | 一种视频拍摄方法及电子设备 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9325889B2 (en) * | 2012-06-08 | 2016-04-26 | Samsung Electronics Co., Ltd. | Continuous video capture during switch between video capture devices |
GB2520319A (en) * | 2013-11-18 | 2015-05-20 | Nokia Corp | Method, apparatus and computer program product for capturing images |
CN103841326B (zh) * | 2014-02-26 | 2017-05-17 | 宇龙计算机通信科技(深圳)有限公司 | 拍摄录像的方法及装置 |
CN105391965B (zh) * | 2015-11-05 | 2018-09-07 | 广东欧珀移动通信有限公司 | 基于多摄像头的视频录制方法及装置 |
CN105554386A (zh) * | 2015-12-23 | 2016-05-04 | 努比亚技术有限公司 | 一种移动终端及其控制摄像头拍摄的方法 |
CN106331478A (zh) * | 2016-08-22 | 2017-01-11 | 维沃移动通信有限公司 | 一种视频拍摄的方法和移动终端 |
CN109429037B (zh) * | 2017-09-01 | 2021-06-29 | 杭州海康威视数字技术股份有限公司 | 一种图像处理方法、装置、设备及系统 |
CN107820006A (zh) * | 2017-11-07 | 2018-03-20 | 北京小米移动软件有限公司 | 控制摄像头摄像的方法及装置 |
CN108200341A (zh) * | 2018-01-15 | 2018-06-22 | 青岛海信移动通信技术股份有限公司 | 摄像头的无缝切换方法、装置及终端设备 |
CN112954219A (zh) * | 2019-03-18 | 2021-06-11 | 荣耀终端有限公司 | 一种多路录像方法及设备 |
CN111885305B (zh) * | 2020-07-28 | 2022-04-29 | Oppo广东移动通信有限公司 | 预览画面处理方法及装置、存储介质和电子设备 |
-
2021
- 2021-06-16 CN CN202110676716.3A patent/CN113422903B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110381276A (zh) * | 2019-05-06 | 2019-10-25 | 华为技术有限公司 | 一种视频拍摄方法及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113422903A (zh) | 2021-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113422903B (zh) | 拍摄模式切换方法、设备、存储介质 | |
CN110072070B (zh) | 一种多路录像方法及设备、介质 | |
CN113473005B (zh) | 拍摄中转场动效插入方法、设备、存储介质 | |
CN111316598B (zh) | 一种多屏互动方法及设备 | |
WO2022262313A1 (zh) | 基于画中画的图像处理方法、设备、存储介质和程序产品 | |
WO2020192458A1 (zh) | 一种图像处理的方法及头戴式显示设备 | |
CN111327814A (zh) | 一种图像处理的方法及电子设备 | |
CN113747060B (zh) | 图像处理的方法、设备、存储介质 | |
CN113475057A (zh) | 一种录像帧率的控制方法及相关装置 | |
CN114489533A (zh) | 投屏方法、装置、电子设备及计算机可读存储介质 | |
CN113596321B (zh) | 转场动效的生成方法、设备和存储介质 | |
CN113935898A (zh) | 图像处理方法、系统、电子设备及计算机可读存储介质 | |
CN115463419A (zh) | 图像的预测方法、电子设备和存储介质 | |
CN112085647A (zh) | 一种人脸校正方法及电子设备 | |
CN114339429A (zh) | 音视频播放控制方法、电子设备和存储介质 | |
CN116051351B (zh) | 一种特效处理方法和电子设备 | |
CN113965693B (zh) | 一种视频拍摄方法、设备和存储介质 | |
CN113852755A (zh) | 拍摄方法、设备、计算机可读存储介质及程序产品 | |
CN114827098A (zh) | 合拍的方法、装置、电子设备和可读存储介质 | |
CN113810595B (zh) | 视频拍摄的编码方法、设备和存储介质 | |
CN113923351B (zh) | 多路视频拍摄的退出方法、设备和存储介质 | |
CN114630007A (zh) | 显示同步的方法、电子设备以及可读存储介质 | |
CN113596320B (zh) | 视频拍摄变速录制方法、设备、存储介质 | |
CN115412678A (zh) | 曝光处理方法、装置及电子设备 | |
CN115145517A (zh) | 一种投屏方法、电子设备和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |