CN113365139A - 一种基于iOS系统的视频录制方法、装置以及存储介质 - Google Patents

一种基于iOS系统的视频录制方法、装置以及存储介质 Download PDF

Info

Publication number
CN113365139A
CN113365139A CN202010138753.4A CN202010138753A CN113365139A CN 113365139 A CN113365139 A CN 113365139A CN 202010138753 A CN202010138753 A CN 202010138753A CN 113365139 A CN113365139 A CN 113365139A
Authority
CN
China
Prior art keywords
audio
target
system time
video
data
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.)
Granted
Application number
CN202010138753.4A
Other languages
English (en)
Other versions
CN113365139B (zh
Inventor
伍旭
林福源
刘楠
林伟勋
薛丰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202010138753.4A priority Critical patent/CN113365139B/zh
Publication of CN113365139A publication Critical patent/CN113365139A/zh
Application granted granted Critical
Publication of CN113365139B publication Critical patent/CN113365139B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4334Recording operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software
    • H04N21/818OS software
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Television Signal Processing For Recording (AREA)

Abstract

本申请公开了一种基于iOS系统的视频录制方法、装置以及存储介质,用于视频处理技术领域。本申请方法包括:接收视频录制请求;接收视频录制请求;接收录制停止请求;通过视频录制请求以及录制停止请求,获取目标图片数据;通过视频录制请求以及录制停止请求,确定音频播放信息;通过音频播放信息,获取目标音频数据;基于目标图片数据以及目标音频数据,生成目标合成视频;展示目标合成视频。由于目标音频数据是通过音频播放信息确定的,而该音频播放信息提供更为准确的时间信息,因此可以提升目标音频数据的准确度,从而可以提升所生成的目标合成视频的准确度,由此提升了视频录制的稳定性。

Description

一种基于iOS系统的视频录制方法、装置以及存储介质
技术领域
本申请涉及视频处理技术领域,尤其涉及一种基于iOS系统的视频录制方法、装置以及存储介质。
背景技术
随着科学技术的发展,以及人们生活水平的提高,各种应用程序可以被人们广泛的应用。例如,游戏应用程序以及画图应用程序。而在游戏应用程序的使用过程中,游戏用户可以将进行游戏时产生的画面以及音频录制成视频,保存至本地或是上传该视频到共享服务器或者平台当中去进行直播,供游戏用户间交流使用。在画图应用程序的使用过程中,画图用户也可以将进行画图时产生的画面录制成视频,保存至本地供画图用户进行观看。
目前,可以获取到音频数据和图像数据,然后通过音频数据和图像数据生成视频文件,完成视频录制。其中,在获取音频数据时,可以按照预设频率获取固定时长的音频数据,每个固定时长的音频数据可以作为一个音频单元,然后为每个音频单元标记时间戳,这样在将音频单元和图像数据的图像单元进行合成时,可以将时间差小于预设的时间差阈值的音频单元和图像单元进行合成。
然而,当音频数据的获取收到干扰时,例如音频获取线程较为忙碌或者其他线程占用系统资源执行突发任务,音频数据中所标记的音频单元的时间戳会与实际采集时间相差较大,降低音频数据获取的准确度,由此降低所生成的视频文件的准确度,从而降低了视频录制的稳定性。
发明内容
本申请实施例提供了一种基于iOS系统的视频录制方法、装置以及存储介质,由于目标音频数据是通过音频播放信息确定的,而该音频播放信息提供更为准确的时间信息,因此可以提升目标音频数据的准确度,从而可以提升所生成的目标合成视频的准确度,由此提升了视频录制的稳定性。
有鉴于此,本申请第一方面提供一种基于iOS系统的视频录制方法,包括:
接收视频录制请求,其中,视频录制请求在第一系统时间发送;
接收录制停止请求,其中,录制停止请求在第二系统时间发送;
通过视频录制请求以及录制停止请求,获取目标图片数据,其中,目标图片数据为第一系统时间与第二系统时间之间所产生的全部图片数据;
通过视频录制请求以及录制停止请求,确定音频播放信息;
通过音频播放信息,获取目标音频数据,其中,目标音频数据为第一系统时间与第二系统时间之间所产生的音频数据;
基于目标图片数据以及目标音频数据,生成目标合成视频;
展示目标合成视频。
本申请第二方面提供一种视频录制装置,包括:
接收模块,用于接收视频录制请求,其中,视频录制请求在第一系统时间发送;
接收模块,还用于接收录制停止请求,其中,录制停止请求在第二系统时间发送;
获取模块,用于通过接收模块接收到的视频录制请求以及录制停止请求,获取目标图片数据,其中,目标图片数据为第一系统时间与第二系统时间之间所产生的全部图片数据;
确定模块,用于通过视频录制请求以及录制停止请求,确定音频播放信息;
获取模块,还用于通过确定模块确定的音频播放信息,获取目标音频数据,其中,目标音频数据为第一系统时间与第二系统时间之间所产生的音频数据;
生成模块,用于基于获取模块获取到的目标图片数据以及目标音频数据,生成目标合成视频;
展示模块,用于展示目标合成视频。
在一种可能的设计中,在本申请实施例的第二方面的一种实现方式中,
获取模块,具体用于:
通过视频录制请求,确定第一图片帧,其中,第一图片帧为第一系统时间对应的图片帧;
通过视频停止请求,确定第二图片帧,其中,第二图片帧为第二系统时间对应的图片帧;
基于第一图片帧以及第二图片帧,获取目标图片数据。
在一种可能的设计中,在本申请实施例的第二方面的另一种实现方式中,
获取模块,具体用于:
通过视频录制请求,确定音频初始系统时间,其中,音频初始系统时间大于或者等于第一系统时间,音频播放信息包括音频初始系统时间;
通过视频停止请求,确定音频停止系统时间,其中,音频停止系统时间小于或者等于第二系统时间,音频播放信息包括音频停止系统时间;
通过视频录制请求以及录制停止请求,获取初始音频数据,其中,初始音频数据包括音频播放信息;
通过音频播放信息,从初始音频数据中确定目标音频数据,其中,目标音频数据为音频初始系统时间以及音频停止系统时间之间所产生的全部音频数据。
在一种可能的设计中,在本申请实施例的第二方面的另一种实现方式中,
生成模块,具体用于:
若音频初始系统时间等于第一系统时间,且音频停止系统时间等于第二系统时间,则将目标图片数据以及目标音频数据进行合成处理,生成目标合成视频,其中,目标合成视频包括第一系统时间与第二系统时间之间所产生的全部图片数据,目标合成视频包括第一系统时间与第二系统时间之间所产生的全部音频数据。
在一种可能的设计中,在本申请实施例的第二方面的另一种实现方式中,
生成模块,具体用于:
若音频初始系统时间等于第一系统时间,且音频停止系统时间不等于第二系统时间,则通过目标图片数据以及目标音频数据计算得到第一数据偏移量,其中,第一数据偏移量为音频停止系统时间与第二系统时间之间的偏移量;
基于第一数据偏移量,将目标图片数据以及目标音频数据进行合成处理,生成目标合成视频,其中,目标合成视频包括第一系统时间与第二系统时间之间所产生的全部图片数据,目标合成视频包括第一系统时间与音频停止系统时间之间所产生的全部音频数据。
在一种可能的设计中,在本申请实施例的第二方面的另一种实现方式中,
生成模块,具体用于:
若音频初始系统时间不等于第一系统时间,且音频停止系统时间等于第二系统时间,则通过目标图片数据以及目标音频数据计算得到第二数据偏移量,其中,第二数据偏移量为音频初始系统时间与第一系统时间之间的偏移量;
基于第二数据偏移量,将目标图片数据以及目标音频数据进行合成处理,生成目标合成视频,其中,目标合成视频包括第一系统时间与第二系统时间之间所产生的全部图片数据,目标合成视频包括音频初始系统时间与第二系统时间之间所产生的全部音频数据。
在一种可能的设计中,在本申请实施例的第二方面的另一种实现方式中,
生成模块,具体用于:
若音频初始系统时间不等于第一系统时间,且音频停止系统时间不等于第二系统时间,则通过目标图片数据以及目标音频数据计算得到第三数据偏移量,其中,第三数据偏移量包括音频初始系统时间与第一系统时间之间的偏移量,以及音频停止系统时间与第二系统时间之间的偏移量;
基于第三数据偏移量,将目标图片数据以及目标音频数据进行合成处理,生成目标合成视频,其中,目标合成视频包括第一系统时间与第二系统时间之间所产生的全部图片数据,目标合成视频包括音频初始系统时间以及音频停止系统时间之间所产生的全部音频数据。
在一种可能的设计中,在本申请实施例的第二方面的另一种实现方式中,
接收模块,具体用于通过录制开始接口接收视频录制请求,其中,录制开始接口展示于目标客户端。
在一种可能的设计中,在本申请实施例的第二方面的另一种实现方式中,
接收模块,具体用于通过录制停止接口接收录制停止请求,其中,录制停止接口展示于目标客户端。
在一种可能的设计中,在本申请实施例的第二方面的另一种实现方式中,
展示模块,具体用于:
通过离开接口接收离开指令,展示用户界面,其中,用户界面包括视频应用选择接口;
通过视频应用选择接口接收选择指令,展示视频界面,其中,视频界面包括目标合成视频;
在视频界面接收视频选择指令,展示目标合成视频,其中,视频选择指令指示选择目标合成视频,且对目标合成视频进行展示。
本申请的第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请实施例中,提供了一种基于iOS系统的视频录制方法,首先可以接收到在第二系统时间发送的接收录制停止请求,以及第二系统时间在发送的录制停止请求,然后通过视频录制请求以及录制停止请求,获取目标图片数据,该目标图片数据为第一系统时间与第二系统时间之间所产生的全部图片数据,还可以通过视频录制请求以及录制停止请求,确定音频播放信息,再基于该音频播放信息获取目标音频数据,该目标音频数据为第一系统时间与第二系统时间之间所产生的音频数据,进一步地,基于目标图片数据以及目标音频数据,生成目标合成视频,最后展示目标合成视频。通过上述方式,由于可以通过视频录制请求以及录制停止请求,获取到目标图片数据,在视频录制结束时,即可通过图片数据以及音频数据生成目标合成视频,由于目标音频数据是通过音频播放信息确定的,而该音频播放信息提供更为准确的时间信息,因此可以提升目标音频数据的准确度,从而可以提升所生成的目标合成视频的准确度,由此提升了视频录制的稳定性。
附图说明
图1为本申请实施例中基于iOS系统的视频录制系统的一个架构示意图;
图2为本申请实施例中基于iOS系统的视频录制方法一个实施例示意图;
图3(A)为本申请实施例中获取目标图片数据一个流程示意图;
图3(B)为本申请实施例中获取目标图片数据另一流程示意图;
图4为本申请实施例中获取目标音频数据一个实施例示意图;
图5(A)为本申请实施例中获取目标音频数据另一实施例示意图;
图5(B)为本申请实施例中获取目标音频数据另一实施例示意图;
图5(C)为本申请实施例中获取目标音频数据另一实施例示意图;
图6为本申请实施例中获取目标音频数据另一实施例示意图;
图7为本申请实施例中获取目标音频数据另一实施例示意图;
图8(A)为本申请实施例中生成目标合成视频一个实施例示意图;
图8(B)为本申请实施例中生成目标合成视频另一实施例示意图;
图8(C)为本申请实施例中生成目标合成视频另一实施例示意图;
图8(D)为本申请实施例中生成目标合成视频另一实施例示意图;
图9为本申请实施例中基于iOS系统的视频录制方法一个界面示意图;
图10为本申请实施例中基于iOS系统的视频录制方法另一界面示意图;
图11为本申请实施例中展示目标合成视频一个流程示意图;
图12为本申请实施例中视频录制装置一个实施例示意图;
图13为本申请实施例中终端设备一个实施例示意图。
具体实施方式
本申请实施例提供了一种基于iOS系统的视频录制方法、装置以及存储介质,由于目标音频数据是通过音频播放信息确定的,而该音频播放信息提供更为准确的时间信息,因此可以提升目标音频数据的准确度,从而可以提升所生成的目标合成视频的准确度,由此提升了视频录制的稳定性。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“对应于”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应理解,本申请实施例可以应用于基于iOS系统的视频录制的场景,对于iOS系统而言,由于iOS系统的封闭性以及API的严格管控,通过特定的游戏引擎或者私有API的方法进行视频录制,无法通过iOS系统的审核完成录制。而该场景可以为基于开放式图形库(open graphics library,OpenGL)的应用场景,其中OpenGL是可以用于渲染二维(2dimension,2D)矢量图形以及三维(3dimension,3D)矢量图形的跨语言、跨平台的应用程序编程接口(application programming interface,API),也可以说OpenGL是一个功能强大,调用方便的底层图形库。OpenGL包括但不限于有建模、变换、颜色模式设置、光照和材质设置、纹理映射(Texture Mapping)以及双缓存动画(Double Buffering)的功能,并且OpenGL独立于窗口系统和操作系统,以它为基础开发的应用程序可以便捷地在各平台间移植,OpenGL还可以与Microsoft Visual C++紧密接口,从而提升机械手的有关计算和图形算法实现的便捷性,由此保证算法的正确性和可靠性。并且OpenGL可以通过审核应用于iOS系统,因此在iOS系统中对基于OpenGL的应用场景进行视频录制,可以提升数据获取的效率,并且还可以提升数据获取的准确度以及可靠性,从而提升视频录制的稳定性。
具体地,以应用于iOS系统中基于OpenGL的小游戏应用程序作为一个示例进行说明,小游戏应用程序可以包括但不限于动作类小游戏、益智类小游戏、射击类小游戏、冒险类小游戏、棋牌类小游戏、策略类小游戏、敏捷类小游戏以及休闲类小游戏等,当小游戏应用程序的用户在进行游戏时,需要对用户所作出的精彩操作进行视频录制时,则可以通过操作发出视频录制请求,而该用户需要对操作停止视频录制时,则可以再通过操作发出录制停止请求,然后通过视频录制请求以及录制停止请求,获取目标图片数据以及目标音频数据,并且还可以再通过该目标图片数据以及该目标音频数据,生成目标合成视频,从而完成对操作的视频录制,且还可以向该用户展示该目标合成视频,使得用户可以观看录制下用户精彩操作的视频。
目前,在iOS系统中可以通过所获取到的音频数据和图像数据生成视频文件,完成视频录制。而获取音频数据时,可以按照预设频率获取固定时长的音频数据,每个固定时长的音频数据可以作为一个音频单元,然后为每个音频单元标记时间戳,这样在将音频单元和图像数据的图像单元进行合成时,可以将时间差小于预设的时间差阈值的音频单元和图像单元进行合成。然而,当音频数据的获取收到干扰时,例如音频获取线程较为忙碌或者其他线程占用系统资源执行突发任务,音频数据中所标记的音频单元的时间戳会与实际采集时间相差较大,降低音频数据获取的准确度,由此降低所生成的视频文件的准确度,从而降低了视频录制的稳定性。
为了在上述场景中,提升视频录制的稳定性,本申请提出了一种视频录制方法,该方法应用于图1所示的视频录制系统,请参阅图1,图1为本申请实施例中基于iOS系统的视频录制系统的一个架构示意图,如图所示,视频录制系统中包括服务器和终端设备。而视频录制装置可以部署于服务器,也可以部署于具有较高计算力的终端设备,下面将以视频录制装置部署于具有较高计算力的终端设备为例进行介绍。
具体地,在进行视频录制时,首先可以接收到在第二系统时间发送的接收录制停止请求,以及第二系统时间在发送的录制停止请求,然后通过视频录制请求以及录制停止请求,获取目标图片数据,该目标图片数据为第一系统时间与第二系统时间之间所产生的全部图片数据,还可以通过视频录制请求以及录制停止请求,确定音频播放信息,再基于该音频播放信息获取目标音频数据,该目标音频数据为第一系统时间与第二系统时间之间所产生的音频数据,进一步地,基于目标图片数据以及目标音频数据,生成目标合成视频,最后展示目标合成视频。由于可以通过视频录制请求以及录制停止请求,获取到目标图片数据,在视频录制结束时,即可通过图片数据以及音频数据生成目标合成视频,而目标音频数据是通过音频播放信息确定的,该音频播放信息提供更为准确的时间信息,因此可以提升目标音频数据的准确度,从而可以提升所生成的目标合成视频的准确度,由此提升了视频录制的稳定性。
服务器和终端设备之间可以通过无线网络、有线网络或可移动存储介质进行通信。其中,上述的无线网络使用标准通信技术和/或协议。无线网络通常为因特网、但也可以是任何网络,包括但不限于蓝牙、局域网(Local Area Network,LAN)、城域网(Metropolitan Area Network,MAN)、广域网(Wide Area Network,WAN)、移动、专用网络或者虚拟专用网络的任何组合)。在一些实施例中,可以使用定制或专用数据通信技术取代或者补充上述数据通信技术。可移动存储介质可以为通用串行总线(Universal Serial Bus,USB)闪存盘、移动硬盘或其他可移动存储介质等。
其中,图1中的服务器可以是一台服务器或多台服务器组成的服务器集群或云计算中心等,具体此处均不限定。终端设备可以为图1中示出的平板电脑、笔记本电脑、掌上电脑、手机、个人电脑(personal computer,PC)及语音交互设备,也可以为监控设备、人脸识别设备等,此处不做限定。其中,语音交互设备包含但不仅限于智能音响以及智能家电。
虽然图1中仅示出了五个终端设备和一个服务器,但应当理解,图1中的示例仅用于理解本方案,具体终端设备和服务器的数量均应当结合实际情况灵活确定。
结合上述介绍,下面将对本申请中视频录制方法进行介绍,请参阅图2,图2为本申请实施例中基于iOS系统的视频录制方法一个实施例示意图,如图所示,本申请实施例中视频录制方法一个实施例包括:
101、接收视频录制请求,其中,视频录制请求在第一系统时间发送;
本实施例中,当用户需要进行视频录制时,则视频录制装置可以接收到第一系统时间发送的接收视频录制请求。为了便于理解,以第一系统时间为12时00分00秒作为一个示例进行说明,则接收视频录制请求的时间是12时00分00秒。以第一系统时间为8时30分45秒作为另一个示例进行说明,则接收视频录制请求的时间是8时30分45秒。可以理解的是,本实施例的示例仅用于理解本方案,具体第一系统时间应当结合实际情况灵活确定。
需要说明的是,视频录制装置可以部署于服务器,也可以部署于终端设备,本申请中以视频录制装置部署于终端设备为例进行说明,然而这不应理解为对本申请的限定。
102、接收录制停止请求,其中,录制停止请求在第二系统时间发送;
本实施例中,当用户需要停止视频录制时,则视频录制装置可以接收第二系统时间发送的录制停止请求。以第二系统时间为12时00分30秒作为一个示例进行说明,则接收录制停止请求的时间是12时00分30秒。以第二系统时间为8时31分45秒作为另一个示例进行说明,则接收视频录制请求的时间是8时31分45秒。应当理解的是,本实施例的示例仅用于理解本方案,具体第二系统时间应当结合实际情况灵活确定。
103、通过视频录制请求以及录制停止请求,获取目标图片数据,其中,目标图片数据为第一系统时间与第二系统时间之间所产生的全部图片数据;
本实施例中,视频录制装置可以通过步骤101以及步骤102所获取到的视频录制请求以及录制停止请求,获取目标图片数据,并且该目标图片数据为第一系统时间与第二系统时间之间所产生的全部图片数据。为了便于理解,以第一系统时间为12时00分00秒,且第二系统时间为12时00分30秒作为示例进行说明,那么可以获取到12时00分00秒至12时00分30秒之间产生的包括多个图片帧的图片数据,而该图片数据即为目标图片数据。可以理解的是,本实施例的示例仅用于理解本方案,目标图片数据需要以第一系统时间与第二系统时间确定,因此具体目标图片数据应当结合实际情况灵活确定。
104、通过视频录制请求以及录制停止请求,确定音频播放信息;
本实施例中,视频录制装置还可以通过步骤101以及步骤102所获取到的视频录制请求以及录制停止请求,确定音频播放信息。
105、通过音频播放信息,获取目标音频数据,其中,目标音频数据为第一系统时间与第二系统时间之间所产生的音频数据;
本实施例中,在通过步骤104确定音频播放信息之后,视频录制装置还可以通过该音频播放信息,获取目标音频数据,该目标音频数据为第一系统时间与第二系统时间之间所产生的音频数据。
具体地,应用于iOS系统中的小游戏应用程序时,在进行游戏过程中,当游戏逻辑监测到例如发生碰撞、子弹射击或者收获金币的音频调用操作时,才会调用音频播放接口播放目标音频,而游戏用户需要进行视频录制,而游戏逻辑并未监测的音频调用操作时,则不会在第一系统时间对音频数据进行获取。为了便于理解,以第一系统时间为8时30分45秒,且第二系统时间为8时31分45秒作为示例进行说明,若游戏逻辑在8时30分30秒监测到音频调用操作,也就是说在接收视频录制请求之前,音频播放接口已播放目标音频,则可以获取到8时30分45秒至8时31分45秒之间产生的时长为1分钟的音频数据,而该音频数据即为目标音频数据。其次,若游戏逻辑在8时31分00秒监测到音频调用操作,也就是说在接收视频录制请求之后,音频播放接口才对目标音频进行播放,则可以获取到8时31分00秒至8时31分45秒之间产生的时长为45秒的音频数据,而该音频数据即为目标音频数据。
其次,本实施例中可以通过前述方式调用音频播放接口播放目标音频,然后获取目标音频数据外,还可以调用私有API获取目标音频数据,为了便于理解,本申请实施例中采用调用音频播放接口播放目标音频获取目标音频数据的方法,然而这不应当理解为对本实施例的限定。且应当理解的是,本实施例的示例仅用于理解本方案,具体目标音频数据应当结合实际情况灵活确定。
可以理解的是,前述步骤103以及步骤105并无时序限定,也就是说步骤103以及步骤105可以同时发生,获取步骤103以及步骤105还可以具有先后顺序的发生,具体时序应当结合实际情况灵活确定,步骤103以及步骤105的时序不应理解为对本申请的限定。
106、基于目标图片数据以及目标音频数据,生成目标合成视频;
本实施例中,视频录制装置可以基于步骤103以及步骤105所获取到的目标图片数据以及目标音频数据,生成目标合成视频。具体地,通过前述步骤完成了图片数据的获取以及音频数据的获取,然后需要对目标图片数据以及目标音频数据进行合成处理。为了便于理解,以应用于小游戏应用程序为示例进行说明,在进行游戏过程中,当游戏逻辑监测到音频调用操作时,才会调用音频播放接口播放目标音频,而检测操作至调用的过程会产生延时,在小游戏应用程序的场景下,该延迟可以被接受,因此对于小游戏应用程序实现视频的音画同步允许带有一定误差。具体地,音画同步的方法可以包括但不限于基于系统时钟的同步、音频同步图片以及图片同步音频等,应用于小游戏应用程序时,本实施例采用基于系统时钟的弱同步即可。
107、展示目标合成视频。
本实施例中,通过步骤106获取到目标合成视频之后,视频录制装置还可以对目标合成视频进行展示。
本申请实施例中,提供了一种基于iOS系统的视频录制方法,通过上述方式,由于可以通过视频录制请求以及录制停止请求,获取到目标图片数据,在视频录制结束时,即可通过图片数据以及音频数据生成目标合成视频,由于目标音频数据是通过音频播放信息确定的,而该音频播放信息提供更为准确的时间信息,因此可以提升目标音频数据的准确度,从而可以提升所生成的目标合成视频的准确度,由此提升了视频录制的稳定性。
可选地,在上述图2对应的实施例的基础上,本申请实施例提供的基于iOS系统的视频录制的方法一个可选实施例中,通过视频录制请求以及录制停止请求,获取目标图片数据,可以包括:
通过视频录制请求,确定第一图片帧,其中,第一图片帧为第一系统时间对应的图片帧;
通过视频停止请求,确定第二图片帧,其中,第二图片帧为第二系统时间对应的图片帧;
基于第一图片帧以及第二图片帧,获取目标图片数据。
本实施例中,视频录制请求在第一系统时间发送,因此视频录制装置可以通过视频录制请求,确定第一系统时间对应的图片帧,而该图片帧即可以被确定为第一图片帧。其次,录制停止请求在第二系统时间发送,因此视频录制装置可以通过视频停止请求,确定第二系统时间对应的图片帧,而该图片帧即可以被确定为第二图片帧。然后通过确定的第一图片帧以及第二图片帧,获取到包括第一图片帧以及第二图片帧之间的所有图片帧,即可以获取到第一系统时间与第二系统时间之间所产生的全部图片数据,由此可以获取到目标图片数据。
具体地,本实施例可以先在iOS系统中创建一个离屏的OpenGL渲染场景,然后通过视频录制请求,确定第一系统时间对应的图片帧为第一图片帧,再通过录制停止请求,确定第二系统时间对应的图片帧的第二图片帧,将第一图片帧至第二图片帧之间的所有图片帧(包括第一图片帧以及第二图片帧)确定为帧缓冲对象(frame buffer object,FBO),然后将FBO保存到纹理当中,然后再把这个纹理渲染到离屏FBO,最后按一定的时间间隔从离屏FBO里面获取像素数据填入像素缓冲(PixelBuffer)当中,然后基于第一系统时间以及第二系统时间给像素数据打上时间戳,从而获取到目标图片数据,其中,一定时间间隔为人为设置的时间间隔,例如若用户想录制60帧的视频,则该时间间隔可以为1/60秒,若用户想录制30帧的视频,则该时间间隔可以为1/30秒。进一步地,本实施还可以通过图形处理器(graphics processing unit,GPU)并行的方式获取离屏纹理,并且用着色器(shader)实现像素数据的缩小或者放大等处理,因此可以提升目标图片数据的获取效率,从而提升视频录制的效率。
其次,由于本实施例可以应用于iOS系统,通过前述介绍可以得知获取目标图片数据时需要从离屏FBO里面获取像素数据填入像素缓冲当中,具体地,可以将离屏FBO中的像素数据通过iOS系统中的glReadPixel读取到内存中,然后再将像素数据从内存中拷贝到像素缓冲当中。其次,还可以通过CVOpenGLESTextureCacheCreateTextureFromImage建立像素缓冲和纹理的内存映射来减少拷贝,然后将离屏FBO绑定到已建立映射的纹理,从而离屏FBO可以通过映射确定像素缓冲,由此将像素数据填入像素缓冲,能进一步地提升目标图片数据的获取效率,从而提升视频录制的效率。
进一步地,为了在展示所生成的目标合成视频在过程中播放流畅,本实施例中最低录制帧率不低于15帧,也就是对于目标图像数据而言,每秒内图像帧的数量不低于15。其次,为了减小性能损耗,最高录制帧率不高于刷新频率,例如小游戏应用程序中最高刷新频率为60帧,也就是对于目标图像数据而言,每秒内图像帧的数量不高于60。
为了便于理解,请参阅图3(A),图3(A)为本申请实施例中获取目标图片数据一个流程示意图,如图所示,步骤A1通过视频录制请求以及录制停止请求确定帧缓冲对象的步骤与前述类似,在此不再赘述。然后步骤A2将帧缓冲对象保存到纹理当中,步骤A3再把该纹理渲染到离屏帧缓冲对象,步骤A4可以根据前述的时间间隔将离屏帧缓冲对象中的像素数据通过glReadPixel读取到内存中,然后步骤A5再将像素数据内存中拷贝到像素缓冲当中,步骤A6则可以通过视频录制请求以及录制停止请求确定第一系统时间以及第二系统时间,然后步骤A7基于给第一系统时间以及第二系统时间给像素数据打上时间戳,从而获取到目标图片数据。
其次,请参阅图3(B),图3(B)为本申请实施例中获取目标图片数据另一流程示意图,如图所示,步骤B1通过视频录制请求以及录制停止请求确定帧缓冲对象的步骤与前述类似,在此不再赘述。然后步骤B2将帧缓冲对象保存到纹理当中,步骤B3再把该纹理渲染到离屏帧缓冲对象,而通过CVOpenGLESTextureCacheCreateTextureFromImage建立像素缓冲和纹理的内存映射来减少拷贝,然后将离屏帧缓冲对象绑定到已建立映射的纹理,步骤B4则可以根据前述的时间间隔将离屏帧缓冲对象中的像素数据通过glReBdPixel读取到内存中,然后步骤B5再将离屏帧缓冲对象可以通过映射确定像素缓冲,由此将像素数据填入像素缓冲,步骤B5则可以通过视频录制请求以及录制停止请求确定第一系统时间以及第二系统时间,然后步骤B6即可基于给第一系统时间以及第二系统时间给像素数据打上时间戳,从而获取到目标图片数据。
本申请实施例中,提供了一种获取目标图片数据的方法,通过帧缓冲对象保存至纹理,通过纹理渲染到离屏帧缓冲对象,并且基于第一系统时间以及第二系统时间给离屏帧缓冲对象中的像素数据打上时间戳,获取目标图片数据,通过上述方式,可以提升目标图片数据的获取效率,从而提升视频录制的效率。
可选地,在上述图2对应的实施例的基础上,本申请实施例提供的基于iOS系统的视频录制的方法另一个可选实施例中,通过音频播放信息,获取目标音频数据,可以包括:
通过视频录制请求,确定音频初始系统时间,其中,音频初始系统时间大于或者等于第一系统时间,音频播放信息包括音频初始系统时间;
通过录制停止请求,确定音频停止系统时间,其中,音频停止系统时间小于或者等于第二系统时间,音频播放信息包括音频停止系统时间;
通过视频录制请求以及录制停止请求,获取初始音频数据,其中,初始音频数据包括音频播放信息;
通过音频播放信息,从初始音频数据中确定目标音频数据,其中,目标音频数据为音频初始系统时间以及音频停止系统时间之间所产生的全部音频数据。
本实施例中,视频录制装置可以通过视频录制请求,确定音频初始系统时间,该音频初始系统时间大于或者等于第一系统时间,且音频播放信息包括音频初始系统时间。其次,通过录制停止请求,确定音频停止系统时间,该音频停止系统时间小于或者等于第二系统时间,且音频播放信息包括音频停止系统时间。然后再通过所确定的视频录制请求以及录制停止请求,获取包括音频播放信息的初始音频数据,最后即可通过音频播放信息,从初始音频数据中确定目标音频数据,该目标音频数据为音频初始系统时间以及音频停止系统时间之间所产生的全部音频数据。
具体地,应用于iOS系统中的小游戏应用程序时,在进行游戏过程中,当iOS系统中的的游戏逻辑监测到音频调用操作时,才会调用音频播放接口播放目标音频,而游戏用户需要进行视频录制,而游戏逻辑并未监测的音频调用操作时,则不会在第一系统时间对音频数据进行获取。为了便于理解,以第一系统时间为8时30分45秒,第二系统时间为8时31分45秒,音频初始系统时间为8时31分00秒,音频停止系统时间为8时31分30秒作为示例进行说明,即游戏逻辑在8时31分00秒监测到音频调用操作,音频播放接口播放目标音频,在视频录制过程中,音频播放接口在8时31分30秒停止播放目标音频,那么我们可以获取到8时31分00秒至8时31分30秒之间产生的时长为30秒的初始音频数据,初始音频数据包括有音频播放信息,通过音频播放信息可以获取到8时31分00秒至8时31分30秒之间的目标音频数据。
进一步地,当游戏逻辑监测到音频调用操作时,被调用的音频播放接口可以包括但不限于播放(play)接口、暂停(pause)接口、停止(stop)接口以及搜寻(seek)接口。本实施例中可以调用(hook)音频播放的接口,多个接口进行调用所差产生的播放信息都可以被记录到音频播放信息中。该音频播放信息可以为时间音频分割(TT Audio Segment)结构,为了便于理解,请参阅图4,图4为本申请实施例中获取目标音频数据一个实施例示意图,如图所示,时间音频分割结构中可以包括音频存放路径(path)、音频时长(duration)、循环(loop)、音频初始时间(begin SysTime)、音频停止时间(end SysTime)、音频播放时间(begin Time)、音频播放进度(current Time)。其中path可以指示初始音频数据的存放路径,duration则可以指示被调用的音频播放接口播放目标音频的时长,loop可以指示该目标音频是否为循环播放(例如loop为1则指示该目标音频为循环播放,loop为0则指示该目标音频不为循环播放),begin Time为目标音频开始播放时的系统时间,end SysTime为目标音频结束播放时的系统时间,begin Time为接收视频录制请求时,目标音频播放到第几秒,而current Time为目标音频当前播放进度。
再进一步地,获取到包括音频播放信息的初始音频数据之后,需要要提取第一系统时间至第二系统时间内产生的音频数据。为了便于理解,以第一系统时间为Tv1,第二系统时间为Tv2,音频初始系统时间为Ta1,音频停止系统时间为Ta2为示例进行说明。若音频初始系统时间等于第一系统时间,且音频停止系统时间等于第二系统时间,即Tv1=Ta1且Tv2=Ta2,则可以确定接收视频录制请求时目标音频正开始播放或者已经开始播放,而接收录制停止请求时目标音频正停止播放或者还未停止播放,为了进一步地理解本实施例,以接收视频录制请求时目标音频正开始播放,且接收录制停止请求时目标音频正停止播放为示例进行说明,请参阅图5(A),图5(A)为本申请实施例中获取目标音频数据另一实施例示意图,如图所示,C1表示初始音频数据,且C1表示目标音频数据。
其次,以接收视频录制请求时目标音频已经开始播放,且接收录制停止请求时目标音频还未停止播放为示例进行说明,请参阅图5(B),图5(B)为本申请实施例中获取目标音频数据另一实施例示意图,如图所示,真正录制时间段是[Tv1,Tv2],而D1表示初始音频数据,那么其余时间段的音频数据都应该被剔除,首先是剔除开始录制前的音频数据D2,当开始录制时,枚举所有的音频播放信息,更新其音频初始时间为第一系统时间,然后将目标音频当前播放进度赋值给begin Time,例如目标音频当前播放进度为3s,则begin Time即为3s,相当于重新创建了从Tv1时刻开始的音频播放信息。本实施例介绍的为仅包括一个音频数据播放的示例,而在实际应用中,在录制过程中如果有新的目标音频播放,则创建新的音频播放信息对象,如果完成了一次播放,则将音频播放信息加入完成队列。当结束录制时,枚举当前还没结束的音频播放信息,记录音频停止时间,并将其加入完成队列。然后从初始音频数据D1中剔除开始录制前的音频数据D2,即可得到目标音频数据D3。
再次,若音频初始系统时间不等于第一系统时间,且音频停止系统时间不等于第二系统时间,即Tv1≠Ta1且Tv2≠Ta2,则确定接收视频录制请求时目标音频还未开始播放,而还未接收到录制停止请求时目标音频已经停止播放,为了进一步地理解本实施例,请参阅图5(C),图5(C)为本申请实施例中获取目标音频数据另一实施例示意图,如图所示,E1表示初始音频数据,且E1也表示目标音频数据。
再进一步地,通过前述步骤,队列里面保存了录制过程所有的音频播放信息,但是前述示例的音频播放信息结构主要是便于记录时设计的,但不便于后续混音处理,因此可以将这些音频播放信息映射成更加简洁的时间音频组成单元。请参阅图6,图6为本申请实施例中获取目标音频数据另一实施例示意图,如图所示,时间音频组成单元中可以包括音频存放路径(path)、音频初始时间(begin SysTime)、音频播放时间(begin Time)以及音频播放时长(play Time)。其中path可以指示初始音频数据的存放路径,begin SysTime为目标音频开始播放时的系统时间,begin Time为接收视频录制请求时,目标音频播放到第几秒,而play Time为目标音频播放时长。
具体地,将时间音频分割结构映射为时间音频组成单元可以分为两种情况,即目标音频非循环播放(loop为0)以及目标音频循环播放(loop为1),下面分别对两种情况进行介绍。
1、音频非循环播放;
时间音频组成单元中的音频存放路径、音频初始时间以及音频播放时间与时间音频分割结构中的指示相同,而时间音频组成单元中的音频播放时长为{时间音频分割结构中音频播放进度与音频播放时间之间的差,时间音频分割结构中的音频停止时间与音频初始时间之间的差}中的最小值。
2、音频循环播放;
当音频循环播放时,假设循环播放了N遍(其中N为大于等于1的整数),那么一个时间音频分割结构可以被划分成N个时间音频组成单元。
以第i遍的音频播放时长为Ti为示例进行说明,则第一遍的音频播放时长为时间音频分割结构中音频时长与音频播放时间的差值,第二遍至第N-1遍的音频播放时长对应为时间音频分割结构中的音频时长,而第N遍的音频播放时长为时间音频分割结构中的音频停止时间与音频初始时间的差,再减去第一遍至第N-1遍的音频播放时长。其次,以第i遍的音频播放时间为Si为示例进行说明,则第一遍的音频播放时间为时间音频分割结构中的时间音频分割结构,而第二遍至第N遍的音频播放时间均为0。通过前述步骤得到Ti和Si之后,则可以计算出每遍音频开始播放时的音频初始时间,记每遍开始播放时的音频初始时间为Gi,则第一遍的音频初始时间为时间音频分割结构中的音频初始时间,而第i遍的音频初始时间可以根据下列公式进行计算:
Gi=Gi-1+Ti-1(i>1);
再进一步地,前述方法介绍的为音频播放接口仅播放一个目标音频的场景,而在实际应用中,监测到不同的音频调用操作,例如应用于小游戏应用程序时,在进行游戏过程中,当游戏逻辑监测到发生碰撞时,则音频播放接口播放目标音频A。当游戏逻辑监测到子弹射击时,则音频播放接口播放目标音频B。当游戏逻辑监测到收获金币时,则音频播放接口播放目标音频C,即目标音频数据中应该包括3个不同的音频数据。在录制过程中,音频播放接口播放有3种不同的目标音频,而其中还含有可循环播放的目标音频,因此可以获取到多个包括有音频播放信息的初始音频数据,而为每个音频播放信息都创建混音的输入总线(input bus)效率较低,可以理解的是,很多音频播放信息都有相同的path,也就是说他们是相同的目标音频在不同时间段的播放。因此,可以建立基于path的链表,链表的每个节点表示一次播放,那么混音时的总线数目就可以减少到和path数目一样。
进一步地,为了便于理解,请参阅图7,图7为本申请实施例中获取目标音频数据另一实施例示意图,如图所示,例如目标音频A可以获取到3个音频数据,而三个音频数据中包括的音频播放信息都有相同的path,因此可以将目标音频A所对应的音频数据记录为音频数据1,同理可得,目标音频B所获取到音频数据为音频数据2,目标音频C所获取到音频数据为音频数据3,然后音频数据1至音频数据3通过对应的单挑输入总线输入至混合单元,获取到混音后数据,然后混合单元再将该混音数据输入至通用输出单元(GenericOutputUnit),通用输出单元需要人工手动实现,即可以创建一个离线的渲染线程,然后在条件(while)循环中执行AudioUnitRender函数,AudioUnitRender函数可以驱动通用输出单元向其input scope索要数据。而通用输出单元索要数据最终会触发混合单元的输入回调,然后通过枚举音频播放信息,可以算出音频初始时间Ts1和音频停止时间Ts2,进而可以得到混音后的音频时长duration=Ts1-Ts2,如果音频采样率设置成R,那么混音后的音频总共有R*duration帧,当前已填入的帧数除以总共的帧数就可以得到混音进度,计为目标音频当前播放进度。而path相同的音频播放信息被划分在一组,以链表的形式存储。链表每个节点对应一个音频播放信息。从左至右,音频播放信息的音频初始时间是递增的。已知混音进度为目标音频当前播放进度。枚举所有音频播放信息的音频初始时间,找到最小值记为Gs,Gs即为开始混音时的系统时间。Gs与目标音频当前播放进度之和即为当前的系统时间,记为Gcurrent,从左到右枚举链表节点,第一个满足“音频初始时间小于等于Gcurrent且Gcurrent小于等于音频初始时间与音频播放时长之和”的节点即是要找的节点。由此即可完成混音,获取目标音频数据。
可以理解的是,本实施例的示例仅用于理解本方案,具体目标音频数据应当结合实际情况灵活确定。
本申请实施例中,提供了一种获取目标音频数据的方法,可以通过音频播放信息,从初始音频数据中确定目标音频数据,即可以通过音频播放信息包括的不同信息,通过上述方式,用不同的方式确定目标音频数据,提升了本方案的可实现性以及灵活性。
可选地,在上述图2对应的实施例的基础上,本申请实施例提供的基于iOS系统的视频录制的方法另一个可选实施例中,基于目标图片数据以及目标音频数据,生成目标合成视频,可以包括:
若音频初始系统时间等于第一系统时间,且音频停止系统时间等于第二系统时间,则将目标图片数据以及目标音频数据进行合成处理,生成目标合成视频,其中,目标合成视频包括第一系统时间与第二系统时间之间所产生的全部图片数据,目标合成视频包括第一系统时间与第二系统时间之间所产生的全部音频数据。
本实施例中,当音频初始系统时间等于第一系统时间,且音频停止系统时间等于第二系统时间时,由于此时目标音频数据为包括第一系统时间与第二系统时间之间所产生的全部音频数据,则视频录制装置可以将目标图片数据以及目标音频数据进行合成处理,从而生成目标合成视频,该目标合成视频可以包括第一系统时间与第二系统时间之间所产生的全部图片数据,且该目标合成视频还可以包括第一系统时间与第二系统时间之间所产生的全部音频数据。具体地,由于音画同步的方法包括但不限于基于系统时钟的同步、音频同步图片、图片同步音频等方法,若以应用于小游戏应用场景为示例,则本实施例的音画同步的方法采用基于系统时钟的弱同步即可。
为了便于理解,以第一系统时间为Tv1,第二系统时间为Tv2,音频初始系统时间为Ta1,音频停止系统时间为Ta2为示例进行说明。请参阅图8(A),图8(A)为本申请实施例中生成目标合成视频一个实施例示意图,如图所示,在开始视频录制的时候,获取到第一系统时间Tv1,也记录下音频初始系统时间Ta1,当完成视频录制的时候,获取到第二系统时间Tv2,也记录下音频停止系统时间Ta2,由于本实施例中Tv1=Ta1且Tv2=Ta2,因此对于系统时钟而言,目标图片数据F1以及目标音频数据F2并无系统时钟差异,即可以使用AVMutableComposition将目标图片数据F1以及目标音频数据F2进行合成处理,生成目标合成视频F3。可以理解的是,图8(A)中的示例仅用于理解本方案,具体生成目标视频应当结合实际情况灵活确定。
可选地,在上述图2对应的实施例的基础上,本申请实施例提供的基于iOS系统的视频录制的方法另一个可选实施例中,基于目标图片数据以及音频数据,生成目标合成视频,可以包括:
若音频初始系统时间等于第一系统时间,且音频停止系统时间不等于第二系统时间,则通过目标图片数据以及目标音频数据计算得到第一数据偏移量,其中,第一数据偏移量为音频停止系统时间与第二系统时间之间的偏移量;
基于第一数据偏移量,将目标图片数据以及目标音频数据进行合成处理,生成目标合成视频,其中,目标合成视频包括第一系统时间与第二系统时间之间所产生的全部图片数据,目标合成视频包括第一系统时间与音频停止系统时间之间所产生的全部音频数据。
本实施例中,当音频初始系统时间等于第一系统时间,且音频停止系统时间不等于第二系统时间时,则视频录制装置可以计算得到目标图片数据以及目标音频数据的第一数据偏移量,该第一数据偏移量为音频停止系统时间与第二系统时间之间的偏移量,并且还可以确定此时目标音频数据为包括第一系统时间与音频停止系统时间之间所产生的全部音频数据,然后再基于该第一数据偏移量,将目标图片数据以及目标音频数据进行合成处理,生成目标合成视频,该目标合成视频可以包括第一系统时间与第二系统时间之间所产生的全部图片数据,且该目标合成视频还可以包括第一系统时间与音频停止系统时间之间所产生的全部音频数据。
为了便于理解,以第一系统时间为Tv1,第二系统时间为Tv2,音频初始系统时间为Ta1,音频停止系统时间为Ta2为示例进行说明。请参阅图8(B),图8(B)为本申请实施例中生成目标合成视频另一实施例示意图,如图所示,在开始视频录制的时候,获取到第一系统时间Tv1,也记录下音频初始系统时间Ta1,而在录制过程中目标音频停止播放,因此音频数据停止获取,确定目标音频停止播放的时刻,确定为音频停止系统时间Ta2,当完成视频录制的时候,获取到第二系统时间Tv2,由于本实施例中Tv1=Ta1而Tv2≠Ta2,因此对于系统时钟而言,需要计算目标图片数据G1以及目标音频数据G2之间数据偏移量。如图8(B)可知,数据偏移量为音频停止系统时间Ta2与第二系统时间Tv2之间产生的数据偏移量G3,因此可以计算得到第一数据偏移量G3,然后再基于第一数据偏移量G3,使用AVMutableComposition将目标图片数据G1以及目标音频数据G2进行合成处理,生成目标合成视频G4。应当理解,图8(B)中的示例仅用于理解本方案,具体生成目标视频应当结合实际情况灵活确定。
可选地,在上述图2对应的实施例的基础上,本申请实施例提供的基于iOS系统的视频录制的方法另一个可选实施例中,基于目标图片数据以及音频数据,生成目标合成视频,可以包括:
若音频初始系统时间不等于第一系统时间,且音频停止系统时间等于第二系统时间,则通过目标图片数据以及目标音频数据计算得到第二数据偏移量,其中,第二数据偏移量为音频初始系统时间与第一系统时间之间的偏移量;
基于第二数据偏移量,将目标图片数据以及目标音频数据进行合成处理,生成目标合成视频,其中,目标合成视频包括第一系统时间与第二系统时间之间所产生的全部图片数据,目标合成视频包括音频初始系统时间与第二系统时间之间所产生的全部音频数据。
本实施例中,当音频初始系统时间不等于第一系统时间,且音频停止系统时间等于第二系统时间时,则视频录制装置可以计算得到目标图片数据以及目标音频数据的第二数据偏移量,该第二数据偏移量为音频初始系统时间与第一系统时间之间的偏移量,并且还可以确定此时目标音频数据为包括音频初始系统时间与第二系统时间之间所产生的全部音频数据,然后再基于第二数据偏移量,将目标图片数据以及目标音频数据进行合成处理,生成目标合成视频,该目标合成视频可以包括第一系统时间与第二系统时间之间所产生的全部图片数据,且该目标合成视频还可以包括音频初始系统时间与第二系统时间之间所产生的全部音频数据。
为了便于理解,以第一系统时间为Tv1,第二系统时间为Tv2,音频初始系统时间为Ta1,音频停止系统时间为Ta2为示例进行说明。请参阅图8(C),图8(C)为本申请实施例中生成目标合成视频另一实施例示意图,如图所示,在开始视频录制的时候,获取到第一系统时间Tv1,目标音频还未播放,当游戏逻辑监测到音频调用操作时,调用音频播放接口播放目标音频,并且记录下播放目标音频时的音频初始系统时间Ta1,当完成视频录制的时候,获取到第二系统时间Tv2,也记录下音频停止系统时间Ta2,由于本实施例中Tv1≠Ta1而Tv2=Ta2,因此对于系统时钟而言,需要计算目标图片数据H1以及目标音频数据H2之间数据偏移量。如图8(C)可知,数据偏移量为第一系统时间Tv1与音频初始系统时间Ta1之间产生的数据偏移量H3,因此可以计算得到第二数据偏移量H3,然后再基于第二数据偏移量H3,使用AVMutableComposition将目标图片数据H1以及目标音频数据H2进行合成处理,生成目标合成视频H4。应当理解,图8(C)中的示例仅用于理解本方案,具体生成目标视频应当结合实际情况灵活确定。
可选地,在上述图2对应的实施例的基础上,本申请实施例提供的基于iOS系统的视频录制的方法另一个可选实施例中,基于目标图片数据以及音频数据,生成目标合成视频,可以包括:
若音频初始系统时间不等于第一系统时间,且音频停止系统时间不等于第二系统时间,则通过目标图片数据以及目标音频数据计算得到第三数据偏移量,其中,第三数据偏移量包括音频初始系统时间与第一系统时间之间的偏移量,以及音频停止系统时间与第二系统时间之间的偏移量;
基于第三数据偏移量,将目标图片数据以及目标音频数据进行合成处理,生成目标合成视频,其中,目标合成视频包括第一系统时间与第二系统时间之间所产生的全部图片数据,目标合成视频包括音频初始系统时间以及音频停止系统时间之间所产生的全部音频数据。
本实施例中,当音频初始系统时间不等于第一系统时间,且音频停止系统时间不等于第二系统时间时,则视频录制装置可以计算得到目标图片数据以及目标音频数据的第三数据偏移量,其中,第三数据偏移量可以包括音频初始系统时间与第一系统时间之间的偏移量,以及音频停止系统时间与第二系统时间之间的偏移量,然后再基于第三数据偏移量,将目标图片数据以及目标音频数据进行合成处理,生成目标合成视频,该目标合成视频可以包括第一系统时间与第二系统时间之间所产生的全部图片数据,且该目标合成视频还可以包括音频初始系统时间以及音频停止系统时间之间所产生的全部音频数据。
为了便于理解,以第一系统时间为Tv1,第二系统时间为Tv2,音频初始系统时间为Ta1,音频停止系统时间为Ta2为示例进行说明。请参阅图8(D),图8(D)为本申请实施例中生成目标合成视频另一实施例示意图,如图所示,在开始视频录制的时候,获取到第一系统时间Tv1,目标音频还未播放,当游戏逻辑监测到音频调用操作时,调用音频播放接口播放目标音频,并且记录下播放目标音频时的音频初始系统时间Ta1,而在录制过程中目标音频停止播放,因此音频数据停止获取,确定目标音频停止播放的时刻,确定为音频停止系统时间Ta2,当完成视频录制的时候,获取到第二系统时间Tv2,由于本实施例中Tv1≠Ta1而Tv2≠Ta2,因此对于系统时钟而言,需要计算目标图片数据I1以及目标音频数据I2之间数据偏移量。如图8(C)可知,数据偏移量包括第一系统时间Tv1与音频初始系统时间Ta1之间产生的数据偏移量I31,以及第二系统时间Tv2与音频停止系统时间Ta2之间产生的数据偏移量I32,因此可以得到包括I31以及I32的第三数据偏移量,然后再基于包括I31以及I32第二数据偏移量,使用AVMutableComposition将目标图片数据I1以及目标音频数据I2进行合成处理,生成目标合成视频I4。可以理解的是,图8(D)中的示例仅用于理解本方案,具体生成目标视频应当结合实际情况灵活确定。
本申请实施例中,提供了一种生成目标合成视频的方法,通过上述方式,由于目标音频数据可以通过不同的方式确定,因此基于目标图片数据以及音频数据,也可以通过不同的方式生成目标合成视频,由此提升了生成目标合成视频的灵活性。
可选地,在上述图2对应的实施例的基础上,本申请实施例提供的基于iOS系统的视频录制的方法另一个可选实施例中,接收视频录制请求,可以包括:
通过录制开始接口接收视频录制请求,其中,录制开始接口展示于目标客户端。
本实施例中,目标客户端可以展示录制开始接口,而视频录制装置则可以通过该录制开始接口接口接收视频录制请求。为了便于理解,以应用于小游戏应用程序为示例进行说明,请参阅图9,图9为本申请实施例中基于iOS系统的视频录制方法一个界面示意图,如图所示,目标客户端J1上展示有录制开始接口J2,当用户需要进行对目标客户端J1所展示的小游戏操作视频进行录制时,用户可以对录制开始接口J2进行操作,该操作包括但不限于接触操作以及滑动操作,由此可以通过录制开始接口J2接收视频录制请求。可以理解的是,图9中的示例仅用于理解本方案,具体录制开始接口的位置、形状以及大小均应当结合实际情况灵活确定。
本申请实施例中,提供了一种接收视频录制请求的方法,具体通过录制开始接口接收视频录制请求,进一步提高了本方案的可实现性。
可选地,在上述图2对应的实施例的基础上,本申请实施例提供的基于iOS系统的视频录制的方法另一个可选实施例中,接收录制停止请求,可以包括:
通过录制停止接口接收录制停止请求,其中,录制停止接口展示于目标客户端。
本实施例中,目标客户端可以展示录制停止接口,视频录制装置则可以通过该录制停止接口接收录制停止请求。为了便于理解,以应用于小游戏应用程序为示例进行说明,请参阅图10,图10为本申请实施例中基于iOS系统的视频录制方法另一界面示意图,如图所示,目标客户端K1上展示有录制停止接口K2,当用户需要停止对目标客户端K1所展示的小游戏操作视频录制时,用户可以对录制停止接口K2进行操作,由此可以通过录制停止接口K2接收视频录制请求。可以理解的是,图10中的示例仅用于理解本方案,具体录制停止接口的位置、形状以及大小均应当结合实际情况灵活确定。
本申请实施例中,提供了一种接收录制停止请求的方法,通过上述方式,具体通过录制停止接口接收视频录制请求,进一步提高了本方案的可执行性。
可选地,在上述图2对应的实施例的基础上,本申请实施例提供的基于iOS系统的视频录制的方法另一个可选实施例中,展示目标合成视频,可以包括:
通过离开接口接收离开指令,展示用户界面,其中,用户界面包括视频应用选择接口;
通过视频应用选择接口接收选择指令,展示视频界面,其中,视频界面包括目标合成视频;
在视频界面接收视频选择指令,展示目标合成视频,其中,视频选择指令指示选择目标合成视频,且对目标合成视频进行展示。
本实施例中,视频录制装置可以通过离开接口接收离开指令,并且展示用户界面,该用户界面中包括视频应用选择接口,再通过该视频应用选择接口接收选择指令,展示视频界面,该视频界面种包括目标合成视频,然后在视频界面接收视频选择指令,展示目标合成视频,该视频选择指令可以指示选择目标合成视频,并且对目标合成视频进行展示。
为了便于理解,以应用于小游戏应用程序为示例进行说明,请参阅图11,图11为本申请实施例中展示目标合成视频一个流程示意图,如图所示,图11中(A)所示出的为完成目标合成视频录制的界面,该界面包括有离开接口L1,因此步骤S1可以通过离开接口L1接收离开指令,并且展示用户界面如图11中(B)所示出的用户界面,而该用户界面中包括视频应用选择接口L2,可以理解的是,该用户界面中还可以包括图如图11中(B)所示出的短消息应用选择接口,电话应用选择接口,设置选择接口,相机应用选择接口以及日历应用选择接口。进一步地,步骤S2可以通过视频应用选择接口接收选择指令,并且展示如图11中(C)所示出的视频界面,该视频界面中包括目标合成视频L3,然后步骤S3可以在如图11中(C)所示出的视频界面视频界面接收视频选择指令,视频选择指令可以指示选择目标合成视频L3,并且可以展示出如图11中(D)所示出的目标合成视频。可以理解的是,图11中的示例仅用于理解本方案,不应理解为对本申请的限定。
本申请实施例中,提供了一种展示目标合成视频的方法,可以通过离开接口接收离开指令,展示用户界面,再通过用户界面包括的视频应用选择接口接收选择指令,展示包括目标合成视频的视频界面,在视频界面接收视频选择指令,展示目标合成视频,通过上述方式,具体介绍展示目标合成视频的流程,再次提高了本方案的可实现性以及可执行性。
下面对本申请中的视频录制装置进行详细描述,请参阅图12,图12为本申请实施例中视频录制装置一个实施例示意图,视频录制装置20包括:
接收模块201,用于接收视频录制请求,其中,视频录制请求在第一系统时间发送;
接收模块201,还用于接收录制停止请求,其中,录制停止请求在第二系统时间发送;
获取模块202,用于通过接收模块接收到的视频录制请求以及录制停止请求,获取目标图片数据,其中,目标图片数据为第一系统时间与第二系统时间之间所产生的全部图片数据;
确定模块203,用于通过视频录制请求以及所述录制停止请求,确定音频播放信息;
获取模块202,还用于通过确定模块确定的音频播放信息,获取目标音频数据,其中,目标音频数据为第一系统时间与第二系统时间之间所产生的音频数据;
生成模块204,用于基于获取模块获取到的目标图片数据以及目标音频数据,生成目标合成视频;
展示模块205,用于展示目标合成视频。
可选地,在上述图12所对应的实施例的基础上,本申请实施例提供的视频录制装置20的一个实施例中,
获取模块202,具体用于:
通过视频录制请求,确定第一图片帧,其中,第一图片帧为第一系统时间对应的图片帧;
通过录制停止请求,确定第二图片帧,其中,第二图片帧为第二系统时间对应的图片帧;
基于第一图片帧以及第二图片帧,获取目标图片数据。
可选地,在上述图12所对应的实施例的基础上,本申请实施例提供的视频录制装置20的另一实施例中,
获取模块202,具体用于:
通过视频录制请求,确定音频初始系统时间,其中,音频初始系统时间大于或者等于第一系统时间,音频播放信息包括音频初始系统时间;
通过录制停止请求,确定音频停止系统时间,其中,音频停止系统时间小于或者等于第二系统时间,音频播放信息包括音频停止系统时间;
通过视频录制请求以及录制停止请求,获取初始音频数据,其中,初始音频数据包括音频播放信息;
通过音频播放信息,从初始音频数据中确定目标音频数据,其中,目标音频数据为音频初始系统时间以及音频停止系统时间之间所产生的全部音频数据。
可选地,在上述图12所对应的实施例的基础上,本申请实施例提供的视频录制装置20的另一实施例中,
生成模块204,具体用于:
若音频初始系统时间等于第一系统时间,且音频停止系统时间等于第二系统时间,则将目标图片数据以及目标音频数据进行合成处理,生成目标合成视频,其中,目标合成视频包括第一系统时间与第二系统时间之间所产生的全部图片数据,目标合成视频包括第一系统时间与第二系统时间之间所产生的全部音频数据。
可选地,在上述图12所对应的实施例的基础上,本申请实施例提供的视频录制装置20的另一实施例中,
生成模块204,具体用于:
若音频初始系统时间等于第一系统时间,且音频停止系统时间不等于第二系统时间,则通过目标图片数据以及目标音频数据计算得到第一数据偏移量,其中,第一数据偏移量为音频停止系统时间与第二系统时间之间的偏移量;
基于第一数据偏移量,将目标图片数据以及目标音频数据进行合成处理,生成目标合成视频,其中,目标合成视频包括第一系统时间与第二系统时间之间所产生的全部图片数据,目标合成视频包括第一系统时间与音频停止系统时间之间所产生的全部音频数据。
可选地,在上述图12所对应的实施例的基础上,本申请实施例提供的视频录制装置20的另一实施例中,
生成模块204,具体用于:
若音频初始系统时间不等于第一系统时间,且音频停止系统时间等于第二系统时间,则通过目标图片数据以及目标音频数据计算得到第二数据偏移量,其中,第二数据偏移量为音频初始系统时间与第一系统时间之间的偏移量;
基于第二数据偏移量,将目标图片数据以及目标音频数据进行合成处理,生成目标合成视频,其中,目标合成视频包括第一系统时间与第二系统时间之间所产生的全部图片数据,目标合成视频包括音频初始系统时间与第二系统时间之间所产生的全部音频数据。
可选地,在上述图12所对应的实施例的基础上,本申请实施例提供的视频录制装置20的另一实施例中,
生成模块204,具体用于:
若音频初始系统时间不等于第一系统时间,且音频停止系统时间不等于第二系统时间,则通过目标图片数据以及目标音频数据计算得到第三数据偏移量,其中,第三数据偏移量包括音频初始系统时间与第一系统时间之间的偏移量,以及音频停止系统时间与第二系统时间之间的偏移量;
基于第三数据偏移量,将目标图片数据以及目标音频数据进行合成处理,生成目标合成视频,其中,目标合成视频包括第一系统时间与第二系统时间之间所产生的全部图片数据,目标合成视频包括音频初始系统时间以及音频停止系统时间之间所产生的全部音频数据。
可选地,在上述图12所对应的实施例的基础上,本申请实施例提供的视频录制装置20的另一实施例中,
接收模块201,具体用于通过录制开始接口接收视频录制请求,其中,录制开始接口展示于目标客户端。
可选地,在上述图12所对应的实施例的基础上,本申请实施例提供的视频录制装置20的另一实施例中,
接收模块201,具体用于通过录制停止接口接收录制停止请求,其中,录制停止接口展示于目标客户端。
可选地,在上述图12所对应的实施例的基础上,本申请实施例提供的视频录制装置20的另一实施例中,
展示模块205,具体用于:
通过离开接口接收离开指令,展示用户界面,其中,用户界面包括视频应用选择接口;
通过视频应用选择接口接收选择指令,展示视频界面,其中,视频界面包括目标合成视频;
在视频界面接收视频选择指令,展示目标合成视频,其中,视频选择指令指示选择目标合成视频,且对目标合成视频进行展示。
接下来,本申请实施例还提供了一种终端设备,所述终端设备300上可以部署有上述图12对应的实施例中提供的视频录制装置,用于执行图2对应的实施例中视频录制装置执行的步骤。本申请实施例还提供了另一种视频录制装置,如图13所示,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请实施例方法部分。该终端可以为包括手机、平板电脑、PDA(Personal Digital Assistant,个人数字助理)、POS(Point of Sales,销售终端)、车载电脑等任意终端设备,以终端为手机为例:
图13示出的是与本申请实施例提供的终端相关的手机的部分结构的框图。参考图13,手机包括:射频(Radio Frequency,RF)电路310、存储器320、输入单元330、显示单元340、传感器350、音频电路360、无线保真(wireless fidelity,WiFi)模块370、处理器380、以及电源390等部件。本领域技术人员可以理解,图13中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图13对手机的各个构成部件进行具体的介绍:
RF电路310可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器380处理;另外,将设计上行的数据发送给基站。通常,RF电路310包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low NoiseAmplifier,LNA)、双工器等。此外,RF电路310还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(GlobalSystem of Mobile communication,GSM)、通用分组无线服务(General Packet RadioService,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、长期演进(Long Term Evolution,LTE)、电子邮件、短消息服务(Short Messaging Service,SMS)等。
存储器320可用于存储软件程序以及模块,处理器380通过运行存储在存储器320的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器320可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器320可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元330可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元330可包括触控面板331以及其他输入设备332。触控面板331,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板331上或在触控面板331附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板331可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器380,并能接收处理器380发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板331。除了触控面板331,输入单元330还可以包括其他输入设备332。具体地,其他输入设备332可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元340可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元340可包括显示面板341,可选的,可以采用液晶显示器(Liquid CrystalDisplay,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板341。进一步的,触控面板331可覆盖显示面板341,当触控面板331检测到在其上或附近的触摸操作后,传送给处理器380以确定触摸事件的类型,随后处理器380根据触摸事件的类型在显示面板341上提供相应的视觉输出。虽然在图13中,触控面板331与显示面板341是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板331与显示面板341集成而实现手机的输入和输出功能。
手机还可包括至少一种传感器350,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板341的亮度,接近传感器可在手机移动到耳边时,关闭显示面板341和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路360、扬声器361,传声器362可提供用户与手机之间的音频接口。音频电路360可将接收到的音频数据转换后的电信号,传输到扬声器361,由扬声器361转换为声音信号输出;另一方面,传声器362将收集的声音信号转换为电信号,由音频电路360接收后转换为音频数据,再将音频数据输出处理器380处理后,经RF电路310以发送给比如另一手机,或者将音频数据输出至存储器320以便进一步处理。
WiFi属于短距离无线传输技术,手机通过WiFi模块370可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图13示出了WiFi模块370,但是可以理解的是,其并不属于手机的必须构成。
处理器380是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器320内的软件程序和/或模块,以及调用存储在存储器320内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器380可包括一个或多个处理单元;优选的,处理器380可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器380中。
手机还包括给各个部件供电的电源390(比如电池),优选的,电源可以通过电源管理系统与处理器380逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。
在本申请实施例中,该终端所包括的处理器380可以执行前述图2所示实施例中的功能,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (13)

1.一种基于iOS系统的视频录制方法,其特征在于,包括:
接收视频录制请求,其中,所述视频录制请求在第一系统时间发送;
接收录制停止请求,其中,所述录制停止请求在第二系统时间发送;
通过所述视频录制请求以及所述录制停止请求,获取目标图片数据,其中,所述目标图片数据为所述第一系统时间与所述第二系统时间之间所产生的全部图片数据;
通过所述视频录制请求以及所述录制停止请求,确定音频播放信息;
通过所述音频播放信息,获取目标音频数据,其中,所述目标音频数据为所述第一系统时间与所述第二系统时间之间所产生的音频数据;
基于所述目标图片数据以及所述目标音频数据,生成目标合成视频;
展示所述目标合成视频。
2.基于权利要求1所述的方法,其特征在于,所述通过所述视频录制请求以及所述录制停止请求,获取目标图片数据,包括:
通过所述视频录制请求,确定第一图片帧,其中,所述第一图片帧为所述第一系统时间对应的图片帧;
通过所述视频停止请求,确定第二图片帧,其中,所述第二图片帧为所述第二系统时间对应的图片帧;
基于所述第一图片帧以及所述第二图片帧,获取所述目标图片数据。
3.基于权利要求1所述的方法,其特征在于,所述通过所述音频播放信息,获取目标音频数据,包括:
通过所述视频录制请求,确定音频初始系统时间,其中,所述音频初始系统时间大于或者等于所述第一系统时间,所述音频播放信息包括所述音频初始系统时间;
通过所述视频停止请求,确定音频停止系统时间,其中,所述音频停止系统时间小于或者等于所述第二系统时间,所述音频播放信息包括所述音频停止系统时间;
通过所述视频录制请求以及所述录制停止请求,获取初始音频数据,其中,所述初始音频数据包括所述音频播放信息;
通过所述音频播放信息,从所述初始音频数据中确定所述目标音频数据,其中,所述目标音频数据为所述音频初始系统时间以及所述音频停止系统时间之间所产生的全部音频数据。
4.基于权利要求3所述的方法,其特征在于,所述基于所述目标图片数据以及所述目标音频数据,生成目标合成视频,包括:
若所述音频初始系统时间等于所述第一系统时间,且所述音频停止系统时间等于所述第二系统时间,则将所述目标图片数据以及所述目标音频数据进行合成处理,生成所述目标合成视频,其中,所述目标合成视频包括所述第一系统时间与所述第二系统时间之间所产生的全部图片数据,所述目标合成视频包括所述第一系统时间与所述第二系统时间之间所产生的全部音频数据。
5.基于权利要求3所述的方法,其特征在于,所述基于所述目标图片数据以及所述音频数据,生成目标合成视频,包括:
若所述音频初始系统时间等于所述第一系统时间,且所述音频停止系统时间不等于所述第二系统时间,则通过所述目标图片数据以及所述目标音频数据计算得到第一数据偏移量,其中,所述第一数据偏移量为所述音频停止系统时间与所述第二系统时间之间的偏移量;
基于所述第一数据偏移量,将所述目标图片数据以及所述目标音频数据进行合成处理,生成所述目标合成视频,其中,所述目标合成视频包括所述第一系统时间与所述第二系统时间之间所产生的全部图片数据,所述目标合成视频包括所述第一系统时间与所述音频停止系统时间之间所产生的全部音频数据。
6.基于权利要求3所述的方法,其特征在于,所述基于所述目标图片数据以及所述音频数据,生成目标合成视频,包括:
若所述音频初始系统时间不等于所述第一系统时间,且所述音频停止系统时间等于所述第二系统时间,则通过所述目标图片数据以及所述目标音频数据计算得到第二数据偏移量,其中,所述第二数据偏移量为所述音频初始系统时间与所述第一系统时间之间的偏移量;
基于所述第二数据偏移量,将所述目标图片数据以及所述目标音频数据进行合成处理,生成所述目标合成视频,其中,所述目标合成视频包括所述第一系统时间与所述第二系统时间之间所产生的全部图片数据,所述目标合成视频包括所述音频初始系统时间与所述第二系统时间之间所产生的全部音频数据。
7.基于权利要求3所述的方法,其特征在于,所述基于所述目标图片数据以及所述音频数据,生成目标合成视频,包括:
若所述音频初始系统时间不等于所述第一系统时间,且所述音频停止系统时间不等于所述第二系统时间,则通过所述目标图片数据以及所述目标音频数据计算得到第三数据偏移量,其中,所述第三数据偏移量包括所述音频初始系统时间与所述第一系统时间之间的偏移量,以及所述音频停止系统时间与所述第二系统时间之间的偏移量;
基于所述第三数据偏移量,将所述目标图片数据以及所述目标音频数据进行合成处理,生成所述目标合成视频,其中,所述目标合成视频包括所述第一系统时间与所述第二系统时间之间所产生的全部图片数据,所述目标合成视频包括所述音频初始系统时间以及所述音频停止系统时间之间所产生的全部音频数据。
8.基于权利要求1所述的方法,其特征在于,所述接收视频录制请求,包括:通过录制开始接口接收所述视频录制请求,其中,所述录制开始接口展示于所述目标客户端。
9.基于权利要求1所述的方法,其特征在于,所述接收录制停止请求,包括:
通过录制停止接口接收所述录制停止请求,其中,所述录制停止接口展示于所述目标客户端。
10.基于权利要求1所述的方法,其特征在于,所述展示所述目标合成视频,包括:
通过离开接口接收离开指令,展示用户界面,其中,所述用户界面包括视频应用选择接口;
通过所述视频应用选择接口接收选择指令,展示视频界面,其中,所述视频界面包括所述目标合成视频;
在所述视频界面接收视频选择指令,展示所述目标合成视频,其中,所述视频选择指令指示选择所述目标合成视频,且对所述目标合成视频进行展示。
11.一种视频录制装置,其特征在于,包括:
接收模块,用于接收视频录制请求,其中,所述视频录制请求在第一系统时间发送;
所述接收模块,还用于接收录制停止请求,其中,所述录制停止请求在第二系统时间发送;
获取模块,用于通过所述接收模块接收到的所述视频录制请求以及所述录制停止请求,获取目标图片数据,其中,所述目标图片数据为所述第一系统时间与所述第二系统时间之间所产生的全部图片数据;
确定模块,用于通过所述视频录制请求以及所述录制停止请求,确定音频播放信息;
所述获取模块,还用于通过所述确定模块确定的所述音频播放信息,获取目标音频数据,其中,所述目标音频数据为所述第一系统时间与所述第二系统时间之间所产生的音频数据;
生成模块,用于基于所述获取模块获取到的所述目标图片数据以及所述目标音频数据,生成目标合成视频;
展示模块,用于展示所述目标合成视频。
12.一种计算机设备,其特征在于,包括:存储器、收发器、处理器以及总线系统;
其中,所述存储器用于存储程序;
所述处理器用于执行所述存储器中的程序,所述处理器用于根据所述程序代码中的指令执行权利要求1至10中任一项所述的视频录制方法;
所述总线系统用于连接所述存储器以及所述处理器,以使所述存储器以及所述处理器进行通信。
13.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1至10中任一项所述的方法。
CN202010138753.4A 2020-03-03 2020-03-03 一种基于iOS系统的视频录制方法、装置以及存储介质 Active CN113365139B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010138753.4A CN113365139B (zh) 2020-03-03 2020-03-03 一种基于iOS系统的视频录制方法、装置以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010138753.4A CN113365139B (zh) 2020-03-03 2020-03-03 一种基于iOS系统的视频录制方法、装置以及存储介质

Publications (2)

Publication Number Publication Date
CN113365139A true CN113365139A (zh) 2021-09-07
CN113365139B CN113365139B (zh) 2023-05-02

Family

ID=77523089

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010138753.4A Active CN113365139B (zh) 2020-03-03 2020-03-03 一种基于iOS系统的视频录制方法、装置以及存储介质

Country Status (1)

Country Link
CN (1) CN113365139B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114679622A (zh) * 2022-03-08 2022-06-28 臻迪科技股份有限公司 一种视频文件生成方法、装置、设备及介质
CN114827867A (zh) * 2022-03-29 2022-07-29 深圳市有方科技股份有限公司 接口测试方法、装置、电子设备及介质
WO2023193632A1 (zh) * 2022-04-06 2023-10-12 北京字节跳动网络技术有限公司 一种音频线程处理方法、装置、计算机设备和存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103974143A (zh) * 2014-05-20 2014-08-06 北京速能数码网络技术有限公司 一种生成媒体数据的方法和设备
CN104602100A (zh) * 2014-11-18 2015-05-06 腾讯科技(成都)有限公司 实现应用内视频、音频录制的方法及装置
CN105933724A (zh) * 2016-05-23 2016-09-07 福建星网视易信息系统有限公司 视频制作方法、装置及系统
CN107018443A (zh) * 2017-02-16 2017-08-04 乐蜜科技有限公司 视频录制方法、装置和电子设备
CN107195314A (zh) * 2017-05-04 2017-09-22 腾讯科技(深圳)有限公司 音频数据的录制方法与装置
CN107707936A (zh) * 2016-08-09 2018-02-16 作业帮教育科技(北京)有限公司 在线答疑时的视频回放方法和装置
CN108235107A (zh) * 2016-12-15 2018-06-29 广州市动景计算机科技有限公司 视频录制方法、装置及电子终端
CN110324643A (zh) * 2019-04-24 2019-10-11 网宿科技股份有限公司 一种视频录制方法及系统
CN110662090A (zh) * 2018-06-29 2020-01-07 腾讯科技(深圳)有限公司 一种视频处理方法和系统

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103974143A (zh) * 2014-05-20 2014-08-06 北京速能数码网络技术有限公司 一种生成媒体数据的方法和设备
CN104602100A (zh) * 2014-11-18 2015-05-06 腾讯科技(成都)有限公司 实现应用内视频、音频录制的方法及装置
CN105933724A (zh) * 2016-05-23 2016-09-07 福建星网视易信息系统有限公司 视频制作方法、装置及系统
CN107707936A (zh) * 2016-08-09 2018-02-16 作业帮教育科技(北京)有限公司 在线答疑时的视频回放方法和装置
CN108235107A (zh) * 2016-12-15 2018-06-29 广州市动景计算机科技有限公司 视频录制方法、装置及电子终端
CN107018443A (zh) * 2017-02-16 2017-08-04 乐蜜科技有限公司 视频录制方法、装置和电子设备
CN107195314A (zh) * 2017-05-04 2017-09-22 腾讯科技(深圳)有限公司 音频数据的录制方法与装置
CN110662090A (zh) * 2018-06-29 2020-01-07 腾讯科技(深圳)有限公司 一种视频处理方法和系统
CN110324643A (zh) * 2019-04-24 2019-10-11 网宿科技股份有限公司 一种视频录制方法及系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114679622A (zh) * 2022-03-08 2022-06-28 臻迪科技股份有限公司 一种视频文件生成方法、装置、设备及介质
CN114827867A (zh) * 2022-03-29 2022-07-29 深圳市有方科技股份有限公司 接口测试方法、装置、电子设备及介质
WO2023193632A1 (zh) * 2022-04-06 2023-10-12 北京字节跳动网络技术有限公司 一种音频线程处理方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN113365139B (zh) 2023-05-02

Similar Documents

Publication Publication Date Title
CN109218731B (zh) 移动设备的投屏方法、装置及系统
CN113365139B (zh) 一种基于iOS系统的视频录制方法、装置以及存储介质
TWI732240B (zh) 視頻檔案的生成方法、裝置及儲存媒體
CN107102936B (zh) 一种流畅度的评估方法和移动终端以及存储介质
CN109644294B (zh) 一种直播分享的方法、相关设备及系统
CN106412691B (zh) 一种视频图像的截取方法和装置
WO2017016339A1 (zh) 视频分享方法和装置、视频播放方法和装置
CN110533755B (zh) 一种场景渲染的方法以及相关装置
WO2017152355A1 (zh) 一种显示方法及终端设备
US11539960B2 (en) Game application providing scene change hint for encoding at a cloud gaming server
US20160373801A1 (en) Method and device for playing multimedia file
CN104050040B (zh) 媒体重放工作负荷调度器
CN108055567B (zh) 一种视频处理方法、装置、终端设备及存储介质
KR102480709B1 (ko) Vr 멀티미디어의 경험 품질을 결정하기 위한 방법 및 장치
US20210042980A1 (en) Method and electronic device for displaying animation
CN110166848B (zh) 一种直播互动的方法、相关装置及系统
CN112291590A (zh) 视频处理方法及设备
US9161012B2 (en) Video compression using virtual skeleton
WO2023143217A1 (zh) 特效道具的展示方法、装置、设备及存储介质
CN110650294A (zh) 视频拍摄方法、移动终端及可读存储介质
CN107710754B (zh) 音视频数据同步方法和装置
CN113873187A (zh) 跨终端录屏方法、终端设备及存储介质
EP4344234A1 (en) Live broadcast room presentation method and apparatus, and electronic device and storage medium
WO2023284798A1 (zh) 视频播放方法、装置及电子设备
CN114697568B (zh) 特效视频确定方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40052231

Country of ref document: HK

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant