本公开涉及数据存储技术领域,特别涉及一种存储媒体数据的方法和装置。
背景技术:
对于占用存储空间较大的媒体数据,终端可以将该媒体数据存储在云端设备(如云端服务器)中,当终端需要使用时,再从云端设备中获取,其它的终端需要使用上述媒体数据时,也可以从云端设备中获取。
例如,在交通领域中,媒体数据可以是视频数据,摄像头将采集的视频数据可以上传至云端设备,云端设备对视频数据进行存储,交通控制中心的终端可以从云端设备获取视频数据,并对视频数据进行处理,例如,可以播放视频数据,以供工作人员查看。
在实现本公开的过程中,发明人发现相关技术至少存在以下问题:
当终端对整段媒体数据中的某一片段媒体数据进行处理时,也需要先从云端设备中获取整段的媒体数据,然后再根据需求从中寻找所需的片段,这样显然会降低终端对媒体数据的处理效率。
技术实现要素:
本公开实施例提供了一种存储媒体数据的方法和装置,以解决相关技术的问题。所述技术方案如下:
根据本公开实施例,提供了一种存储媒体数据的方法,所述方法包括:
接收第一终端发送的媒体数据;
确定所述媒体数据中媒体帧的录制时间点;
对所述媒体数据和所述媒体帧的录制时间点进行存储;
当接收到第二终端发送的携带有目标时间范围和所述媒体数据的标识信息的数据获取请求时,获取录制时间点与所述目标时间范围相对应的媒体帧,发送给所述第二终端。
可选的,所述方法还包括:
接收第一终端发送的所述媒体数据的开始录制时间点和结束录制时间点;
所述确定所述媒体数据中媒体帧的录制时间点,包括:
基于所述媒体数据的开始录制时间点和预先存储的媒体关键帧的播放时间间隔,确定每个媒体关键帧的录制时间点;
所述对所述媒体数据和所述媒体帧的录制时间点进行存储,包括:
基于所述媒体数据的开始录制时间点、结束录制时间点,确定所述媒体数据的总录制时长;
基于所述媒体数据的总录制时长、所述媒体关键帧的播放时间间隔和所述媒体数据的总数据量,确定每个媒体关键帧在所述媒体数据中的数据位置;
对所述媒体数据、每个媒体关键帧在所述媒体数据中的数据位置和每个媒体关键帧的录制时间点进行存储。
可选的,所述确定所述媒体数据中媒体帧的录制时间点之前,所述方法还包括:
如果所述媒体数据的格式不是预设格式,则将所述媒体数据的格式转换为所述预设格式。
可选的,所述如果所述媒体数据的格式不是预设格式,则将所述媒体数据的格式转换为所述预设格式,包括:
如果所述媒体数据的编码格式不是预设编码格式,则将所述媒体数据的编码格式转换为预设编码格式;
如果所述媒体数的封装格式不是预设封装格式,则将所述媒体数据的封装格式转换为预设封装格式。
可选的,所述确定所述媒体数据中媒体帧的录制时间点,包括:
对预设格式的媒体数据进行解码,在解码后的媒体数据中,获取媒体帧的录制时间点。
根据本公开实施例,提供了一种存储媒体数据的装置,所述装置包括:
接收模块,用于接收第一终端发送的媒体数据;
确定模块,用于确定所述媒体数据中媒体帧的录制时间点;
存储模块,用于对所述媒体数据和所述媒体帧的录制时间点进行存储;
发送模块,用于当接收到第二终端发送的携带有目标时间范围和所述媒体数据的标识信息的数据获取请求时,获取录制时间点与所述目标时间范围相对应的媒体帧,发送给所述第二终端。
可选的,所述接收模块,还用于:
接收第一终端发送的所述媒体数据的开始录制时间点和结束录制时间点;
所述确定模块,具体用于:基于所述媒体数据的开始录制时间点和预先存储的媒体关键帧的播放时间间隔,确定每个媒体关键帧的录制时间点;
所述存储模块,具体用于:
基于所述媒体数据的开始录制时间点、结束录制时间点,确定所述媒体数据的总录制时长;
基于所述媒体数据的总录制时长、所述媒体关键帧的播放时间间隔和所述媒体数据的总数据量,确定每个媒体关键帧在所述媒体数据中的数据位置;
对所述媒体数据、每个媒体关键帧在所述媒体数据中的数据位置和每个媒体关键帧的录制时间点进行存储。
可选的,所述确定模块,之前所述装置还包括转换模块,用于如果所述媒体数据的格式不是预设格式,则将所述媒体数据的格式转换为所述预设格式。
可选的,所述转换模块,具体用于:
如果所述媒体数据的编码格式不是预设编码格式,则将所述媒体数据的编码格式转换为预设编码格式;
如果所述媒体数的封装格式不是预设封装格式,则将所述媒体数据的封装格式转换为预设封装格式。
可选的,所述确定模块,具体用于:
对预设格式的媒体数据进行解码,在解码后的媒体数据中,获取媒体帧的录制时间点。
根据本公开实施例,提供了一种存储媒体数据的系统,所述系统包括第一终端、服务器和第二终端,其中:
第一终端,用于向服务器发送媒体数据;
所述服务器,用于确定所述媒体数据中媒体帧的录制时间点;对所述媒体数据和所述媒体帧的录制时间点进行存储;当接收到第二终端发送的携带有目标时间范围和所述媒体数据的标识信息的数据获取请求时,获取录制时间点与所述目标时间范围相对应的媒体帧,发送给所述第二终端;
第二终端,用于向服务器发送携带有目标时间范围和所述媒体数据的标识信息的数据获取请求,接收所述服务器发送的录制时间点与所述目标时间范围相对应的媒体帧。
根据本公开实施例,提供了一种计算机设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序,实现上述任一所述的方法步骤。
根据本公开实施例,提供了一种计算机可读存储介质,其特征在于,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的方法步骤。
本申请实施例提供的技术方案带来的有益效果至少包括:
在本公开实施例中,云端设备中的服务器存储媒体数据的过程可以是,首先服务器接收第一终端发送的媒体数据;然后服务器确定所述媒体数据中媒体帧的录制时间点;之后服务器对所述媒体数据和所述媒体帧的录制时间点进行存储。当服务器接收到第二终端发送的携带有目标时间范围和所述媒体数据的标识信息的数据获取请求时,便可以获取录制时间点与所述目标时间范围相对应的媒体帧,发送给所述第二终端。这样,第二终端无需从服务器中获取所有媒体数据,可以选择性的获取目标时间范围内的媒体数据,进而,对于第二终端便省去了从所有媒体数据查询所需媒体数据的过程,进而可以提高第二终端对获取的媒体数据的处理效率。
附图说明
为了更清楚地说明本公开实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本公开实施例提供的一种存储媒体数据的方法的流程示意图;
图2是本公开实施例提供的一种存储媒体数据的方法的流程示意图;
图3是本公开实施例提供的一种存储媒体数据的方法的流程示意图;
图4是本公开实施例提供的一种存储媒体数据的装置的结构示意图;
图5是本公开实施例提供的一种存储媒体数据的装置的结构示意图;
图6是本公开实施例提供的一种存储媒体数据的装置的结构示意图;
图7是本公开实施例提供的一种存储媒体数据的装置的结构示意图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开实施方式作进一步地详细描述。
本公开实施例提供了一种存储媒体数据的方法,该方法在云端设备中的服务器和至少一个终端的配合下实现。终端可以是采集媒体数据的设备,例如,可以是摄像头、行车记录仪等,服务器可以是云端设备中的存储服务器。该方法的一种可能的应用场景可以是,第一终端将采集的媒体数据上传至服务器,服务器对接收到的媒体数据进行存储,第二终端可以根据需求从服务器中获取相应的媒体数据,其中,第一终端和第二终端可以属于同一个终端,也可以是两个不同的终端。相关技术中,服务器仅仅对接收到的媒体数据进行存储,并不对媒体数据进行一些分析处理,这样至少存在以下问题:
第一,第二终端获取媒体数据之后,可能会存在打不开媒体数据的情况,进而无法对获取到的媒体数据进行处理。
第二,第一终端向服务器上传的媒体数据是所有时间范围内的媒体数据,而第二终端可能不需要所有时间段内的媒体数据,仅仅需要其中一小段时间范围内的媒体数据。这种情况下,第二终端也得将所有时间范围内的媒体数据获取之后,第二终端再根据需求从中寻找所需的其中一小段时间范围内的媒体数据,这样显然会降低第二终端对媒体数据的处理效率。
基于以上问题,本实施例提供了一种存储媒体数据的方法,如图1所示,该方法的处理流程可以如下:
在步骤101中,服务器接收第一终端发送的媒体数据。
其中,媒体数据可以是视频数据、音频数据或者音视频数据等。
在实施中,由于媒体数据所占用的存储空间比较大,为了节约终端的存储空间,终端可以将这些媒体数据上传至服务器中,在服务器中存储。例如,第一终端可以将采集的媒体数据经过编码压缩封装之后发送给服务器,进而,服务器可以接收第一终端发送的媒体数据。
在一种可能的应用中,第一终端可以实时地向服务器上传媒体数据,也即是,第一终端可以一边采集媒体数据,一边上传至服务器。又例如,第一终端也可以周期性的将采集的媒体数据上传至服务器,当达到上传周期时,第一终端向服务器发送当前周期所采集的媒体数据。又例如,第一终端和服务器之间建立连接之后,服务器周期性的向第一终端发送上传媒体数据的上传通知,第一终端接收到服务器发送的上传通知之后,将当前周期采集到的媒体数据上传至服务器。
在步骤102中,服务器确定媒体数据中媒体帧的录制时间点。
在实施中,服务器接收到第一终端发送的媒体数据之后,可以确定媒体数据中每一个媒体帧的录制时间点,确定的方式具有多种,下文将会详细介绍其中的几种。
在步骤103中,服务器对媒体数据和媒体帧的录制时间点进行存储。
在实施中,服务器确定媒体数据中媒体帧的录制时间点之后,再对媒体数据和媒体数据中每个媒体帧的录制时间点进行存储,之后服务器再向第一终端发送媒体数据的存储地址,例如,服务器完成存储之后,向第一终端返回媒体数据的url(uniformresourcelocator,统一资源定位符)。
在步骤104中,当服务器接收到第二终端发送的携带有目标时间范围和媒体数据的标识信息的数据获取请求时,获取录制时间点与目标时间范围相对应的媒体帧,发送给第二终端。
其中,媒体帧可以包括媒体关键帧和媒体参考帧,媒体关键帧可以单独播放,而媒体参考帧需要在具有与之相关的媒体关键帧的情况下才能播放。
上述与目标时间范围相对应的媒体帧包括录制时间点落在目标时间范围内的媒体帧。而如果目标时间范围的起始时间点对应的媒体帧为媒体参考帧,则与目标时间范围相对应的媒体帧还包括与起始时间点对应的媒体参考帧相关的媒体关键帧,也即是在该媒体参考帧之前的与之最相近的媒体关键帧。例如,目标时间范围为2018年11月15日上午10点到上午12点,而10点对应的媒体帧为媒体参考帧,该媒体参考帧之前与之最近的媒体关键帧为9点59分,则与目标时间范围相对应的媒体帧包括落在2018年11月15日上午9点59分到上午12点之间的媒体帧。
在实施中,第二终端可以根据需要向服务器获取所需的媒体数据,例如,第二终端可能只需要处理目标时间范围内的媒体数据,那么第二终端就可以向服务器发送数据获取请求,其中,数据获取请求中携带有目标时间范围和媒体数据的标识信息,标识信息可以是媒体数据的url。服务器接收到第二终端发送的数据获取请求之后,可以获取录制时间点与所述目标时间范围相对应的媒体帧,并将这些媒体帧发送给第二终端。第二终端接收到服务器发送的含有上述媒体帧的媒体数据之后,便可以对获取的媒体数据直接进行处理。
这样,第二终端无需从服务器中获取所有媒体数据,可以仅仅获取所需的媒体数据,进而,对于第二终端便省去了从所有媒体数据查询所需媒体数据的过程,进而可以提高终端对从服务器获取的媒体数据的处理效率。
可选的,为了使第二终端都能够打开所获取的媒体数据,相应的,服务器在确定媒体数据中媒体帧的录制时间点之前,首先判断一下从第一终端所接收到的媒体数据的格式,如果媒体数据的格式不是预设格式,则将媒体数据的格式转换为所述预设格式。
其中,媒体数据的格式包括编码格式和封装格式,相应的,预设格式可以包括预设编码格式和预设封装格式,那么相应的,预设格式的媒体数据也即是,编码格式为预设编码格式且封装格式为预设封装格式的媒体数据。
预设编码格式是一种大多数终端都能够进行解码的格式,例如可以是h.164编码格式,预设封装格式是一种大多数终端都能够打开的封装格式,例如可以是ps封装格式。对于音视频数据,封装格式也即是就是将已经编码压缩好的视频轨和音频轨按照一定的格式放到一个文件中的格式。
在实施中,由于预设格式包括预设编码格式和预设封装格式,相应的,服务器为了将不是预设格式的媒体数据的格式转换为预设格式,相应的,如果媒体数据的编码格式不是预设编码格式,则将媒体数据的编码格式转换为预设编码格式;如果媒体数的封装格式不是预设封装格式,则将媒体数据的封装格式转换为预设封装格式。
这样,服务器将接收到的媒体数据转换为预设格式的媒体数据,由于预设格式是大部分终端都能够进行分析处理的格式,使得从服务器获取媒体数据的第二终端都能够打开该媒体数据,进而,避免了第二终端获取到媒体数据而出现打不开媒体数据的情况。
可选的,服务器确定媒体数据中媒体帧的录制时间点的方式具有多种,例如,一种可能的方式可以是,在媒体数据为预设格式的媒体数据的情况下,服务器对预设格式的媒体数据进行解码,在解码后的媒体数据中,获取媒体帧的录制时间点。
在一种可能的应用中,服务器接收到第一终端发送的媒体数据之后,可以首先检测媒体数据的格式,如果媒体数据的格式为预设格式,则对预设格式的媒体数据进行解码,得到媒体数据中每个媒体帧的录制时间点。如果服务器接收到的媒体数据的格式不是预设格式,则服务器将不是预设格式的媒体数据的格式转换为预设格式,然后,对预设格式的媒体数据进行解码,获取媒体数据中每一个媒体帧的录制时间点。
可选的,在媒体数据的格式不是预设格式且不对媒体数据进行转格式的情况,服务器还可以通过如下方式得到媒体数据中每个媒体帧的录制时间点,相应的,服务器在接收第一终端发送的媒体数据的同时,还接收到第一终端发送的媒体数据的开始录制时间点和结束录制时间点,这样,服务器便可以根据开始录制时间点和预先存储的媒体关键帧的播放时间间隔,确定每个媒体关键帧的录制时间点。
其中,媒体关键帧的播放时间间隔是一个经验值,例如,可以是1秒,也即是,一秒播放一个媒体关键帧。
在实施中,服务器虽然可以根据媒体数据的开始录制时间点和媒体数据中媒体关键帧的播放时间间隔,确定媒体关键帧的录制时间点,但是服务器并不能确定媒体关键帧的数据位置。为了确定媒体关键帧的数据位置,对于步骤103,服务器便可以按照如图2所示的流程执行:
在步骤1031中,服务器基于媒体数据的开始录制时间点、结束录制时间点,确定媒体数据的总录制时长。
在实施中,服务器将结束录制时间点减去开始录制时间点,便可以得到媒体数据的总录制时长。
在步骤1032中,服务器可以基于媒体数据的总录制时长、媒体关键帧的播放时间间隔和媒体数据的总数据量,确定每个媒体关键帧在媒体数据中的数据位置。
其中,各媒体帧的数据按照时间顺序在媒体数据中排列放置,每个媒体帧在媒体数据中都有自己的数据位置。例如,媒体数据的总数据量为10兆,假设每一个媒体关键帧所占的数据为1兆,那么,在表示数据的数据轴上,可以将10兆的总数据量十等分,进一步,按照时序排列的第一个媒体关键帧在数据轴上的数据位置为0兆至1兆之间的位置,第二个媒体关键帧在数据轴上的数据位置为1兆至2兆之间的位置,以此类推,第三个媒体关键帧在数据轴上的数据位置为2兆至3兆之间的位置。
在实施中,服务器可以是基于媒体数据的总录制时长和媒体关键帧的播放时间间隔确定媒体数据中媒体关键帧的数量,例如,媒体数据中具有n个媒体关键帧。然后,服务器按照每个媒体关键帧的数据量相等,基于媒体数据的总数据量,可以得到每一个媒体关键帧的数据量,由于媒体关键帧的数据位置是按照时序排列的,那么服务器便可以确定每一个媒体关键帧在媒体数据中的数据位置。
在步骤1033中,对媒体数据、每个媒体关键帧在媒体数据中的数据位置和每个媒体关键帧的录制时间点进行存储。
在实施中,服务器确定媒体数据中,每个媒体关键帧的数据位置和每个媒体关键帧的录制时间点后,便可以对媒体数据、每个媒体关键帧在媒体数据中的数据位置和每个媒体关键帧的录制时间点进行存储。
可选的,如果第一终端只向服务器发送了媒体数据和媒体数据的开始录制时间点,那么,服务器基于开始录制时间点和预先存储的媒体关键帧的播放时间间隔,确定媒体数据中,每个媒体关键帧的录制时间点之后,确定每个媒体关键帧的数据位置的过程可以是:
首先,服务器基于媒体数据的总数据量和预先存储的媒体数据的码率,确定媒体数据的总录制时长,其中,码率是指在单位时间内媒体数据所使用的数据流量,预先存储的码率可以是个经验值,例如,可以是4兆每秒,或者16兆每秒。然后,服务器再基于媒体数据的总录制时长、媒体关键帧的播放时间间隔和媒体数据的总数据量,确定每个媒体关键帧在媒体数据中的数据位置。
同样,如果第一终端只向服务器发送了媒体数据和媒体数据的结束录制时间点,那么,服务器可以是首先基于媒体数据的总数据量和预先存储的码率,确定媒体数据的总录制时长;之后,服务器根据媒体数据的总录制时长和结束录制时间点,确定媒体数据的开始录制时间点,这样,服务器便可以根据媒体数据的开始录制时间点和预先存储的每个媒体关键帧的播放时间间隔,确定每个媒体关键帧的录制时间点。服务器还可以根据媒体数据的总录制时长、媒体关键帧的播放时间间隔和媒体数据的总数据量,确定每个媒体关键帧在媒体数据中的数据位置。
可选的,如果第一终端仅仅向服务器发送了媒体数据,并没有发送媒体数据的开始录制时间点和结束录制时间点,服务器相应的处理过程可以是:首先,服务器将接收媒体数据的时间点,确定为媒体数据的开始录制时间点;然后,服务器基于媒体数据的开始录制时间点和预先存储的媒体关键帧的播放时间间隔,确定每个媒体关键帧的录制时间点;对所述媒体数据和媒体帧的录制时间点进行存储的过程也即是,服务器基于预先存储的媒体数据的码率和媒体数据的总数据量,确定媒体数据的总录制时长;服务器基于媒体数据的总录制时长、媒体关键帧的播放时间间隔和媒体数据的总数据量,确定每个媒体关键帧在媒体数据中的数据位置;服务器对媒体数据、每个媒体关键帧在媒体数据中的数据位置和每个媒体关键帧的录制时间点进行存储。
其中,由于服务器将接收到媒体数据的时间确定为开始录制时间点,不太准确,那么,服务器确定出的每个媒体关键帧的录制时间点和每个媒体关键帧在媒体数据中的数据位置也只是估测值。
其中,上述每个媒体关键帧的录制时间点和每个媒体关键帧在媒体数据中的数据位置的确定方式中,通过解码方法确定的比较准确。通过开始录制时间点、媒体数据的总录制时长、预先存储的媒体关键帧的播放时间间隔确定的属于推测的过程,这种方式是一种对媒体关键帧的推测分析。
在一种可能的应用中,第一终端向服务器发送媒体数据时,也可以向服务器发送一些指示信息,例如,可以是第一指示信息,用于指示对媒体数据进行不转格式存储,第二指示信息用于指示对多媒体数据进行转格式存储,第三指示信息用于指示对媒体数据进行自动识别格式,第四指示信息用于对媒体数据不进行自动识别格式。在默认情况下,也即是第一终端不向服务器发送一些指示信息的情况下,服务器可以都按照转格式处理和自动识别格式处理。
这样,该方法可以按照如图3所示的流程执行:
服务器接收第一终端发送的媒体数据,其中农,服务器还可能会接收到第一终端发送的一些指示信息,这些指示信息可以包括上述第三指示信息和第四指示信息中的一种,以及上述第一指示信息和第二指示信息中的一种。
服务器检测到指示信息是第三指示信息和第一指示信息,则对媒体数据的格式进行检测,如果媒体数据的格式是预设格式的媒体数据,则对预设格式的媒体数据进行解码,得到媒体数据中每一个媒体帧的录制时间点。而服务器对媒体数据的格式进行检测之后,如果媒体数据的格式不是预设格式的媒体数据,则服务器再基于上述媒体关键帧推测分析方式,确定每个媒体关键帧的录制时间点以及每个媒体关键帧在媒体数据中的数据位置。最后,服务器对媒体数据、每个媒体关键帧在媒体数据中的数据位置和每个媒体关键帧的录制时间点进行存储。
服务器检测到指示信息是第三指示信息和第二指示信息,则对媒体数据的格式进行检测,如果媒体数据的格式是预设格式的媒体数据,或者,如果媒体数据的格式不是预设格式的媒体数据,则将不是预设格式的媒体数据转换为预设格式的媒体数据。之后,服务器对预设格式的媒体数据进行解码,得到媒体数据中每一个媒体帧的录制时间点,然后对预设格式的媒体数据和每个媒体帧的录制时间点进行存储。
如果服务器检测到指示信息是第四指示信息和第一指示信息,则服务器不对媒体数据进行格式检测,而是直接对媒体数据进行解码处理,如果解码成功,则说明该媒体数据的格式为预设格式,则服务器对预设格式的媒体数据进行解码,得到媒体数据中每一个媒体帧的录制时间点。而如果解码失败,则说明该媒体数据的格式不是预设格式,由于第一指示信息用于指示对媒体数据进行不转格式存储,则服务器再基于媒体关键帧推测分析,确定每个媒体关键帧的录制时间点以及每个媒体关键帧在媒体数据中的数据位置。最后,服务器对媒体数据、每个媒体关键帧在媒体数据中的数据位置和每个媒体关键帧的录制时间点进行存储。
如果服务器检测到指示信息是第四指示信息和第二指示信息,则服务器不对媒体数据进行格式检测,而是直接对媒体数据进行解码处理,如果解码成功,则说明该媒体数据的格式为预设格式,则服务器对预设格式的媒体数据进行解码,得到媒体数据中每一个媒体帧的录制时间点。而如果解码失败,则说明该媒体数据的格式不是预设格式,由于第二指示信息用于指示对媒体数据进行转格式存储,则服务器对预设格式的媒体数据进行解码,得到媒体数据中每一个媒体帧的录制时间点。服务器得到媒体数据中媒体帧的录制时间点之后,对媒体数据和媒体帧的录制时间点进行存储。
在本公开实施例中,云端设备中的服务器存储媒体数据的过程可以是,首先服务器接收第一终端发送的媒体数据;然后服务器确定所述媒体数据中媒体帧的录制时间点;之后服务器对所述媒体数据和所述媒体帧的录制时间点进行存储。这样,当服务器接收到第二终端发送的携带有目标时间范围和所述媒体数据的标识信息的数据获取请求时,便可以获取录制时间点与所述目标时间范围相对应的媒体帧,发送给所述第二终端。这样,第二终端无需从服务器中获取所有媒体数据,可以仅仅获取所需的媒体数据,进而,对于第二终端便省去了从所有媒体数据查询所需媒体数据的过程,进而可以提高终端对从服务器获取的媒体数据的处理效率。
基于相同的技术构思,本公开实施例还提供了一种存储媒体数据的装置,如图4所示,该装置包括:
接收模块410,用于接收第一终端发送的媒体数据;
确定模块420,用于确定所述媒体数据中媒体帧的录制时间点;
存储模块430,用于对所述媒体数据和所述媒体帧的录制时间点进行存储;
发送模块440,用于当接收到第二终端发送的携带有目标时间范围和所述媒体数据的标识信息的数据获取请求时,获取录制时间点与所述目标时间范围相对应的媒体帧,发送给所述第二终端。
可选的,接收模块410,还用于:
接收第一终端发送的所述媒体数据的开始录制时间点和结束录制时间点;
确定模块420,具体用于:基于所述媒体数据的开始录制时间点和预先存储的媒体关键帧的播放时间间隔,确定每个媒体关键帧的录制时间点;
存储模块430,具体用于:
基于所述媒体数据的开始录制时间点、结束录制时间点,确定所述媒体数据的总录制时长;
基于所述媒体数据的总录制时长、所述媒体关键帧的播放时间间隔和所述媒体数据的总数据量,确定每个媒体关键帧在所述媒体数据中的数据位置;
对所述媒体数据、每个媒体关键帧在所述媒体数据中的数据位置和每个媒体关键帧的录制时间点进行存储。
可选的,如图5所示,确定模块420之前,该装置还包括转换模块410’,用于如果所述媒体数据的格式不是预设格式,则将所述媒体数据的格式转换为所述预设格式。
可选的,转换模块410’,具体用于:
如果所述媒体数据的编码格式不是预设编码格式,则将所述媒体数据的编码格式转换为预设编码格式;
如果所述媒体数的封装格式不是预设封装格式,则将所述媒体数据的封装格式转换为预设封装格式。
可选的,确定模块420,具体用于:
对预设格式的媒体数据进行解码,在解码后的媒体数据中,获取媒体帧的录制时间点。
本公开实施例中,云端设备中的装置存储媒体数据的过程可以是,首先,装置接收第一终端发送的媒体数据;然后,装置确定所述媒体数据中媒体帧的录制时间点;之后,装置对所述媒体数据和所述媒体帧的录制时间点进行存储。这样,当装置接收到第二终端发送的携带有目标时间范围和所述媒体数据的标识信息的数据获取请求时,便可以获取录制时间点与所述目标时间范围相对应的媒体帧,发送给所述第二终端。这样,第二终端无需从装置中获取所有媒体数据,可以选择性的获取所需的媒体数据,进而,对于第二终端便省去了从所有媒体数据查询所需媒体数据的过程,进而可以提高终端对从装置获取的媒体数据的处理效率。
需要说明的是:上述实施例提供的存储媒体数据的装置在存储媒体数据时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的存储媒体数据的装置与存储媒体数据的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本公开实施例还提供了一种存储媒体数据的系统,该系统可以包括第一终端、服务器和第二终端,其中:
第一终端,用于向服务器发送媒体数据;
所述服务器,用于确定所述媒体数据中媒体帧的录制时间点;对所述媒体数据和所述媒体帧的录制时间点进行存储;当接收到第二终端发送的携带有目标时间范围和所述媒体数据的标识信息的数据获取请求时,获取录制时间点与所述目标时间范围相对应的媒体帧,发送给所述第二终端;
第二终端,用于向服务器发送携带有目标时间范围和所述媒体数据的标识信息的数据获取请求,接收所述服务器发送的录制时间点与所述目标时间范围相对应的媒体帧。
在本公开实施例中,云端设备中的服务器存储媒体数据的过程可以是,首先服务器接收第一终端发送的媒体数据;然后服务器确定所述媒体数据中媒体帧的录制时间点;之后服务器对所述媒体数据和所述媒体帧的录制时间点进行存储。这样,当服务器接收到第二终端发送的携带有目标时间范围和所述媒体数据的标识信息的数据获取请求时,便可以获取录制时间点与所述目标时间范围相对应的媒体帧,发送给所述第二终端。这样,第二终端无需从服务器中获取所有媒体数据,可以仅仅获取所需的媒体数据,进而,对于第二终端便省去了从所有媒体数据查询所需媒体数据的过程,进而可以提高第二终端对从服务器获取的媒体数据的处理效率。
图6示出了本发明一个示例性实施例提供的终端600的结构框图。该终端600可以是上述的第一终端和第二终端,该终端600可以是笔记本电脑或台式电脑。终端600还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,终端600包括有:处理器601和存储器602。
处理器601可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器601可以采用dsp(digitalsignalprocessing,数字信号处理)、fpga(field-programmablegatearray,现场可编程门阵列)、pla(programmablelogicarray,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器601也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(centralprocessingunit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器601可以在集成有gpu(graphicsprocessingunit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器601还可以包括ai(artificialintelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。
存储器602可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器602还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器602中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器601所执行以实现本申请中方法实施例提供的存储媒体数据的方法。
在一些实施例中,终端600还可选包括有:外围设备接口603和至少一个外围设备。处理器601、存储器602和外围设备接口603之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口603相连。具体地,外围设备包括:射频电路604、触摸显示屏605、摄像头606、音频电路607、定位组件608和电源609中的至少一种。
外围设备接口603可被用于将i/o(input/output,输入/输出)相关的至少一个外围设备连接到处理器601和存储器602。在一些实施例中,处理器601、存储器602和外围设备接口603被集成在同一芯片或电路板上;在一些其他实施例中,处理器601、存储器602和外围设备接口603中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路604用于接收和发射rf(radiofrequency,射频)信号,也称电磁信号。射频电路604通过电磁信号与通信网络以及其他通信设备进行通信。射频电路604将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路604包括:天线系统、rf收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路604可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2g、3g、4g及5g)、无线局域网和/或wifi(wirelessfidelity,无线保真)网络。在一些实施例中,射频电路604还可以包括nfc(nearfieldcommunication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏605用于显示ui(userinterface,用户界面)。该ui可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏605是触摸显示屏时,显示屏605还具有采集在显示屏605的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器601进行处理。此时,显示屏605还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏605可以为一个,设置终端600的前面板;在另一些实施例中,显示屏605可以为至少两个,分别设置在终端600的不同表面或呈折叠设计;在再一些实施例中,显示屏605可以是柔性显示屏,设置在终端600的弯曲表面上或折叠面上。甚至,显示屏605还可以设置成非矩形的不规则图形,也即异形屏。显示屏605可以采用lcd(liquidcrystaldisplay,液晶显示屏)、oled(organiclight-emittingdiode,有机发光二极管)等材质制备。
摄像头组件606用于采集图像或视频。可选地,摄像头组件606包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及vr(virtualreality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件606还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路607可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器601进行处理,或者输入至射频电路604以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端600的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器601或射频电路604的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路607还可以包括耳机插孔。
定位组件608用于定位终端600的当前地理位置,以实现导航或lbs(locationbasedservice,基于位置的服务)。定位组件608可以是基于美国的gps(globalpositioningsystem,全球定位系统)、中国的北斗系统、俄罗斯的格雷纳斯系统或欧盟的伽利略系统的定位组件。
电源609用于为终端600中的各个组件进行供电。电源609可以是交流电、直流电、一次性电池或可充电电池。当电源609包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端600还包括有一个或多个传感器610。该一个或多个传感器610包括但不限于:加速度传感器611、陀螺仪传感器612、压力传感器613、指纹传感器614、光学传感器615以及接近传感器616。
加速度传感器611可以检测以终端600建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器611可以用于检测重力加速度在三个坐标轴上的分量。处理器601可以根据加速度传感器611采集的重力加速度信号,控制触摸显示屏605以横向视图或纵向视图进行用户界面的显示。加速度传感器611还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器612可以检测终端600的机体方向及转动角度,陀螺仪传感器612可以与加速度传感器611协同采集用户对终端600的3d动作。处理器601根据陀螺仪传感器612采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变ui)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器613可以设置在终端600的侧边框和/或触摸显示屏605的下层。当压力传感器613设置在终端600的侧边框时,可以检测用户对终端600的握持信号,由处理器601根据压力传感器613采集的握持信号进行左右手识别或快捷操作。当压力传感器613设置在触摸显示屏605的下层时,由处理器601根据用户对触摸显示屏605的压力操作,实现对ui界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器614用于采集用户的指纹,由处理器601根据指纹传感器614采集到的指纹识别用户的身份,或者,由指纹传感器614根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器601授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器614可以被设置终端600的正面、背面或侧面。当终端600上设置有物理按键或厂商logo时,指纹传感器614可以与物理按键或厂商logo集成在一起。
光学传感器615用于采集环境光强度。在一个实施例中,处理器601可以根据光学传感器615采集的环境光强度,控制触摸显示屏605的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏605的显示亮度;当环境光强度较低时,调低触摸显示屏605的显示亮度。在另一个实施例中,处理器601还可以根据光学传感器615采集的环境光强度,动态调整摄像头组件606的拍摄参数。
接近传感器616,也称距离传感器,通常设置在终端600的前面板。接近传感器616用于采集用户与终端600的正面之间的距离。在一个实施例中,当接近传感器616检测到用户与终端600的正面之间的距离逐渐变小时,由处理器601控制触摸显示屏605从亮屏状态切换为息屏状态;当接近传感器616检测到用户与终端600的正面之间的距离逐渐变大时,由处理器601控制触摸显示屏605从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图6中示出的结构并不构成对终端600的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
图7是本申请实施例提供的一种计算机设备的结构示意图,该计算机设备可以是上述的服务器,该计算机设备700可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessingunits,cpu)701和一个或一个以上的存储器702,其中,所述存储器702中存储有至少一条指令,所述至少一条指令由所述处理器701加载并执行以实现下述确定用户特征数据的方法步骤:
接收第一终端发送的媒体数据;
确定所述媒体数据中媒体帧的录制时间点;
对所述媒体数据和所述媒体帧的录制时间点进行存储;
当接收到第二终端发送的携带有目标时间范围和所述媒体数据的标识信息的数据获取请求时,获取录制时间点与所述目标时间范围相对应的媒体帧,发送给所述第二终端。
可选的,所述媒体帧为媒体关键帧;
所述确定所述媒体数据中媒体帧的录制时间点,包括:
基于所述媒体数据的开始录制时间点、所述媒体数据的码率、所述媒体关键帧的播放时间间隔,确定所述媒体数据中媒体关键帧的录制时间点。
可选的,所述媒体数据的开始录制时间点为接收所述媒体数据的时间点。
可选的,所述方法还包括:
对所述媒体数据进行格式转换,得到预设格式的媒体数据;
所述确定所述媒体数据中媒体帧的录制时间点,包括:
对所述预设格式的媒体数据进行解码,得到媒体帧的录制时间点。
可选的,所述预设格式包括预设编码格式和预设封装格式。
在示例性实施例中,还提供了一种计算机可读存储介质,例如包括指令的存储器,上述指令可由终端中的处理器执行以完成下述实施例中存储媒体数据的方法。例如,所述计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
1.一种媒体数据存储的方法,其特征在于,所述方法包括:
接收第一终端发送的媒体数据;
确定所述媒体数据中媒体帧的录制时间点;
对所述媒体数据和所述媒体帧的录制时间点进行存储;
当接收到第二终端发送的携带有目标时间范围和所述媒体数据的标识信息的数据获取请求时,获取录制时间点与所述目标时间范围相对应的媒体帧,发送给所述第二终端。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收第一终端发送的所述媒体数据的开始录制时间点和结束录制时间点;
所述确定所述媒体数据中媒体帧的录制时间点,包括:
基于所述媒体数据的开始录制时间点和预先存储的媒体关键帧的播放时间间隔,确定每个媒体关键帧的录制时间点;
所述对所述媒体数据和所述媒体帧的录制时间点进行存储,包括:
基于所述媒体数据的开始录制时间点、结束录制时间点,确定所述媒体数据的总录制时长;
基于所述媒体数据的总录制时长、所述媒体关键帧的播放时间间隔和所述媒体数据的总数据量,确定每个媒体关键帧在所述媒体数据中的数据位置;
对所述媒体数据、每个媒体关键帧在所述媒体数据中的数据位置和每个媒体关键帧的录制时间点进行存储。
3.根据权利要求1所述的方法,其特征在于,所述确定所述媒体数据中媒体帧的录制时间点之前,所述方法还包括:
如果所述媒体数据的格式不是预设格式,则将所述媒体数据的格式转换为所述预设格式。
4.根据权利要求3所述的方法,其特征在于,所述如果所述媒体数据的格式不是预设格式,则将所述媒体数据的格式转换为所述预设格式,包括:
如果所述媒体数据的编码格式不是预设编码格式,则将所述媒体数据的编码格式转换为预设编码格式;
如果所述媒体数的封装格式不是预设封装格式,则将所述媒体数据的封装格式转换为预设封装格式。
5.根据权利要求3所述的方法,其特征在于,所述确定所述媒体数据中媒体帧的录制时间点,包括:
对预设格式的媒体数据进行解码,在解码后的媒体数据中,获取媒体帧的录制时间点。
6.一种存储媒体数据的装置,其特征在于,所述装置包括:
接收模块,用于接收第一终端发送的媒体数据;
确定模块,用于确定所述媒体数据中媒体帧的录制时间点;
存储模块,用于对所述媒体数据和所述媒体帧的录制时间点进行存储;
发送模块,用于当接收到第二终端发送的携带有目标时间范围和所述媒体数据的标识信息的数据获取请求时,获取录制时间点与所述目标时间范围相对应的媒体帧,发送给所述第二终端。
7.根据权利要求6所述的装置,其特征在于,所述接收模块,还用于:
接收第一终端发送的所述媒体数据的开始录制时间点和结束录制时间点;
所述确定模块,具体用于:基于所述媒体数据的开始录制时间点和预先存储的媒体关键帧的播放时间间隔,确定每个媒体关键帧的录制时间点;
所述存储模块,具体用于:
基于所述媒体数据的开始录制时间点、结束录制时间点,确定所述媒体数据的总录制时长;
基于所述媒体数据的总录制时长、所述媒体关键帧的播放时间间隔和所述媒体数据的总数据量,确定每个媒体关键帧在所述媒体数据中的数据位置;
对所述媒体数据、每个媒体关键帧在所述媒体数据中的数据位置和每个媒体关键帧的录制时间点进行存储。
8.根据权利要求6所述的装置,其特征在于,所述确定模块,之前所述装置还包括转换模块,用于如果所述媒体数据的格式不是预设格式,则将所述媒体数据的格式转换为所述预设格式。
9.根据权利要求8所述的装置,其特征在于,所述转换模块,具体用于:
如果所述媒体数据的编码格式不是预设编码格式,则将所述媒体数据的编码格式转换为预设编码格式;
如果所述媒体数的封装格式不是预设封装格式,则将所述媒体数据的封装格式转换为预设封装格式。
10.根据权利要求8所述的装置,其特征在于,所述确定模块,具体用于:
对预设格式的媒体数据进行解码,在解码后的媒体数据中,获取媒体帧的录制时间点。
11.一种存储媒体数据的系统,其特征在于,所述系统包括第一终端、服务器和第二终端,其中:
第一终端,用于向服务器发送媒体数据;
所述服务器,用于确定所述媒体数据中媒体帧的录制时间点;对所述媒体数据和所述媒体帧的录制时间点进行存储;当接收到第二终端发送的携带有目标时间范围和所述媒体数据的标识信息的数据获取请求时,获取录制时间点与所述目标时间范围相对应的媒体帧,发送给所述第二终端;
第二终端,用于向服务器发送携带有目标时间范围和所述媒体数据的标识信息的数据获取请求,接收所述服务器发送的录制时间点与所述目标时间范围相对应的媒体帧。
12.一种计算机设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序,实现权利要求1至5任一所述的方法步骤。
13.一种计算机可读存储介质,其特征在于,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至5任一所述的方法步骤。
技术总结