
本申请属于数据处理
技术领域:
,尤其涉及一种视频数据处理方法及装置。
背景技术:
:相关技术中,用于拍摄同一对象的视角越多对应的视频数据也越多,如在拍摄节目过程中,覆盖角度越大,拍摄机位越多,相对应的视频数据也会越多。对于每条视频数据来说,每条视频数据被分发到多个视频服务器,但数据分发复杂度高导致数据分发难度提高;相对应的终端播放视频数据过程中,需要从多个视频服务器中查找当前请求的视频数据,但由于不同视频服务器处理请求的速率和效率不同,从而影响视频数据的加载效率。技术实现要素:有鉴于此,本申请的目的在于提供一种视频数据处理方法及装置,用于降低数据分发难度和提高加载效率。第一方面,本申请提供一种视频数据处理方法,所述方法包括:接收终端发送的视频数据播放请求;基于所述视频数据播放请求中的标识信息,从视频文件中获得与所述标识信息匹配的描述数据,所述视频文件中存储有多个视频数据和所述多个视频数据中每个视频数据的描述数据,且所述视频文件预先分发到向所述终端提供视频数据的各个视频服务器中;利用与所述标识信息匹配的描述数据,从所述视频文件中获得所述标识信息匹配的视频数据;向所述终端发送所述标识信息匹配的视频数据。可选的,所述利用与所述标识信息匹配的描述数据,从所述视频文件中获得所述标识信息匹配的视频数据包括:利用与所述标识信息匹配的描述数据,确定所述标识信息匹配的视频数据在所述视频文件中的位置;基于所述标识信息匹配的视频数据在所述视频文件中的位置,从所述视频文件中读取所述标识信息匹配的视频数据。可选的,所述利用与所述标识信息匹配的描述数据,确定所述标识信息匹配的视频数据在所述视频文件中的位置包括:利用与所述标识信息匹配的描述数据,确定所述标识信息匹配的视频数据在视频文件中的开始位置和所述标识信息匹配的视频数据的长度;根据所述开始位置和所述长度,确定所述标识信息匹配的视频数据在所述视频文件中的结束位置;所述基于所述标识信息匹配的视频数据在所述视频文件中的位置,从所述视频文件中读取所述标识信息匹配的视频数据包括:从所述开始位置开始读取数据直至所述结束位置,以得到所述标识信息匹配的视频数据。可选的,所述基于所述视频数据播放请求中的标识信息,从视频文件中获得与所述标识信息匹配的描述数据包括:基于所述视频数据播放请求中的标识信息,确定与所述标识信息匹配的索引;基于与所述标识信息匹配的索引,从所述视频文件中得到含有所述索引的描述数据,将含有所述索引的描述数据确定为与所述标识信息匹配的描述数据。第二方面,本申请提供一种视频数据处理方法,所述方法包括:获得待分发的至少两条视频数据;确定每条视频数据的描述数据;至少对所述每条视频数据的描述数据和所述每条视频数据进行封装,得到视频文件;向为终端提供视频数据的各个视频服务器发送所述视频文件,所述视频文件用于使所述视频服务器利用所述描述数据获得所述终端请求的视频数据。可选的,所述至少对所述每条视频数据的描述数据和所述每条视频数据进行封装,得到视频文件包括:确定所述视频文件的索引标识,所述索引标识用于指示所述视频数据的类型和所述视频数据的个数;确定每条视频数据的描述数据,所述视频数据的描述数据用于定位所述视频数据;在视频文件的文件头中写入所述索引标识和每个视频数据的描述数据;按照每条视频数据的描述数据在所述文件头中的顺序,在所述视频文件的文件体中写入每条视频数据。可选的,所述方法还包括:确定所述视频文件中所有视频数据的长度,所述所有视频数据的长度被写入到所述视频文件的文件头中,所述所有视频数据的长度用于指示所述视频文件中的数据长度。可选的,所述确定每条视频数据的描述数据包括:确定每条视频数据在所述视频文件中的索引、所述视频数据在所述视频文件中的开始位置和所述视频数据的数据大小;其中所述每条视频数据的描述数据在所述文件头中的顺序基于每条视频数据在所述视频文件中的索引确定。可选的,所述至少两条视频数据对应的视角不同,且至少两条视频数据是同一个对象在不同视角下的视频。第三方面,本申请提供一种视频数据处理装置,所述装置包括:接收单元,用于接收终端发送的视频数据播放请求;第一获得单元,用于基于所述视频数据播放请求中的标识信息,从视频文件中获得与所述标识信息匹配的描述数据,所述视频文件中存储有多个视频数据和所述多个视频数据中每个视频数据的描述数据,且所述视频文件预先分发到向所述终端提供视频数据的各个视频服务器中;第二获得单元,用于利用与所述标识信息匹配的描述数据,从所述视频文件中获得所述标识信息匹配的视频数据;发送单元,用于向所述终端发送所述标识信息匹配的视频数据。第四方面,本申请提供一种视频数据处理装置,所述装置包括:获得单元,用于获得待分发的至少两条视频数据;确定单元,用于确定每条视频数据的描述数据;封装单元,用于至少对所述每条视频数据的描述数据和所述每条视频数据进行封装,得到视频文件;发送单元,用于向为终端提供视频数据的各个视频服务器发送所述视频文件,所述视频文件用于使所述视频服务器利用所述描述数据获得所述终端请求的视频数据。第五方面,本申请提供一种视频服务器,包括:处理器和用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现第一方面所述的视频数据处理方法。第六方面,本申请一种数据源服务器,包括:处理器和用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现第二方面所述的视频数据处理方法。第七方面,本申请一种计算机可读存储介质,当所述计算机可读存储介质中的指令被执行时实现上述视频数据处理方法。上述视频数据处理方法及装置,接收终端发送的视频数据播放请求;基于视频数据播放请求中的标识信息,从视频文件中获得与标识信息匹配的描述数据;利用与标识信息匹配的描述数据,从视频文件中获得标识信息匹配的视频数据;向终端发送标识信息匹配的视频数据,视频文件中存储有多个视频数据和多个视频数据中每个视频数据的描述数据,且视频文件预先分发到向终端提供视频数据的各个视频服务器中,使得各个视频服务器中的视频文件相同,这样在向视频服务器分发视频数据过程中可向各个视频服务器分发同一视频文件,相对于以每条视频数据为一个分发单位进行视频数据分发来说降低数据分发难度。因视频文件中含有多个视频数据且不同视频服务器中视频文件相同,终端请求视频数据过程中可向同一个视频服务器请求,从视频服务器的视频文件中读取到多个视频数据,提高加载效率。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本申请实施例提供的一种视频数据处理方法的实施环境示意图;图2是本申请实施例提供的一种视频数据处理方法的信令图;图3是本申请实施例提供的一种视频数据处理方法的示意图;图4是本申请实施例提供的一种视频数据处理装置的结构示意图;图5是本申请实施例提供的另一种视频数据处理装置的结构示意图。具体实施方式为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。本申请实施例提供了一种视频数据处理方法,视频数据处理方法可应用于如图1所示的实施环境中。图1中,包括至少一个终端11、至少一个视频服务器12和一个数据源服务器13,终端11可与视频服务器12进行通信连接,视频服务器12能够向终端11提供视频数据,以在接收到终端11的请求后向终端11反馈请求的视频数据;数据源服务器13可与视频服务器12进行通信连接,数据源服务器13向各个视频服务器12分发视频数据,使得视频服务器12能够向终端11反馈视频数据。其中,终端11可以是任何一种可与用户通过鼠标、触摸板和触摸屏等一种或多种方式进行人机交互的电子产品,例如pc(personalcomputer,个人计算机)、智能手机、可穿戴终端、掌上电脑ppc(pocketpc)、平板电脑、智能车机、智能电视等。视频服务器12可以是一台服务器,也可以是由多台服务器组成的服务器集群,或者是一个云计算服务中心。数据源服务器13可以是一台服务器,也可以是由多台服务器组成的服务器集群,或者是一个云计算服务中心,如数据源服务器13是具有cdn(contentdeliverynetwork,内容分发网络)云服务功能的服务器。本领域技术人员应能理解上述终端11、视频服务器12和数据源服务器13仅为举例,其他现有的或今后可能出现的终端或视频服务器或数据源服务器如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。针对图1所示实施环境,数据源服务器13作为视频数据的来源,数据源服务器13能够获得不同视角的视频数据,对于这些视频数据数据源服务器13按照一定的数据分发规则向各个视频服务器12分发视频数据。因为数据源服务器13中存储有几十甚至上百条视频数据,数据源服务器13在发送这些视频数据过程中需要降低数据分发冲突以及需要确保视频数据分发的准确度,相对应的在分发上百条视频数据过程中需要对这些视频数据进行协调,如协调这些视频数据的分发时间和被分发到的视频服务器,由此会提高数据分发难度,且随着分发的视频数据增多数据分发难度也会提高。并且终端11向不同视频服务器12请求视频数据,不同视频服务器12因硬件不同和当前剩余资源不同会使得不同视频服务器12处理请求的速率和效率不同,这样不同视频服务器12向终端11反馈视频数据的从而影响视频数据的加载效率。基于视频服务器12反馈视频数据存在的问题和数据源服务器13分发视频数据存在的问题,本申请实施例提供的视频数据处理方法中,数据源服务器13可以将多条视频数据封装在一个视频文件中,数据源服务器13向各个视频服务器12提供同一个视频文件,相对于向各个视频服务器12分发多条视频数据来说,减少数据源服务器13分发的文件量,可以避免多条视频数据分发过程中的冲突,从而降低数据分发难度。因一个视频文件中封装有多条视频数据,终端11可以向一个视频服务器12请求视频数据,使得终端11不需要向不同视频服务器12请求视频数据,解决因不同视频服务器处理请求的速率和效率不同导致的加载效率受到影响的问题。下面对本申请实施例提供的视频数据处理方法,结合附图进行详细说明。请参见图2,其示出了本申请实施例提供的一种视频数据处理方法的信令图,可以包括以下步骤:101:数据源服务器获得待分发的至少两条视频数据。在本实施例中,至少两条视频数据可以是在摄像装置拍摄得到视频数据后上传至数据源服务器,或者是数据源服务器从云服务中心、具有摄像装置的终端等至少一种设备中请求得到,对于数据源服务器获得视频数据的过程本实施例不进行限定。例如至少两条视频数据对应的视角不同,且至少两条视频数据是同一个对象在不同视角下的视频,通过在同一个对象的不同视角下配置摄像装置能够获得同一个对象不同视角下的视频数据。又例如至少两条视频数据是一个拍摄装置在同一个视角拍摄不同对象得到的视频数据,对于至少两条视频数据之间的关系,本实施例不进行限定。对于一个数据源服务器来说,其可以对数据源服务器中存储的所有视频数据进行遍历,以得到数据源服务器待分发的所有视频数据,待分发的所有视频数据是数据源服务器中存储的但没有发送给向终端提供视频服务器的视频数据,如数据源服务器和视频服务器组成一个cdn,数据源服务器与终端之间的距离大于视频服务器与终端之间的距离,距离越远数据丢失的可能性以及发生冲突的可能性也越大,距离越近数据丢失的可能性以及发生冲突的可能性越小,由此为了降低数据丢失和减小冲突,本实施例将数据源服务器中待分发的视频数据发送至与其组成cdn的视频服务器,再由与其组成cdn的视频服务器提供给终端,从而通过与终端距离近的视频服务器向终端提供视频数据。102:数据源服务器确定每条视频数据的描述数据。在本实施例中,数据源服务器遍历得到待分发的所有视频数据后,会将视频数据封装到一个视频文件中,以通过一个视频文件同时传输待分发的所有视频数据。虽然相对于以每条视频数据为一个分发单位进行视频数据分发来说降低数据分发难度,但是在封装到一个视频文件中如何准确从视频文件中读取视频数据是在封装视频数据中需要解决的,对此本实施例对每条视频数据,设置一条描述数据。描述数据用于在视频文件中定位出视频数据,其不但要对不同视频数据进行区分还需要标识视频数据在视频文件中的位置,以对于每个视频数据,利用视频数据的描述数据确定出其在视频文件中的位置,这样就可以基于视频数据的描述数据获得视频数据。其中,一个视频文件中存在多条视频数据,描述数据需要满足两点:一点是标识视频数据是哪条视频数据,即能够区分出不同的视频数据;另一点是标识视频数据在视频文件中的位置,通过这两点来定位视频数据。在本实施例中,为了区分出不同的视频数据,任意一条视频数据的描述数据包括:视频数据在视频文件中的索引、视频数据在视频文件中的开始位置和视频数据的数据大小。相对应的确定每条视频数据的描述数据包括:确定每条视频数据在视频文件中的索引、视频数据在视频文件中的开始位置和视频数据的数据大小。确定描述数据可以是在每获得一条视频数据确定出该条视频数据的描述数据,或者在遍历得到所有视频数据后确定每条视频数据的描述数据。视频数据在视频文件中的索引视为视频数据在视频文件中的标号,如以1至n中的一个数字作为索引,且视频数据在视频文件中的索引与视频数据的标识信息对应,以在通过视频数据的标识信息请求视频数据过程中可查找到具有该标识信息的视频数据,视频数据的标识信息可通过但不限于视频数据的名称和视角表示,n为大于1的自然数。视频数据在视频文件中的开始位置可以表示视频数据在视频文件中的绝对偏移量,视频数据在视频文件中的绝对偏移量与视频文件中位于视频数据之前数据长度相关。例如一条视频数据,位于其之前的数据长度为m字节,则该条视频数据在视频文件中的开始位置为第(m*8+1)位,本实施例对开始位置的获取和表示方式不进行限定,m为大于1的自然数。当然视频数据在视频文件中的开始位置可以直接记录视频数据的第一位在视频文件中的位数,以利用开始位置表示视频数据的起始位置。视频数据的数据大小可以表示视频数据的长度/文件大小(如包括的字节数),以通过视频数据在视频文件中的开始位置和视频数据的长度,确定出视频数据在视频文件中的结束位置,从而定位出视频数据在视频文件中的位置。在本实施例中,描述数据的一种形式如表1所示:表1描述数据的一种形式索引数据大小开始位置索引:16bit,标识当前索引的视频数据的标号。数据大小:16bit,标识当前索引的视频数据的长度/文件大小。开始位置:32bit,标识当前索引的视频数据在视频文件中的绝对偏移。对于每条视频数据,可按照从1至n依次选取一个数字来为每个视频数据分配一个索引,然后设置每个视频数据在视频文件中的顺序,从而依据顺序和每条视频数据的数据大小,得到每条视频数据在视频文件中的开始位置。在本实施例中,描述数据还可以采用其他形式,如描述数据包括视频数据的标识信息和视频数据在视频文件中的位置这两个字段,其中视频数据的标识信息利用视频数据的名称和视角得到,如将视频数据的名称和视角作为视频数据的标识信息,视频数据在视频文件中的位置可直接写入视频数据的开始位置和结束位置,相对于表1所示描述数据可以利用视频数据在视频文件中的位置定位出视频数据,省去利用开始位置和数据大小确定结束位置的环节。103:数据源服务器至少对每条视频数据的描述数据和每条视频数据进行封装,得到视频文件,即视频文件中至少包括每条视频数据的描述数据和每条视频数据。在封装描述数据和视频数据过程中,数据源服务器首先依次写入每条视频数据的描述数据,然后再按照每条视频数据的描述数据在所有描述数据中的顺序,依次写入每条视频数据,使得任意一条视频数据在所有视频数据中的顺序与其描述数据在所有描述数据中的顺序一致。在依次写入每条视频数据的描述数据过程中可根据描述数据中的索引控制描述数据的写入,例如按照每条描述数据中的索引指示的先后顺序依次写入每条视频数据的描述数据;以索引为1至n中的一个数字为例,按照索引从1至n的大小顺序依次写入每条视频数据的描述数据,使得数字小的索引所在描述数据位于数字大的索引所在描述数据之前。在本实施例中,视频文件除包括描述数据和视频数据,还可以包括其他类型数据,且视频文件可划分成文件头和文件体两部分,相对应的至少对每条视频数据的描述数据和每条视频数据进行封装,得到视频文件的一种可行方式如下:确定视频文件的索引标识,索引标识用于指示视频数据的类型和视频数据的个数;确定每条视频数据的描述数据,视频数据的描述数据用于定位视频数据,如描述数据用于定位视频数据在视频文件中的位置;在视频文件的文件头中写入索引标识和每个视频数据的描述数据;按照每条视频数据的描述数据在文件头中的顺序,在视频文件的文件体中写入每条视频数据。一个视频文件中所封装的视频数据可以是同一个类型,如所封装的视频数据是mp4数据,对于mp4数据在其播放过程中不需要借助额外的信息,如视频数据播放过程中的控制信息等,因此在视频文件的文件头中写入每条视频数据的描述数据即可,实现将相关联的(如同一对象不同视角下的)视频数据集中于一个视频文件内,例如将相关联的多个mp4数据集中于一个视频文件内,在集中于一个视频文件内时加入相对应的描述文件即可,无需对原始的mp4数据进行调整,保证mp4数据的完整性,而通过描述数据能够定位mp4数据进行读取,便于对mp4数据的还原;如果视频文件中所封装的视频数据在播放过程中需要借助额外的信息,在文件头或者封装视频数据的位置同时写入播放过程所借助的信息,如播放视频数据所需的控制信息,对于如何封装此处不再详述。对于描述数据的说明请参见上述说明,描述数据包括:视频数据在视频文件中的索引、视频数据在视频文件中的开始位置和视频数据的数据大小,通过这些定位视频数据。相对应的确定每条视频数据的描述数据包括:确定每条视频数据在视频文件中的索引、视频数据在视频文件中的开始位置和视频数据的数据大小;其中每条视频数据的描述数据在文件头中的顺序基于每条视频数据在视频文件中的索引确定。索引能够指示出先后顺序,以索引为1至n中的一个数字为例,数字小的索引排列在数字大的索引之前,在写入过程中数字小的索引所在描述数据位于数字大的索引所在描述数据之前,相对应的可以按照索引指示的先后顺序写入视频数据。在本实施例中,文件头的一种形式如表2所示:表2文件头的一种形式索引标识描述数据索引标识包括:类型(8bit)和个数(8bit);类型用于指示当前封装的视频数据的类型,如mp4类型或其他自定义类型,以便于扩展使得能够封装其他类型的视频数据;个数用于指示封装在视频文件中的视频数据的数目。描述数据:x*64bit,x为封装在视频文件中的视频数据的数目,一条视频数据的描述数据占用64bit。此外,文件头的另一种形式如表3所示:表3文件头的另一种形式索引标识长度描述数据相对于表2所示文件头,增加一个长度字段,其用于指示视频文件中的数据长度。相对应的,视频文件的一种形式如表4所示:表4视频文件的一种形式文件头视频数据1视频数据2……视频数据x视频文件的文件大小=索引标识位(16bit)+长度位(64bit)+描述数据(x*64)+x个视频数据的大小。对于数据源服务器实施的视频数据处理方法还可以包括:确定视频文件中所有视频数据的长度,所有视频数据的长度被写入到视频文件的文件头中,如表3中的“长度”字段,以指示视频文件中的数据长度,通过“长度”字段可以来校正描述数据。其中描述数据中的数据大小用于指示其对应的视频数据的长度,通过所有视频数据对应的描述数据中的数据大小能够得到所有视频数据的数据大小,所有视频数据的数据大小则是所有视频数据的数据长度,如果该数据长度与文件头中“长度”字段的取值相同,说明描述数据正确;如果两者不同,说明描述数据可能存在错误。104:数据源服务器向为终端提供视频数据的各个视频服务器发送视频文件,视频文件用于使视频服务器利用描述数据获得终端请求的视频数据。其中数据源服务器以一个封装有多条视频数据的视频文件为单位进行数据分发,相对于以每条视频数据为单位来说,减少分发的文件个数,降低分发过程中的冲突和省去文件分发分配环节,从而降低数据分发难度。105:视频服务器接收终端发送的视频数据播放请求。一个视频数据播放请求中可携带多个视频数据的标识信息,以通过一个视频数据播放请求向视频服务器请求多个视频数据。因为视频服务器接收到的视频文件中封装有数据源服务器遍历到的所有视频数据,意味着视频服务器中存储的视频数据是比较全面的,所以在同一个视频服务器中能够获得一个视频数据播放请求的多个视频数据,相对应的在一个视频数据播放请求中携带多个视频数据的标识信息。因一个视频服务器可向一个终端反馈其请求的多个视频数据,使得请求的多个视频数据可依次或同时反馈给终端,缩短多个视频数据反馈的时间差距,从而提高视频数据的加载效率。106:视频服务器基于视频数据播放请求中的标识信息,从视频文件中获得与标识信息匹配的描述数据。在本实施例中,视频文件中存储有多个视频数据和多个视频数据中每个视频数据的描述数据,且视频文件预先分发到向终端提供视频数据的各个视频服务器中,对于视频文件中视频数据和描述数据的说明请参见上述说明。其中描述数据用于定位视频数据,每条视频数据的描述数据与视频数据的标识信息对应,如描述数据中的索引与视频数据的标识信息对应,因此获得与标识信息匹配的描述数据的一种可行方式如下:基于视频数据播放请求中的标识信息,确定与标识信息匹配的索引,基于与标识信息匹配的索引,从视频文件中得到含有与标识信息匹配的索引的描述数据,将含有与标识信息匹配的索引的描述数据确定为与标识信息匹配的描述数据,如通过视频数据的标识信息和视频文件中描述数据中的索引比对,能够确定与标识信息匹配的索引,与标识信息匹配的索引所属描述数据则是与标识信息匹配的描述数据。107:视频服务器利用与标识信息匹配的描述数据,从视频文件中获得标识信息匹配的视频数据。在本实施例中,描述数据不但用于区分视频数据还用于定位视频数据,如定位视频数据在视频文件中的位置,由此通过描述数据能够从视频文件中准确读取到标识信息匹配的视频数据。其中,一种获得标识信息匹配的视频数据的可行方式可以是但不限于是:利用与标识信息匹配的描述数据,确定标识信息匹配的视频数据在视频文件中的位置;基于标识信息匹配的视频数据在视频文件中的位置,从视频文件中读取标识信息匹配的视频数据。例如如果描述数据包括开始位置和数据大小,相对应的确定标识信息匹配的视频数据在视频文件中的位置可以是:利用与标识信息匹配的描述数据,确定标识信息匹配的视频数据在视频文件中的开始位置和标识信息匹配的视频数据的长度;根据开始位置和长度,确定标识信息匹配的视频数据在视频文件中的结束位置,以利用开始位置和结束位置作为标识信息匹配的视频数据在视频文件中的位置,进而可以从开始位置开始读取数据直至结束位置,以得到标识信息匹配的视频数据。又例如如果描述数据包括位置,则可以直接从位置这一字段中确定出标识信息匹配的视频数据在视频文件中的位置。108:视频服务器向终端发送标识信息匹配的视频数据。上述视频数据处理方法,接收终端发送的视频数据播放请求;基于视频数据播放请求中的标识信息,从视频文件中获得与标识信息匹配的描述数据;利用与标识信息匹配的描述数据,从视频文件中获得标识信息匹配的视频数据;向终端发送标识信息匹配的视频数据,视频文件中存储有多个视频数据和多个视频数据中每个视频数据的描述数据,且视频文件预先分发到向终端提供视频数据的各个视频服务器中,使得各个视频服务器中的视频文件相同,这样在向视频服务器分发视频数据过程中可向各个视频服务器分发同一视频文件,相对于以每条视频数据为一个分发单位进行视频数据分发来说降低数据分发难度。因视频文件中含有多个视频数据且不同视频服务器中视频文件相同,终端请求视频数据过程中可向同一个视频服务器请求,从视频服务器的视频文件中读取到多个视频数据,提高加载效率。以视频数据为mp4数据为例进行说明,如图3所示,数据源服务器13获得待分发的至少两条mp4数据,待分发的mp4数据可以是在对同一对象进行拍摄时得到,且不同的mp4数据对应不同视角。数据源服务器13确定每条mp4数据的描述数据,如数据源服务器13为每条mp4数据分配索引并确定每条mp4数据的数据大小,不同mp4数据的开始位置会有所不同。mp4数据写入到视频文件的文件体中,对于第一个写入到视频文件中的mp4数据,其开始位置为文件体的第一位,如视频文件的文件头所占用位数为:索引标识位(16bit)+长度位(64bit)+描述数据(n*64),则第一个写入到视频文件中的mp4数据的开始位置为:索引标识位(16bit)+长度位(64bit)+描述数据(n*64)+1。对于其他写入到视频文件中的mp4数据,其他mp4数据的开始位置可以根据位于其之前的mp4数据的数据大小确定,通过绝对偏移量来表示开始位置。数据源服务器13利用写入描述数据的顺序,写入mp4数据至视频文件中,从而能够将多个散落分布且相关联的mp4数据合并至一个视频文件中解决多个mp4数据单独分发过程中的问题,提升存储效率。因为mp4播放的特性,其播放过程中不需要借助控制信息即可独立播放,因此本实施例中在文件头中增加描述信息即可,无需对mp4数据进行修改,保证mp4数据的完整性,文件头的描述数据简单可操作性强,可扩展性强,便于在文件头中继续扩展所需信息。合并至一个视频文件中的mp4数据是单向分部的,符合互联网传输流媒体的规律,可以从文件头开始加载,进而逐个读取视频文件。数据源服务器13将视频文件分发给各个视频服务器12。终端11向视频服务器12发送视频数据播放请求,视频服务器12从视频数据播放请求中提取标识信息,利用标识信息和视频文件,得到标识信息匹配的mp4数据,并反馈给mp4数据。如从文件头中得到描述数据,根据描述数据查找视频数据,这样在将mp4数据合并至一个视频文件后,可通过文件头查找mp4数据,提升使用效率,使得在线使用播放得以很大的方便。一个视频服务器可向一个终端反馈其请求的多个mp4数据,使得请求的多个视频数据可依次或同时反馈给终端,缩短多个视频数据反馈的时间差距,从而提高视频数据的加载效率。与上述方法实施例相对应,本申请实施例提供一种视频数据处理装置,其可选结构如图4所示,可以包括:接收单元10、第一获得单元20、第二获得单元30和发送单元40。接收单元10,用于接收终端发送的视频数据播放请求。第一获得单元20,用于基于视频数据播放请求中的标识信息,从视频文件中获得与标识信息匹配的描述数据,视频文件中存储有多个视频数据和多个视频数据中每个视频数据的描述数据,且视频文件预先分发到向终端提供视频数据的各个视频服务器中。其中,第一获得单元20获得描述数据的一种方式可以是:基于视频数据播放请求中的标识信息,确定与标识信息匹配的索引;基于与标识信息匹配的索引,从视频文件中得到含有索引的描述数据,将含有索引的描述数据确定为与标识信息匹配的描述数据。第二获得单元30,用于利用与标识信息匹配的描述数据,从视频文件中获得标识信息匹配的视频数据。其中,第二获得单元30获得视频数据的一种方式可以是:利用与标识信息匹配的描述数据,确定标识信息匹配的视频数据在视频文件中的位置;基于标识信息匹配的视频数据在视频文件中的位置,从视频文件中读取标识信息匹配的视频数据。如利用与标识信息匹配的描述数据,确定标识信息匹配的视频数据在视频文件中的开始位置和标识信息匹配的视频数据的长度;根据开始位置和长度,确定标识信息匹配的视频数据在视频文件中的结束位置;从开始位置开始读取数据直至结束位置,以得到标识信息匹配的视频数据。发送单元40,用于向终端发送标识信息匹配的视频数据。请参见图5,其示出了本申请实施例提供的另一种视频数据处理装置的可选结构,可以包括:获得单元100、确定单元200、封装单元300和发送单元400。获得单元100,用于获得待分发的至少两条视频数据。其中至少两条视频数据对应的视角不同,且至少两条视频数据是同一个对象在不同视角下的视频。确定单元200,用于确定每条视频数据的描述数据。如确定每条视频数据在视频文件中的索引、视频数据在视频文件中的开始位置和视频数据的数据大小;其中每条视频数据的描述数据在文件头中的顺序基于每条视频数据在视频文件中的索引确定。封装单元300,用于至少对每条视频数据的描述数据和每条视频数据进行封装,得到视频文件。其封装过程如下:确定视频文件的索引标识,索引标识用于指示视频数据的类型和视频数据的个数;确定每条视频数据的描述数据,视频数据的描述数据用于定位视频数据;在视频文件的文件头中写入索引标识和每个视频数据的描述数据;按照每条视频数据的描述数据在文件头中的顺序,在视频文件的文件体中写入每条视频数据。在本实施例中,确定单元200还用于确定视频文件中所有视频数据的长度,所有视频数据的长度被写入到视频文件的文件头中,所有视频数据的长度用于指示视频文件中的数据长度。发送单元400,用于向为终端提供视频数据的各个视频服务器发送视频文件,视频文件用于使视频服务器利用描述数据获得终端请求的视频数据。上述视频数据处理装置,接收终端发送的视频数据播放请求;基于视频数据播放请求中的标识信息,从视频文件中获得与标识信息匹配的描述数据;利用与标识信息匹配的描述数据,从视频文件中获得标识信息匹配的视频数据;向终端发送标识信息匹配的视频数据,视频文件中存储有多个视频数据和多个视频数据中每个视频数据的描述数据,且视频文件预先分发到向终端提供视频数据的各个视频服务器中,使得各个视频服务器中的视频文件相同,这样在向视频服务器分发视频数据过程中可向各个视频服务器分发同一视频文件,相对于以每条视频数据为一个分发单位进行视频数据分发来说降低数据分发难度。因视频文件中含有多个视频数据且不同视频服务器中视频文件相同,终端请求视频数据过程中可向同一个视频服务器请求,从视频服务器的视频文件中读取到多个视频数据,提高加载效率。对于上述图4和图5所示视频数据处理装置,视频数据处理装置中各单元的说明请参见上述方法实施例,此处不再赘述。本申请实施例还提供一种视频服务器,包括:处理器和用于存储处理器可执行指令的存储器。其中,处理器被配置为执行指令,以实现上述视频数据处理方法。本申请实施例还一种数据源服务器,包括:处理器和用于存储处理器可执行指令的存储器。其中,处理器被配置为执行指令,以实现上述视频数据处理方法。本申请实施例还一种计算机可读存储介质,当计算机可读存储介质中的指令被执行时实现上述视频数据处理方法。需要说明的是,本说明书中的各个实施例可以采用递进的方式描述、本说明书中各实施例中记载的特征可以相互替换或者组合,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。以上所述仅是本申请的优选实施方式,应当指出,对于本
技术领域:
的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。当前第1页12