显示设备及流媒体文件合成方法与流程

文档序号:30508546发布日期:2022-06-25 01:08阅读:49来源:国知局
1.本技术涉及数据处理
技术领域
:,尤其涉及一种显示设备及流媒体文件合成方法。
背景技术
::2.随着音视频技术的发展,特别是近几年短视频平台的兴起,越来越多的用户会参与到视频制作中,例如:用户常常会有合成视频并在短视频平台发布的需求。3.相关技术中,当用户想要录制流媒体文件,并将录制的流媒体文件与已有的流媒体文件合成新的视频文件时,用户需要用户先录制获取流媒体文件,然后再将录制的流媒体文件作为素材与已有的流媒体文件进行合成,生成新的流媒体文件,无法做到同步录制和合成多媒体文件。例如:当用户想要录制一段视频,并选择指定音频作为背景音乐时,用户需要先录制视频,然后再选择该指定音频进行新视频的合成,无法做到录制视频前选择背景音乐,一边播放背景音乐,一边进行视频录制以及新视频的合成。再例如:当用户想要录制一段音频,并将录制的音频作为指定视频的背景音乐时,用户需要先录制音频,然后再选择该指定视频进行新视频的合成,无法做到录制音频前选择视频,一边播放视频,一边进行音频录制以及新视频的合成。技术实现要素:4.为了解决上述技术问题或者至少部分地解决上述技术问题,本技术提供了一种显示设备及流媒体文件合成方法,可以在播放流媒体文件和录制流媒体文件的同时,根据播放的流媒体文件和录制的流媒体文件进行新的流媒体文件的合成。5.第一方面,本技术提供了一种显示设备,包括:6.用户接口,被配置为:接收用户输入的触发操作,所述触发操作用于触发播放第一流媒体文件、录制第二流媒体文件以及基于所述第一流媒体文件和所述第二流媒体文件进行第三流媒体文件的合成;7.播放器,被配置为:对所述第一流媒体文件进行播放,并在播放所述第一流媒体文件的过程中回调所述第一流媒体文件对应的数据;8.检测器,被配置为:对所述第二流媒体文件进行录制,获取所述第二流媒体文件对应的数据;9.处理器,被配置为:根据所述第一流媒体文件对应的数据和所述第二流媒体文件对应的数据生成音频基本流数据和视频基本流数据;10.封装器,被配置为:对所述音频基本流数据和所述视频基本流数据进行封装,以合成所述第三流媒体文件。11.在一些实施例中,所述播放器,被配置为:获取所述第一流媒体文件,解封装所述第一流媒体文件获取所述第一流媒体文件对应的基本流数据,将所述第一流媒体文件对应的基本流数据缓存至缓存队列中,依次解码所述缓存队列中的数据获取所述第一流媒体文件对应的播放数据,根据所述第一流媒体文件对应的播放数据对所述第一流媒体文件进行播放,以及所述回调所述第一流媒体文件对应的播放数据;12.所述处理器,被配置为:对所述第一流媒体文件对应的播放数据进行编码,生成所述音频基本流数据或所述视频基本流数据。13.在一些实施例中,所述播放器,被配置为:获取所述第一流媒体文件,解封装所述第一流媒体文件获取所述第一流媒体文件对应的基本流数据,将所述第一流媒体文件对应的基本流数据缓存至缓存队列中,通过解码模块依次读取并解码所述缓存队列中的数据获取所述第一流媒体文件对应的播放数据,根据所述第一流媒体文件对应的播放数据对所述第一流媒体文件进行播放,以及所述回调所述解码模块读取的所述第一流媒体文件对应的基本流数据;14.所述处理器,被配置为:将所述第一流媒体文件对应的基本流数据确定为所述音频基本流数据或所述视频基本流数据。15.在一些实施例中,所述封装器,被配置为:16.以预设时长为周期,周期性获取播放器时间戳;17.确定回调的所述第一流媒体文件对应的基本流数据的时间戳与所述播放器时间戳的差值是否小于预设值;18.若是,则对回调的所述视频基本流数据进行封装。19.在一些实施例中,所述用户接口,还被配置为:接收用户输入的目标片段的起始位置和终止位置;所述目标片段为所述第一流媒体文件中用于合成所述第三流媒体文件的片段;20.所述播放器,还被配置为确定目标位置,所述目标位置为位于所述起始位置之前且与所述起始位置最近的关键帧的位置;21.所述检测器,被配置为:在所述第一流媒体文件的播放位置超过所述目标位置时,开始对所述第二流媒体文件进行录制;在所述第一流媒体文件的播放位置超过所述终止位置时,停止对所述第二流媒体文件进行录制。22.在一些实施例中,所述播放器,还被配置为:23.在所述第一流媒体文件的播放位置超过所述终止位置时,停止对所述第一流媒体文件进行播放。24.在一些实施例中,所述第一流媒体文件为视频文件;所述第二流媒体文件为音频文件;25.所述检测器,被配置为:在完成所述第一流媒体文件的第一个视频帧的渲染时,开始录制所述音频文件对应的脉冲编码调制pcm数据。26.在一些实施例中,所述第一流媒体文件包括:视频文件和第一音频文件,所述第二流媒体文件为第二音频文件;27.所述播放器,被配置为:在播放所述第一流媒体文件的过程中回调所述视频文件对应的基本流数据和所述第一音频文件对应的pcm数据;28.所述处理器,被配置为:根据所述第一音频文件对应的pcm数据和所述第二流媒体文件对应的数据生成音频数据流,以及将所述视频文件对应的基本流数据确定为所述视频基本流数据。29.在一些实施例中,所述播放器,还被配置为:将所述第一音频文件对应的pcm数据缓存至第一数据队列;30.所述检测器,还被配置为:将所述第二流媒体文件对应的pcm数据缓存至第二数据队列;31.所述处理器,被配置为:基于预设规则对所述第一数据队列和所述第二数据队列中的pcm数据进行混合生成混合音频数据,以及对所述混合音频数据进行编码生成所述音频基本流数据。32.第二方面,本技术提供一种流媒体文件合成方法,包括:33.接收用户输入的触发操作,所述触发操作用于触发播放第一流媒体文件、录制第二流媒体文件以及基于所述第一流媒体文件和所述第二流媒体文件进行第三流媒体文件的合成;34.对所述第一流媒体文件进行播放,并在播放所述第一流媒体文件的过程中回调所述第一流媒体文件对应的数据;35.对所述第二流媒体文件进行录制,获取所述第二流媒体文件对应的数据;36.根据所述第一流媒体文件对应的数据和所述第二流媒体文件对应的数据生成音频基本流数据和视频基本流数据;37.对所述音频基本流数据和所述视频基本流数据进行封装,以合成所述第三流媒体文件。38.在一些实施例中,所述对所述第一流媒体文件进行播放,并在播放所述第一流媒体文件的过程中回调所述第一流媒体文件对应的数据,包括:39.获取所述第一流媒体文件,解封装所述第一流媒体文件获取所述第一流媒体文件对应的基本流数据,将所述第一流媒体文件对应的基本流数据缓存至缓存队列中,依次解码所述缓存队列中的数据获取所述第一流媒体文件对应的播放数据,根据所述第一流媒体文件对应的播放数据对所述第一流媒体文件进行播放,以及所述回调所述第一流媒体文件对应的播放数据;40.所述根据所述第一流媒体文件对应的数据和所述第二流媒体文件对应的数据生成音频基本流数据和视频基本流数据,包括:41.对所述第一流媒体文件对应的播放数据进行编码,生成所述音频基本流数据或所述视频基本流数据。42.在一些实施例中,所述对所述第一流媒体文件进行播放,并在播放所述第一流媒体文件的过程中回调所述第一流媒体文件对应的数据,包括:43.获取所述第一流媒体文件,解封装所述第一流媒体文件获取所述第一流媒体文件对应的基本流数据,将所述第一流媒体文件对应的基本流数据缓存至缓存队列中,通过解码模块依次读取并解码所述缓存队列中的数据获取所述第一流媒体文件对应的播放数据,根据所述第一流媒体文件对应的播放数据对所述第一流媒体文件进行播放,以及所述回调所述解码模块读取的所述第一流媒体文件对应的基本流数据;44.所述根据所述第一流媒体文件对应的数据和所述第二流媒体文件对应的数据生成音频基本流数据和视频基本流数据,包括:、45.将所述第一流媒体文件对应的基本流数据确定为所述音频基本流数据或所述视频基本流数据。46.在一些实施例中,所述对所述音频基本流数据和所述视频基本流数据进行封装,包括:47.以预设时长为周期,周期性获取播放器时间戳;48.确定回调的所述第一流媒体文件对应的基本流数据的时间戳与所述播放器时间戳的差值是否小于预设值;49.若是,则对回调的所述视频基本流数据进行封装。50.在一些实施例中,所述方法还包括:51.接收用户输入的目标片段的起始位置和终止位置;所述目标片段为所述第一流媒体文件中用于合成所述第三流媒体文件的片段;52.确定目标位置,所述目标位置为位于所述起始位置之前且与所述起始位置最近的关键帧的位置;53.在所述第一流媒体文件的播放位置超过所述目标位置时,开始对所述第二流媒体文件进行录制;54.在所述第一流媒体文件的播放位置超过所述终止位置时,停止对所述第二流媒体文件进行录制。55.在一些实施例中,所述方法还包括:56.在所述第一流媒体文件的播放位置超过所述终止位置时,停止对所述第一流媒体文件进行播放。57.在一些实施例中,所述第一流媒体文件为视频文件;所述第二流媒体文件为音频文件;58.所述对所述第二流媒体文件进行录制,获取所述第二流媒体文件对应的数据,包括:59.在完成所述视频文件的第一个视频帧的渲染时,开始录制所述音频文件对应的脉冲编码调制pcm数据。60.在一些实施例中,所述第一流媒体文件包括:视频文件和第一音频文件,所述第二流媒体文件为第二音频文件;61.所述在播放所述第一流媒体文件的过程中回调所述第一流媒体文件对应的数据,包括:62.在播放所述第一流媒体文件的过程中回调所述视频文件对应的基本流数据和所述第一音频文件对应的pcm数据;63.所述根据所述第一流媒体文件对应的数据和所述第二流媒体文件对应的数据生成音频基本流数据和视频基本流数据,包括:64.根据所述第一音频文件对应的pcm数据和所述第二流媒体文件对应的数据生成音频数据流,以及将所述视频文件对应的基本流数据确定为所述视频基本流数据。65.在一些实施例中,所述根据所述第一音频文件对应的pcm数据和所述第二流媒体文件对应的数据生成音频数据流,包括:66.将所述第一音频文件对应的pcm数据缓存至第一数据队列67.将所述第二音频文件对应的pcm数据缓存至第二数据队列;68.基于预设规则对所述第一数据队列和所述第二数据队列中的pcm数据进行混合生成混合音频数据;69.对所述混合音频数据进行编码生成所述音频基本流数据。70.第三方面,本技术提供了一种计算机可读存储介质,包括:计算机可读存储介质上存储计算机程序,计算机程序被处理器执行时实现如第二方面所示的流媒体文件合成方法。71.第四方面,本技术提供了一种计算机程序产品,包括:当计算机程序产品在计算机上运行时,使得计算机实现如第二方面所示的流媒体文件合成方法。72.本技术实施例提供的显示设备在通过用户接口接收到用于触发播放第一流媒体文件、录制第二流媒体文件以及基于所述第一流媒体文件和所述第二流媒体文件进行第三流媒体文件的合成的触发操作时,通过播放器对所述第一流媒体文件进行播放,并在播放所述第一流媒体文件的过程中回调所述第一流媒体文件对应的数据,通过检测器对所述第二流媒体文件进行录制,获取所述第二流媒体文件对应的数据,通过处理器根据所述第一流媒体文件对应的数据和所述第二流媒体文件对应的数据生成音频基本流数据和视频基本流数据,以及通过封装器对所述音频基本流数据和所述视频基本流数据进行封装,以合成所述第三流媒体文件。由于本技术实施例提供的显示设备能够在播放器第一流媒体文件和录制第二流媒体文件的过程中,实现根据第一流媒体文件对应数据和第二流媒体文件对应的数据生成音频基本流数据和视频基本流数据,以及对所述音频基本流数据和所述视频基本流数据进行封装,以合成所述第三流媒体文件,因此本技术实施例提供的显示设备能够在播放流媒体文件以及录制流媒体文件时,实时对播放的流媒体文件和录制的流媒体文件进行合成,实现在播放流媒体文件和录制流媒体文件的同时,根据播放的流媒体文件和录制的流媒体文件进行新的流媒体文件的合成。附图说明73.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。74.为了更清楚地说明本技术实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。75.图1为本技术一个或多个实施例的显示设备与控制装置之间操作场景的示意图;76.图2为本技术一个或多个实施例的控制设备100的硬件配置框图;77.图3为本技术一个或多个实施例的显示设备200的硬件配置框图;78.图4为本技术一个或多个实施例中播放器的架构图;79.图5为本技术一个或多个实施例中显示设备200软件配置示意图;80.图6为本技术提供的多媒体文件合成方法的步骤流程图之一;81.图7为本技术提供的多媒体文件合成方法的步骤流程图之二;82.图8为本技术提供的多媒体文件合成方法的步骤流程图之三;83.图9为本技术提供的多媒体文件合成方法的步骤流程图之四;84.图10为本技术提供的多媒体文件合成方法的步骤流程图之五;85.图11为本技术提供的多媒体文件合成方法的步骤流程图之六;86.图12为本技术提供的多媒体文件合成方法的步骤流程图之七;87.图13为本技术提供的多媒体文件合成方法的步骤流程图之八;88.图14为本技术提供的多媒体文件合成方法的步骤流程图之九;89.图15为本技术提供多媒体文件合成方法的架构图。具体实施方式90.为了能够更清楚地理解本技术的上述目的、特征和优点,下面将对本技术的方案进行进一步描述。需要说明的是,在不冲突的情况下,本技术的实施例及实施例中的特征可以相互组合。91.在下面的描述中阐述了很多具体细节以便于充分理解本技术,但本技术还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本技术的一部分实施例,而不是全部的实施例。92.本技术中说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等是用于区别类似或同类的对象或实体,而不必然意味着限定特定的顺序或先后次序,除非另外注明。应该理解这样使用的用语在适当情况下可以互换。93.本技术中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖但不排他的包含,例如,包含了一系列组件的产品或设备不必限于清楚地列出的所有组件,而是可包括没有清楚地列出的或对于这些产品或设备固有的其它组件。94.相关技术中,无法做到同步录制和合成多媒体文件,而是需要先录制得到多媒体文件,再将录制的多媒体文件与已有的多媒体文件进行合成。为解决上述问题,本技术实施例提供了一种显示设备和多媒体文件合成方法,该显示设备在通过用户接口接收到用于触发播放第一流媒体文件、录制第二流媒体文件以及基于所述第一流媒体文件和所述第二流媒体文件进行第三流媒体文件的合成的触发操作时,通过播放器对所述第一流媒体文件进行播放,并在播放所述第一流媒体文件的过程中回调所述第一流媒体文件对应的数据,通过检测器对所述第二流媒体文件进行录制,获取所述第二流媒体文件对应的数据,通过处理器根据所述第一流媒体文件对应的数据和所述第二流媒体文件对应的数据生成音频基本流数据和视频基本流数据,以及通过封装器对所述音频基本流数据和所述视频基本流数据进行封装,以合成所述第三流媒体文件。由于本技术实施例提供的显示设备能够在播放器第一流媒体文件和录制第二流媒体文件的过程中,实现根据第一流媒体文件对应数据和第二流媒体文件对应的数据生成音频基本流数据和视频基本流数据,以及对所述音频基本流数据和所述视频基本流数据进行封装,以合成所述第三流媒体文件,因此本技术实施例提供的显示设备能够在播放流媒体文件以及录制流媒体文件时,实时对播放的流媒体文件和录制的流媒体文件进行合成,实现在播放流媒体文件和录制流媒体文件的同时,根据播放的流媒体文件和录制的流媒体文件进行新的流媒体文件的合成。95.本技术实施方式提供的显示设备可以具有多种实施形式,例如,可以是电视、智能电视、激光投影设备、显示器(monitor)、电子白板(electronicbulletinboard)、电子桌面(electronictable)、手机等。图2为本技术的显示设备的一种具体实施方式。96.图1为根据本技术一个或多个实施例的显示设备与控制装置之间操作场景的示意图,如图1所示,用户可通过控制装置100和/或移动终端300操作显示设备200。控制装置100可以是遥控器,遥控器和显示设备的通信包括红外协议通信、蓝牙协议通信,无线或其他有线方式来控制显示设备200。用户可以通过遥控器上按键,语音输入、控制面板输入等输入用户指令,来控制显示设备200。在一些实施例中,也可以使用移动终端、平板电脑、计算机、笔记本电脑、和其他智能设备以控制显示设备200。97.在一些实施例中,移动终端300可为显示设备200安装软件应用,通过网络通信协议实现连接通信,实现一对一控制操作的和数据通信的目的。也可以将移动终端300上显示音视频内容传输到显示设备200上,实现同步显示功能显示设备200还与服务器400通过多种通信方式进行数据通信。可允许显示设备200通过局域网(lan)、无线局域网(wlan)和其他网络进行通信连接。服务器400可以向显示设备200提供各种内容和互动。显示设备200,可以液晶显示器、oled显示器、投影显示设备。显示设备200除了提供广播接收电视功能之外,还可以附加提供计算机支持功能的智能网络电视功能。98.图2示例性示出了根据示例性实施例中控制装置100的配置框图。如图2所示,控制装置100包括控制器110、通信接口130、用户输入/输出接口140、存储器、供电电源。控制装置100可接收用户的输入操作指令,且将操作指令转换为显示设备200可识别和响应的指令,起用用户与显示设备200之间交互中介作用。通信接口130用于和外部通信,包含wifi芯片,蓝牙模块,nfc或可替代模块中的至少一种。用户输入/输出接口140包含麦克风,触摸板,传感器,按键或可替代模块中的至少一种。99.图3示出了根据示例性实施例中显示设备200的硬件配置框图。如图4所示显示设备200包括调谐解调器210、通信器220、检测器230、外部装置接口240、控制器250、显示器260、音频输出接口270、存储器、供电电源、用户接口280中的至少一种。控制器包括中央处理器,视频处理器,音频处理器,图形处理器,ram,rom,用于输入/输出的第一接口至第n接口。显示器260可为液晶显示器、oled显示器、触控显示器以及投影显示器中的至少一种,还可以为一种投影装置和投影屏幕。调谐解调器210通过有线或无线接收方式接收广播电视信号,以及从多个无线或有线广播电视信号中解调出音视频信号,如以及epg数据信号。检测器230用于采集外部环境或与外部交互的信号。控制器250和调谐解调器210可以位于不同的分体设备中,即调谐解调器210也可在控制器250所在的主体设备的外置设备中,如外置机顶盒等。100.在一些实施例中,上述显示设备是具有显示功能的终端设备,例如电视机、手机、电脑、学习机等。101.在一些实施例中,控制器250,通过存储在存储器上中各种软件控制程序,来控制显示设备的工作和响应用户的操作。控制器250控制显示设备200的整体操作。用户可在显示器260上显示的图形用户界面(gui)输入用户命令,则用户输入接口通过图形用户界面(gui)接收用户输入命令。或者,用户可通过输入特定的声音或手势进行输入用户命令,则用户输入接口通过传感器识别出声音或手势,来接收用户输入命令。102.输出接口(显示器260,和/或,音频输出接口270),被配置为输出用户交互信息;103.通信器220,用于与服务器400或其它设备进行通信。104.在一些实施例中,所述用户接口280能够接收用于触发播放第一流媒体文件、录制第二流媒体文件以及基于所述第一流媒体文件和所述第二流媒体文件进行第三流媒体文件的合成的触发操作。播放器(当第一多媒体文件为视频文件时,播放器为显示器260;当第一多媒体文件为音频文件时,播放器为音频输出接口270,当第一多媒体文件既包括视频文件又包括音频文件时,播放器包括显示器260和音频输出接口270)能够对所述第一流媒体文件进行播放,并在播放所述第一流媒体文件的过程中回调所述第一流媒体文件对应的数据;检测器230(当第二多媒体文件为视频文件时,具体为图像采集器;当第二多媒体文件为音频文件时,为声音采集器)能够对所述第二流媒体文件进行录制,获取所述第二流媒体文件对应的数据(当第二多媒体文件为视频文件时,所述第二流媒体文件对应的数据为图像数据;当第二多媒体文件为音频文件时,所述第二流媒体文件对应的数据为脉冲编码调制数据);包括视频处理器和音频处理器的控制器250能够根据所述第一流媒体文件对应的数据和所述第二流媒体文件对应的数据,生成音频基本流数据和视频基本流数据以及对所述音频基本流数据和所述视频基本流数据进行封装,以合成所述第三流媒体文件。105.参照图4所示,在一些实施例中,播放器(显示器260或音频输出接口270)对所述第一流媒体文件进行播放的实现过程包括:资源加载模块41从本地存储空间或服务器获取所述第一流媒体文件,并将第一流媒体文件输入解封装模块42;解封装模块42对第一流媒体文件进行解封装,获取第一流媒体文件对应的基本流数据,并将第一流媒体文件对应的基本流数据缓存至缓存队列43中,解码模块44依次读取缓存队列43中的数据,并对对读取的数据进行解码,获取所述第一流媒体文件对应的播放数据(当第一多媒体文件为视频文件时,所述播放数据为图像数据;当第一多媒体文件为音频文件时,所述播放数据为脉冲编码调制数据),最后输出模块45根据所述第一流媒体文件对应的播放数据对所述第一流媒体文件进行播放。106.基于上述播放器对所述第一流媒体文件进行播放的实现过程,播放器在播放所述第一流媒体文件的过程中回调所述第一流媒体文件对应的数据的实现方式可以包括两种:第一种:在播放所述第一流媒体文件的过程中,从解码模块中对播放的每一帧对应的播放数据进行回调,然后再对回调的播放数据进行编码生成第一流媒体文件对应的音频基本流或视频基本流。第二种:在播放所述第一流媒体文件的过程中,对第一流媒体文件对应的基本流数据进行回调。上述第二种实现方式中直接回调第一流媒体文件对应的基本流数据,而非播放数据,因此上述第二种实现方式可以避免了对播放数据进行编码这一消耗计算资源的流程,以及且避免了第一多媒体文件中画质或音质的发生改变。此外,如上图4所示,第一流媒体文件对应的基本流数据有解封装模块42生成并存储到缓存队列43中,解码模块44会从缓存队列43读取第一流媒体文件对应的基本流数据,因此上述第二种实现方式中可以从解封装模块42的输出或缓存队列43或解码模块44的输入处对第一流媒体文件对应的基本流数据进行回调。然而,解封装模块42输出的基本流数据和缓存队列43的基本流数据的时间戳常常与播放器时间戳偏差较大,而解码模块44读取的所述第一流媒体文件对应的基本流数据的时间戳常常与播放器时间戳偏差较小,因此可以通过回调所述解码模块44读取的所述第一流媒体文件对应的基本流数据,以避免封装的音频基本流数据和视频基本流数据的时间戳偏差过大。107.在一些实施例中,控制器250还能够启动一个子线程,通过该子线程以预设时长为周期(例如100ms),周期性获取播放器时间戳,并确定回调的所述第一流媒体文件对应的基本流数据的时间戳与所述播放器时间戳的差值是否小于预设值(例如2秒),若是,则将回调的所述第一流媒体文件对应的基本流数据送入封装模块对所述音频基本流数据和所述视频基本流数据进行封装,从而彻底避免封装的音频基本流数据和视频基本流数据的时间戳偏差过大。108.在一些实施例中,本技术还能够支持用户指定第一多媒体文件的起始和终止位置与录制文件进行实时合成。实现方式包括:用户接口280接收用户输入的所述第一流媒体文件中用于合成所述第三流媒体文件的目标片段的起始位置和终止位置;播放器确定位于所述起始位置之前且与所述起始位置最近的关键帧的位置,检测器在所述第一流媒体文件的播放位置超过所述目标位置时,开始对所述第二流媒体文件进行录制;在回调的所述第一流媒体文件对应的基本流数据的时间戳超过所述终止位置时,停止对所述第二流媒体文件进行录制。其中,播放器可以在所述第一流媒体文件的播放位置超过所述目标位置时,向检测器发送开始录制指令,以使检测器开始对所述第二流媒体文件进行录制;在回调的所述第一流媒体文件对应的基本流数据的时间戳超过所述终止位置时,向检测器发送结束录制指令,以使检测器停止对所述第二流媒体文件进行录制。此外,播放器可以在回调的所述第一流媒体文件对应的基本流数据的时间戳超过所述终止位置时,停止对所述第一流媒体文件进行播放。109.由于在进行视频文件播放时需要对图像数据进行渲染,因此从接收到视频播放指令到视频文件的第一个视频渲染完成往往需要较长时间。当第一多媒体文件为视频文件,第二多媒体文件为音频文件时,若接收用户输入的触发操作后立即开始进行所述第二流媒体文件的录制,则很可能会造成封装的音频基本流数据和视频基本流数据的时间戳偏差过大。针对上述问题,在一些实施例中,检测器可以在播放器完成所述视频文件的第一个视频帧的渲染时,再开始录制所述音频文件对应的脉冲编码调制(pulsecodemodulation,pcm)数据。110.在一些场景下,第一多媒体文件既包括视频文件,又包括音频文件,第二多媒体文件为音频文件。例如:为视频配音的场下,第一多媒体文件既包括视频文件,又包括背景音乐,第二多媒体文件为录制的人声。在此类场景下,针对视频这一路数据,可以采用上述任一实施例提供的方式提取视频基本流数据,而针对音频这一路数据,则需要对背景音和人声合成进行合成,并获取合成后的音频数据对应的音频基本流数据。在一些实施例中,播放器能够在播放所述第一流媒体文件的过程中回调所述视频文件对应的基本流数据和所述第一音频文件对应的pcm数据,所述控制器250能够根据所述第一音频文件对应的pcm数据和所述第二流媒体文件对应的数据生成音频数据流,以及将所述视频文件对应的基本流数据确定为所述视频基本流数据。在一些实施例中,控制器250根据所述第一音频文件对应的pcm数据和所述第二流媒体文件对应的数据生成音频数据流的实现方式可包括:播放器将所述第一音频文件对应的pcm数据缓存至第一数据队列,检测器将所述第二音频文件对应的pcm数据缓存至第二数据队列;基于预设规则对所述第一数据队列和所述第二数据队列中的pcm数据进行混合生成混合音频数据,以及对所述混合音频数据进行编码生成所述音频基本流数据。111.图5为图3所示显示设备200的软件配置示意图,如图5所示,将系统分为四层,从上至下分别为应用程序(applications)层(简称“应用层”),java接口层,原生(native)实现层,应用程序框架(applicationframework)层(简称“框架层”),以及硬件实现层。应用程序层负责多个模块间的流程控制,java接口层主要负责业务的管理,各个业务主要基于原生层实现,通常播放器业务包含加载模块、解封装模块、视频解码模块、音频解码模块、视频渲染模块、音频渲染模块等等。封装编码业务包含音频编码模块、视频编码模块、封装模块等。录制业务包含视频录制模块、音频录制模块、音频分离模块等。加载模块主要负责从服务器或本地存储空间中加载用户事先选择的音频文件和/或视频文件。解封装模块主要负责对加载模块加载的音频文件和/或视频文件进行解封装,获取视频文件的视频基本流数据和/或音频文件的音频基本流数据。视频解码模块主要负责将解封装模块解封装得到的视频基本流数据解码为图像数据。视频渲染模块主要负责对视频解码模块解码得到的图像数据进行渲染,以对音频文件进行显示。音频解码模块主要负责将解封装模块解封装得到的音频基本流数据解码为pcm数据。音频渲染模块主要负责对音频解码模块解码得到的pcm数据进行渲染,以对音频文件进行播放。视频录制模块主要负责对视频文件对应的图像数据进行采集。音频录制模块主要负责对音频文件对应的pcm数据进行采集。音频分离模块主要负责在用户事先选择播放的多媒体文件既包括视频文件又包括音频文件时,从用户事先选择播放的多媒体文件中分离出音频文件的pcm数据。视频编码模块主要负责对播放器业务回调的图像数据或视频录制模块录制的图像数据进行视频编码生成视频基本流数据。音频编码模块主要负责对播放器业务回调的cpm数据、音频录制模块录制的pcm数据、音频分离模块分离的pcm数据中的一个或多个进行音频编码生成音频基本流数据。封装模块主要负责对视频编码模块输出的视频基本流数据和音频编码模块输出的音频基本流数据进行封装,以生成合成后的多媒体文件。例如:在实时视频播放,音频录制的场景中,当用户触发播放/录制行为时,播放器业务中,加载模块加载用户事先选择的视频文件,解封装模块对加载模块加载的视频文件进行解码,获取并输出视频文件的视频基本流数据,视频解码模块对解封装模块输出的视频基本流数据进行解码获取并输出图像数据,视频渲染模块对视频解码模块输出的图像数据进行渲染,从而实现对视频文件的播放。录制业务中,音频录制模块对音频文件对应的pcm数据进行采集。封装编码业务中,在播放器业务回调图像数据的情况下,视频编码模块对回调的图像数据进行视频编码获取视频基本流数据,音频编码模块对录制的pcm数据进行音频编码获取音频基本流数据,封装模块对视频编码得到的视频基本流数据和音频编码得到的音频基本流数据进行封装,获取对播放的视频文件和录制的音频文件进行合成得到的新的多媒体文件;在播放器业务回调视频基本流数据的情况下,音频编码模块对录制的pcm数据进行音频编码获取音频基本流数据,封装模块对回调的视频基本流数据和音频编码得到的音频基本流数据进行封装,获取对播放的视频文件和录制的音频文件进行合成得到的新的多媒体文件。框架层为平台实现的已封装好的功能,特别是与硬件实现相关的功能,例如:框架层实现的与播放相关的多媒体接口中封装了硬解码的相关实现。112.为了更加详细的说明本方案,以下将以示例性的方式结合附图进行说明,可以理解的是,附图中所涉及的步骤在实际实现时可以包括更多的步骤,或者更少的步骤,并且这些步骤之间的顺序也可以不同,以能够实现本技术实施例中提供的流媒体文件合成方法为准。如图6所示,图6为根据本技术一个或多个实施例实现流媒体文件合成方法的步骤流程图,该流媒体文件合成方法:113.s11、接收用户输入的触发操作。114.其中,所述触发操作用于触发播放第一流媒体文件、录制第二流媒体文件以及基于所述第一流媒体文件和所述第二流媒体文件进行第三流媒体文件的合成。115.示例性的,触发操作具体可以为用户对预设虚拟控件的操作。116.在一些实施例中,所述第一流媒体文件为视频文件,所述第二流媒体文件为音频文件。例如:在k歌场景中,播放歌曲的视频文件(第一流媒体文件),录制用户歌声(第二流媒体文件),以及基于歌曲的音乐短片和用户歌声进行音乐短片的合成(第三流媒体文件)。117.在一些实施例中,所述第一流媒体文件为音频文件,所述第二流媒体文件为视频文件。例如:短视频创作的场景中,播放选定的背景音乐(第一流媒体文件),录制短视频的视频内容(第二流媒体文件),以及基于背景音乐和视频内容进行短视频的合成(第三流媒体文件)。118.在一些实施例中,所述第一流媒体文件既包括视频音频文件,又包括音频文件,所述第二流媒体文件为音频文件。例如:为具有背景音乐的视频配音的场景中,播放视频和背景音乐(第一流媒体文件),录制配音内容(第二流媒体文件),以及基于视频、背景音乐以及配音内容进行短视频的合成(第三流媒体文件)。119.s12、对所述第一流媒体文件进行播放,并在播放所述第一流媒体文件的过程中回调所述第一流媒体文件对应的数据。120.在一些实施例中,上述步骤s12中对所述第一流媒体文件进行播放,包括如下步骤a至步骤d:121.步骤a、解封装所述第一流媒体文件获取所述第一流媒体文件对应的基本流数据。122.步骤b、将所述第一流媒体文件对应的基本流数据缓存至缓存队列中。123.步骤c、依次解码所述缓存队列中的数据获取所述第一流媒体文件对应的播放数据。124.步骤d、根据所述第一流媒体文件对应的播放数据对所述第一流媒体文件进行播放。125.在一些实施例中,上述步骤s12中在播放所述第一流媒体文件的过程中回调所述第一流媒体文件对应的数据,包括:126.回调所述第一流媒体文件对应的播放数据。127.即,在上述步骤c解码得到第一流媒体文件对应的播放数据后,对第一流媒体文件对应的播放数据进行回调。128.在一些实施例中,上述步骤s12中在播放所述第一流媒体文件的过程中回调所述第一流媒体文件对应的数据,包括:129.回调所述解码模块读取的所述第一流媒体文件对应的基本流数据。130.即,在上述步骤c中读取第一流媒体文件对应的播放数据进行解码时,对第一流媒体文件对应的基本流数据进行回调。131.s13、对所述第二流媒体文件进行录制,获取所述第二流媒体文件对应的数据。132.在一些实施例中,第二流媒体文件为视频文件,第二流媒体文件对应的数据可以为图像数据。例如:yuv格式的数据或rgb格式的数据。133.在一些实施例中,第二流媒体文件为音频频文件,第二流媒体文件对应的数据为pcm数据。134.s14、根据所述第一流媒体文件对应的数据和所述第二流媒体文件对应的数据生成音频基本流数据和视频基本流数据。135.在一些实施例中,第一流媒体文件为视频文件,第二流媒体文件为音频文件,根据所述第一流媒体文件对应的数据和所述第二流媒体文件对应的数据生成音频基本流数据和视频基本流数据,包括:136.根据所述第一流媒体文件对应的数据获取视频基本流数据;137.根据所述第二流媒体文件对应的数据获取音频基本流数据。138.在一些实施例中,第一流媒体文件为音频文件,第二流媒体文件为视频文件,根据所述第一流媒体文件对应的数据和所述第二流媒体文件对应的数据生成音频基本流数据和视频基本流数据,包括:139.根据所述第一流媒体文件对应的数据获取音频基本流数据;140.根据所述第二流媒体文件对应的数据获取视频基本流数据。141.s15、对所述音频基本流数据和所述视频基本流数据进行封装,以合成所述第三流媒体文件。142.在一些实施例中,可以在播放线程完成播放准备时,对封装模块进行初始化,并创建音频基本流数据和所述视频基本流数据的轨道信息,以通过封装模块实现对所述音频基本流数据和所述视频基本流数据的封装。143.本技术实施例提供的显示设备在通过用户接口接收到用于触发播放第一流媒体文件、录制第二流媒体文件以及基于所述第一流媒体文件和所述第二流媒体文件进行第三流媒体文件的合成的触发操作时,通过播放器对所述第一流媒体文件进行播放,并在播放所述第一流媒体文件的过程中回调所述第一流媒体文件对应的数据,通过检测器对所述第二流媒体文件进行录制,获取所述第二流媒体文件对应的数据,通过处理器根据所述第一流媒体文件对应的数据和所述第二流媒体文件对应的数据生成音频基本流数据和视频基本流数据,以及通过封装器对所述音频基本流数据和所述视频基本流数据进行封装,以合成所述第三流媒体文件。由于本技术实施例提供的显示设备能够在播放器第一流媒体文件和录制第二流媒体文件的过程中,实现根据第一流媒体文件对应数据和第二流媒体文件对应的数据生成音频基本流数据和视频基本流数据,以及对所述音频基本流数据和所述视频基本流数据进行封装,以合成所述第三流媒体文件,因此本技术实施例提供的显示设备能够在播放流媒体文件以及录制流媒体文件时,实时对播放的流媒体文件和录制的流媒体文件进行合成,实现在播放流媒体文件和录制流媒体文件的同时,根据播放的流媒体文件和录制的流媒体文件进行新的流媒体文件的合成。144.参照图7所示,当第一多媒体文件为视频文件,第二多媒体文件为音频文件,回调所述第一流媒体文件对应的播放数据时,本技术实施例提供的多媒体文件合成方法包括:145.s71、接收用户输入的触发操作。146.其中,触发操作用于触发播放视频文件、录制音频文件以及基于所述视频文件和所述音频文件进行流媒体文件的合成。147.s72、对所述视频文件进行播放,并在播放所述视频文件的过程中回调所述视频文件对应的图像数据。148.s73、对所述视频文件对应的图像数据进行编码获取所述视频文件对应的视频基本流数据。149.在一些实施例中,对所述视频文件对应的图像数据进行编码获取所述视频文件对应的视频基本流数据的实现方式包括:150.通过h264硬编码的方式对所述视频文件对应的图像数据进行编码获取所述视频文件对应的视频基本流数据。151.s74、对所述音频文件进行录制,获取所述音频文件对应的pcm数据。152.在本技术实施例中,对所述视频文件进行播放和对所述音频文件进行录制是同时开始的,在一些实施例中,控制对所述视频文件进行播放和对所述音频文件进行录制同时开始的实现方式为:在完成视频文件的播放准备时,向录音线程发送指示信息,从而使所述视频文件的播放和所述音频文件的录制同时开始。153.s75、对所述pcm数据进行音频编码,生成音频基本流数据。154.s76、对所述音频基本流数据和所述视频基本流数据进行封装,以合成所述流媒体文件。155.进行封装时需要提供基本流的时间戳信息,针对音频基本流,可以基于采样率、声道数信息从初始时刻(0)开始写入音频帧的时间戳。例如:在音频采样率为44.1khz,声道数为2,编码方式为高级音频编码(advancedaudiocoding,acc)的情况下,录制的pcm数据为16位小端序,则每一帧pcm数据大小为1024x2x2=4096字节,每一帧的时间戳时长为1024/44.1=23.22ms。而针对视频这一路,由于播放器时间戳不一定是从初始时刻(0)开始的,例如直播片源,起播时间戳一般不是初始时刻,此时视频基本流数据的时间戳需要减去第一帧的时间戳,即采用相对第一帧视频数据的时间戳进行封装模块。156.参照图8所示,当第一多媒体文件为音频文件,第二多媒体文件为视频文件,回调所述第一流媒体文件对应的播放数据时,本技术实施例提供的多媒体文件合成方法包括:157.s81、接收用户输入的触发操作。158.其中,触发操作用于触发播放音频文件、录制视频文件以及基于所述视频文件和所述音频文件进行流媒体文件的合成。159.s82、对所述音频文件进行播放,并在播放所述音频文件的过程中回调所述音频文件对应的pcm数据。160.s83、对所述音频文件对应的pcm数据进行编码获取所述音频文件对应的音频基本流数据。161.s84、对所述视频文件进行录制,获取所述视频文件对应的图像数据。162.同样,在本技术实施例中,对所述音频文件进行播放和对所述视频文件进行录制是同时开始的,在一些实施例中,控制对所述音频文件进行播放和对所述视频文件进行录制同时开始的实现方式为:在完成音频文件的播放准备时,向录像线程发送指示信息,从而使所述音频文件的播放和所述视频文件的录制同时开始。163.s85、对所述图像数据进行视频编码,生成视频基本流数据。164.s86、对所述音频基本流数据和所述视频基本流数据进行封装,以合成所述流媒体文件。165.同样,进行封装时需要提供基本流的时间戳信息,针对视频基本流,可以基于帧率、视频轨道信息从初始时刻(0)开始写入视频帧的时间戳。而针对音频这一路,由于播放器时间戳不一定是从初始时刻(0)开始的,此时音频基本流数据的时间戳需要减去第一帧的时间戳,即采用相对第一帧音频数据的时间戳进行封装模块。166.参照图9所示,当第一多媒体文件为视频文件,第二多媒体文件为音频文件,回调所述第一流媒体文件对应的基本流数据时,本技术实施例提供的多媒体文件合成方法包括:167.s91、接收用户输入的触发操作。168.其中,触发操作用于触发播放视频文件、录制音频文件以及基于所述视频文件和所述音频文件进行流媒体文件的合成。169.s92、对所述视频文件进行播放,并在播放所述视频文件的过程中回调解码模块读取的视频基本流数据。170.参照图4所示,播放器播放视频文件的过程中,相同时间戳的视频基本流数据比图像数据生成的早,若回调解封装模块中的视频基本流数据并送入封装模块进行封装,则会导致同一时间戳的音视频偏移量较大,在有些播放器播放时触发死锁导致无法播放或播放频繁卡顿等异常,上述实施例回调解码模块读取的视频基本流数据,因此可以减少同一时间戳的音视频偏移量,进而避免播放器播放时触发死锁导致无法播放或播放频繁卡顿等异常。171.s93、对所述音频文件进行录制,获取所述音频文件对应的pcm数据。172.s94、对所述pcm数据进行音频编码,生成音频基本流数据。173.s95、对所述音频基本流数据和所述视频基本流数据进行封装,以合成所述流媒体文件。174.相比于在播放所述视频文件的过程中回调所述视频文件对应的图像数据,播放视频文件的同时还需要执行编码操作,特别是高帧率、高码率的视频编码会消耗大量的系统计算以及内存资源,非常容易出现视频播放卡顿问题,从而引发播放的视频与录制的音频出现音画不同步等异常,图9所示实施例在回调视频文件对应的数据时,选择回调视频基本流数据,而不是视频对应的图像数据,因此图9所示实施例可以避免视频数据编码,以及避免视频画质的改变。175.参照图10所示,当第一多媒体文件为音频文件,第二多媒体文件为视频文件,回调所述第一流媒体文件对应的基本流数据时,本技术实施例提供的多媒体文件合成方法包括:176.s101、接收用户输入的触发操作。177.其中,触发操作用于触发播放音频文件、录制视频文件以及基于所述视频文件和所述音频文件进行流媒体文件的合成。178.s102、对所述音频文件进行播放,并在播放所述视频文件的过程中回调解码模块读取的音频基本流数据。179.同行所述,回调解码模块读取的音频基本流数据,可以减少同一时间戳的音视频偏移量,进而避免播放器播放时触发死锁导致无法播放或播放频繁卡顿等异常。180.s103、对所述视频文件进行录制,获取所述视频文件对应的图像数据。181.s104、对所述图像数据进行视频编码,生成视频基本流数据。182.s105、对所述音频基本流数据和所述视频基本流数据进行封装,以合成所述流媒体文件。183.相比于在播放所述音频文件的过程中回调所述视频文件对应的pcm数据,播放音频文件的同时还需要消耗的系统计算以及内存资源执行编码操作,非常容易出现视频播放卡顿问题,从而引发播放的视频与录制的音频出现音画不同步等异常,图10所示实施例在回调音频文件对应的数据时,选择回调音频基本流数据,而不是音频对应的pcm数据,因此图10所示实施例可以避免音频数据编码,以及避免音频音质的改变。184.参照图11所示,当第一多媒体文件为视频文件,第二多媒体文件为音频文件,回调所述第一流媒体文件对应的基本流数据时,本技术实施例提供的多媒体文件合成方法包括:185.s111、接收用户输入的触发操作。186.其中,触发操作用于触发播放视频文件、录制音频文件以及基于所述视频文件和所述音频文件进行流媒体文件的合成。187.s112、对所述视频文件进行播放,并在播放所述视频文件的过程中回调解码模块读取的视频基本流数据。188.s113、对所述音频文件进行录制,获取所述音频文件对应的pcm数据。189.s114、对所述pcm数据进行音频编码,生成音频基本流数据。190.s115、以预设时长为周期,周期性获取播放器时间戳。191.在一些实施例中,可以获取播放器当前播放的视频帧的时间戳作为播放器时间戳。192.在一些实施例中,上述步骤s115可以为包括:以预设时长100ms周期,周期性获取播放器时间戳。193.s116、确定回调的视频基本流数据的时间戳与所述播放器时间戳的差值是否小于预设值。194.示例性的,预设值可以为2s、3s等。195.在上述步骤s116中,若确定回调的视频基本流数据的时间戳与所述播放器时间戳的差值大于预设值,则继续执行上述步骤s115,若确定回调视频基本流数据的时间戳与所述播放器时间戳的差值小于预设值,则执行如下步骤s117。196.s117、将所述视频基本流数据送入所述封装器。197.s118、对所述音频基本流数据和所述视频基本流数据进行封装。198.上述实施例每隔预设时长获取播放器时间戳,若回调的视频基本流数据的时间戳与播放器时间戳在一定阈值范围内,则将视频基本流数据送入封装模块进行封装,因此上述实施例彻底避免解决了音视频时间戳和视频时间戳偏差过大的问题。199.参照图12所示,当第一多媒体文件为音频文件,第二多媒体文件为视频文件,回调所述第一流媒体文件对应的基本流数据时,本技术实施例提供的多媒体文件合成方法包括:200.s121、接收用户输入的触发操作。201.其中,触发操作用于触发播放视频文件、录制音频文件以及基于所述视频文件和所述音频文件进行流媒体文件的合成。202.s122、对所述音频文件进行播放,并在播放所述音频文件的过程中回调解码模块读取的音频基本流数据。203.s123、对所述视频文件进行录制,获取所述视频文件对应的图像数据。204.s124、对所述图像数据进行视频编码,生成视频基本流数据。205.s125、以预设时长为周期,周期性获取播放器时间戳。206.在一些实施例中,可以获取播放器当前播放的音频帧的时间戳作为播放器时间戳。207.s126、确定回调的音频基本流数据的时间戳与所述播放器时间戳的差值是否小于预设值。208.示例性的,预设值可以为2s、3s等。209.在上述步骤s116中,若确定回调的音频基本流数据的时间戳与所述播放器时间戳的差值大于预设值,则继续执行上述步骤s125,若确定回调的音频基本流数据的时间戳与所述播放器时间戳的差值小于预设值,则执行如下步骤s127。210.s127、将所述音频基本流数据送入所述封装器。211.s128、对所述音频基本流数据和所述视频基本流数据进行封装,以合成所述多媒体文件。212.上述实施例每隔预设时长获取播放器时间戳,若回调的音频基本流数据的时间戳与播放器时间戳在一定阈值范围内,则将回调的音频基本流数据送入封装模块进行封装,因此上述实施例彻底避免解决了音视频时间戳和视频时间戳偏差过大的问题。213.在一些实施例中本技术实施例提供的对媒体文件合成方法还支持用户选择第一多媒体文件的起始位置和终止位置与第二多媒体文件进行实时合成,参照图13所示,其实现方式包括如下步骤:214.s1301、接收目标片段的起始位置和终止位置。215.其中,所述目标片段为所述第一流媒体文件中用于合成所述第三流媒体文件的片段。216.s1302、确定目标位置。217.其中,所述目标位置为位于所述起始位置之前且与所述起始位置最近的关键帧的位置。218.s1303、接收用户输入的触发操作。219.其中,所述触发操作用于触发播放第一流媒体文件、录制第二流媒体文件以及基于所述第一流媒体文件和所述第二流媒体文件进行第三流媒体文件的合成。220.s1304、对所述第一流媒体文件进行播放。221.s1305、确定所述第一流媒体文件的播放位置是否超过所述目标位置。222.在上述步骤s1305中,若第一流媒体文件的播放位置未超过所述目标位置,则返回步骤s1304,若所述第一流媒体文件的播放位置超过所述目标位置,则执行如下步骤s1306。223.s1306、对所述第二流媒体文件进行录制,获取所述第二流媒体文件对应的数据,以及开始回调所述第一流媒体文件对应的数据。224.s1307、根据所述第一流媒体文件对应的数据和所述第二流媒体文件对应的数据生成音频基本流数据和视频基本流数据。225.s1308、对所述音频基本流数据和所述视频基本流数据进行封装,以合成所述第三多媒体文件。226.s1309、确定所述第一流媒体文件的播放位置是否超过所述终止位置。227.在上述步骤s1309中,若第一流媒体文件的播放位置未超过所述终止位置,则返回步骤s1306,若所述第一流媒体文件的播放位置超过所述目标位置,则执行如下步骤s1310。228.s1310、停止对所述第二流媒体文件进行录制,以及停止回调所述第一流媒体文件对应的数据。229.在一些实施例中,本技术实施例提供的多媒体文件合成方法还包括:230.在所述第一流媒体文件的播放位置超过所述终止位置时,停止对所述第一流媒体文件进行播放。231.参照图14所示,当所述第一流媒体文件包括:视频文件和第一音频文件,所述第二流媒体文件为第二音频文件,第二多媒体文件为音频文件时,本技术实施例提供的多媒体文件合成方法包括:232.s141、接收用户输入的触发操作。233.其中,所述触发操作用于触发播放第一流媒体文件、录制第二流媒体文件以及基于所述第一流媒体文件和所述第二流媒体文件进行第三流媒体文件的合成。234.s142、播放所述第一流媒体文件,并在播放所述第一流媒体文件的过程中回调所述视频文件对应的基本流数据和所述第一音频文件对应的pcm数据。235.s143、对所述第二流媒体文件进行录制,获取所述第二流媒体文件对应的pcm数据。236.s144、根据所述第一音频文件对应的pcm数据和所述第二流媒体文件对应的数据生成音频数据流。237.s145、对所述音频基本流数据和所述视频基本流数据进行封装,以合成所述第三流媒体文件。238.在一些实施例中,根据所述第一音频文件对应的pcm数据和所述第二流媒体文件对应的数据生成音频数据流,包括:239.将所述第一音频文件对应的pcm数据缓存至第一数据队列;将所述第二音频文件对应的pcm数据缓存至第二数据队列;基于预设规则对所述第一数据队列和所述第二数据队列中的pcm数据进行混合生成混合音频数据;以及对所述混合音频数据进行编码生成所述音频基本流数据。240.参照图15所示,在一些实施例中,上述实施例的实现方式包括:当接收到用户输入的触发操作时,通过资源加载模块获取第一多媒体文件,并将第一多媒体送入解封装模块进行解封装。第一多媒体文件的解封装结果包括一路音频基本流数据和一路视频基本流数据,且音频基本流数据和视频基本流数据会分别被缓存至音频基本流数据队列和视频基本流数据队列。视频基本流数据获取方式为:回调所述解码模块读取的视频基本流数据。视频基本流数据获取方式为:回调第一音频文件对应的pcm数据,并存储至第一数据队列,通过声音采集器获取第二音频文件对应的pcm数据,并存储至第二数据队列,基于预设规则对所述第一数据队列和所述第二数据队列中的pcm数据进行混合生成混合音频数据,在对混合音频数据进行编码获取音频基本流数据。最后对所述音频基本流数据和所述视频基本流数据进行封装,以合成所述第三流媒体文件。241.由于每一帧的音频数据大小是固定的,例如一帧aac格式的音频数据,2声道,16bit大小固定为4096字节,因此在一些实施例中,可以数据量对第一数据队列和第二数据队列中的数据进行合成。242.在一些实施例中,本技术实施例提供的多媒体文件合成方法还可以按需调整第二音频文件的延迟。例如前5帧只取第一数据队列中的数据,第6帧起才开始对第一数据队列和第二数据队列中的音频数据进行合成,针对44.1k采样的音频,就可以将麦克声音延后5x1024/44.1ms。243.本技术实施例提供还提供了一种计算机可读存储介质,该计算机可读存储介质上存储计算机程序,该计算机程序被处理器执行时实现上述流媒体文件合成方法执行的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。244.其中,该计算机可读存储介质可以为只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等。245.本技术提供一种计算机程序产品,包括:当所述计算机程序产品在计算机上运行时,使得所述计算机实现上述的流媒体文件合成方法。246.为了方便解释,已经结合具体的实施方式进行了上述说明。但是,上述在一些实施例中讨论不是意图穷尽或者将实施方式限定到上述公开的具体形式。根据上述的教导,可以得到多种修改和变形。上述实施方式的选择和描述是为了更好的解释原理以及实际的应用,从而使得本领域技术人员更好的使用实施方式以及适于具体使用考虑的各种不同的变形的实施方式。247.最后应说明的是:以上各实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述各实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1