防止视频编辑时丢帧的方法、设备及系统技术方案

技术编号:11016505 阅读:164 留言:0更新日期:2015-02-06 03:31
本发明专利技术实施例提供一种防止视频编辑时丢帧的方法、设备及系统,包括:由客户端生成虚拟文件链表并同步至存储设备,该链表包括多个链表节点,每个链表节点包括一个文件片段的序号和描述字段,存储设备接收读请求后,根据读请求中第一文件片段的序号从内存中读取第一文件片段的数据并返回客户端,根据第一文件片段的序号在虚拟文件链表中确定第一文件片段的序号所属链表节点的下一个链表节点,从下一个链表节点中获取第二文件片段的描述字段,再根据该字段从存储介质中读取第二文件片段的数据存入内存中。从而使每次读请求都能命中内存中的数据,防止视频编辑时丢帧。

【技术实现步骤摘要】
防止视频编辑时丢帧的方法、设备及系统
本专利技术实施例涉及视频处理技术,尤其涉及一种防止视频编辑时丢帧的方法、设备及系统。
技术介绍
在现有的视频编辑技术中,对存储设备的读时延都有着比较严格的要求,读时延是指编辑视频的客户端向存储设备发起读请求后,存储设备向客户端返回数据的时间,如果读时延过长会导致视频软件出现“丢帧”问题。这是因为,在现有技术中,客户端运行的视频编辑软件一般可以分为:读数据线程、数据缓冲区、视频编辑线程三部分,其工作流程为:读数据线程先从存储设备中读出数据,并填入数据缓冲区,视频编辑线程从数据缓冲区中读出缓存的数据进行视频处理。现有的存储设备大都采用的是磁盘存储介质(比如机械硬盘),由于磁盘存储介质的响应时间较长,可能出现视频编辑线程从数据缓冲区中读出数据缓冲区中的所有数据时,读数据线程还没有从存储设备中读出新的数据填入数据缓冲区,此时数据缓冲区是空的,如果视频编辑线程再试图从数据缓冲区读取数据就会出现“丢帧”的问题。为了解决上述问题,在一种现有技术中,存储设备在接收到读请求之前就预先把数据读取到存储设备的内存中,当收到读请求时,就可以将内存中预先读取的数据返回给客户端。但是,上述方法只能解决线性编辑时的“丢帧”的问题,线性编辑是指客户端按照时间顺序进行编辑,比如本次请求的是第n个数据块,下次请求的就是第n+1个数据块,这样预先将第n+1个数据块读取到内存中,当第n+1个数据块的读请求到来时,刚好能够将第n+1个数据块立即返回给客户端。当非线性编辑时,客户端请求的数据块可能是随机的,比如本次请求的是第n个数据块,下次请求的可能是第n+3个数据块,这种情况下就无法命中预先读取到内存中的数据,依然只能等待从磁盘存储介质中读出第n+3个数据块后,才能返回给客户端,这种情况下依然可能出现“丢帧”的问题。
技术实现思路
本专利技术实施例提供一种防止视频编辑时丢帧的方法、设备及系统,能够解决视频编辑时丢帧的问题。第一方面,本专利技术实施例提供一种防止视频编辑时丢帧的方法,应用于存储设备,所述存储设备存储有客户端发送的虚拟文件链表,所述虚拟文件链表与所述客户端中的虚拟文件链表保持同步,所述虚拟文件链表包括多个链表节点,每个链表节点包括一个文件片段的序号和所述文件片段的描述字段;所述方法包括:根据所述第一文件片段的序号从内存中读取所述第一文件片段的数据,并将所述第一文件片段的数据返回给所述客户端;所述第一文件片段的数据是接收到所述客户端的上一次读请求时从存储介质读取并存入在所述内存中的;根据所述第一文件片段的序号在所述虚拟文件链表中确定所述第一文件片段的序号所属链表节点的下一个链表节点,从所述下一个链表节点中获取第二文件片段的描述字段;根据所述第二文件片段的描述字段从所述存储介质中读取所述第二文件片段的数据,并将所述第二文件片段的数据存入所述内存中。结合第一方面,在第一方面的第一种可能的实现方式中,所述虚拟文件链表与所述客户端中的虚拟文件链表保持同步包括:当所述客户端中的虚拟文件链表更新后,从所述客户端接收更新后的虚拟文件链表;或者,当所述客户端中的虚拟文件链表更新后,从所述客户端接收链表更新信息,并根据所述链表更新信息对已存储的所述虚拟文件链表进行更新,得到更新后的虚拟文件链表;或者,周期性的接收所述客户端发送的虚拟文件链表。结合第一方面或第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述描述字段包括:文件片段所属原始文件的文件名、读取原始文件的起始地址、读取原始文件的长度。结合第一方面,在第三种可能的实现方式中,所述存储设备与所述客户端通过采用客户端/服务器C/S模式的私有接口传输所述虚拟文件链表,所述存储设备与所述客户端之间通过所述私有接口传输心跳报文保持所述私有接口的连接状态。第二方面,本专利技术实施例提供一种防止视频编辑时丢帧的方法,应用于视频编辑系统,所述视频编辑系统包括客户端和存储设备,所述客户端和所述存储设备均存储有所述客户端生成的虚拟文件链表,所述存储设备中的虚拟文件链表与所述客户端中的虚拟文件链表保持同步,所述虚拟文件链表包括多个链表节点,每个链表节点包括一个文件片段的序号和所述文件片段的描述字段;所述方法包括:所述客户端向所述存储设备发送读请求,所述读请求中包括要读取的第一文件片段的序号;所述存储设备根据所述第一文件片段的序号从内存中读取所述第一文件片段的数据;所述第一文件片段的数据是所述存储设备接收到所述客户端的上一次读请求时从存储介质读取并存入在所述内存中的;所述存储设备向所述客户端返回所述第一文件片段的数据;所述存储设备根据所述第一文件片段的序号在所述虚拟文件链表中确定所述第一文件片段的序号所属链表节点的下一个链表节点,从所述下一个链表节点中获取第二文件片段的描述字段;所述存储设备根据所述第二文件片段的描述字段从所述存储介质中读取所述第二文件片段的数据,并将所述第二文件片段的数据存入所述内存中。结合第二方面,在第一种可能的实现方式中,所述存储设备中的虚拟文件链表与所述客户端中的虚拟文件链表保持同步包括:当更新所述虚拟文件链表后,所述客户端向所述存储设备发送更新后的虚拟文件链表;或者,当更新所述虚拟文件链表后,所述客户端向所述存储设备发送链表更新信息;所述存储设备根据所述链表更新信息对已存储的虚拟文件链表进行更新,得到更新后的虚拟文件链表;或者,所述客户端周期性的向所述存储设备发送虚拟文件链表。结合第二方面或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述描述字段包括:文件片段所属原始文件的文件名、读取原始文件的起始地址、读取原始文件的长度。结合第二方面,在第三种可能的实现方式中,所述存储设备与所述客户端通过采用客户端/服务器C/S模式的私有接口传输所述虚拟文件链表,所述存储设备与所述客户端之间通过所述私有接口传输心跳报文保持所述私有接口的连接状态。第三方面,本专利技术实施例提供一种存储设备,所述存储设备存储有客户端发送的虚拟文件链表,所述虚拟文件链表与所述客户端中的虚拟文件链表保持同步,所述虚拟文件链表包括多个链表节点,每个链表节点包括一个文件片段的序号和所述文件片段的描述字段;所述存储设备包括:主机协议接口、读接口、内存、预取模块和存储介质;所述主机协议接口,用于接收所述客户端发送的读请求,所述读请求中包括要读取的第一文件片段的序号;所述读接口,用于根据所述第一文件片段的序号从内存中读取所述第一文件片段的数据,并将所述第一文件片段的数据返回给所述客户端;所述第一文件片段的数据是接收到所述客户端的上一次读请求时从存储介质读取并存入在所述内存中的;所述读接口还用于,根据所述第一文件片段的序号在所述虚拟文件链表中确定所述第一文件片段的序号所属链表节点的下一个链表节点,从所述下一个链表节点中获取第二文件片段的描述字段;所述预取模块,用于根据所述第二文件片段的描述字段从所述存储介质中读取所述第二文件片段的数据,并将所述第二文件片段的数据存入所述内存中。结合第三方面,在第一种可能的实现方式中,所述存储设备还包括:私有接口,所述私有接口用于从所述客户端接收所述虚拟文件链表,以及所述虚拟文件链表与所述客户端中的虚拟文件链表保持同步,所述私有接口具体用于:当所述客户端中的本文档来自技高网
...

【技术保护点】
一种防止视频编辑时丢帧的方法,应用于存储设备,其特征在于,所述存储设备存储有客户端发送的虚拟文件链表,所述虚拟文件链表与所述客户端中的虚拟文件链表保持同步,所述虚拟文件链表包括多个链表节点,每个链表节点包括一个文件片段的序号和所述文件片段的描述字段;所述方法包括:接收所述客户端发送的读请求,所述读请求中包括要读取的第一文件片段的序号;根据所述第一文件片段的序号从内存中读取所述第一文件片段的数据,并将所述第一文件片段的数据返回给所述客户端;所述第一文件片段的数据是接收到所述客户端的上一次读请求时从存储介质读取并存入在所述内存中的;根据所述第一文件片段的序号在所述虚拟文件链表中确定所述第一文件片段的序号所属链表节点的下一个链表节点,从所述下一个链表节点中获取第二文件片段的描述字段;根据所述第二文件片段的描述字段从所述存储介质中读取所述第二文件片段的数据,并将所述第二文件片段的数据存入所述内存中。

【技术特征摘要】
1.一种防止视频编辑时丢帧的方法,应用于存储设备,其特征在于,所述存储设备存储有客户端发送的虚拟文件链表,所述虚拟文件链表与所述客户端中的虚拟文件链表保持同步,所述虚拟文件链表是由客户端根据预先输入的多个文件片段的信息和所述多个文件片段的编辑顺序生成的,所述虚拟文件链表包括多个链表节点,每个链表节点包括一个文件片段的序号和所述文件片段的描述字段;所述方法包括:接收所述客户端发送的读请求,所述读请求中包括要读取的第一文件片段的序号;根据所述第一文件片段的序号从内存中读取所述第一文件片段的数据,并将所述第一文件片段的数据返回给所述客户端;所述第一文件片段的数据是接收到所述客户端的上一次读请求时从存储介质读取并存入在所述内存中的;根据所述第一文件片段的序号在所述虚拟文件链表中确定所述第一文件片段的序号所属链表节点的下一个链表节点,从所述下一个链表节点中获取第二文件片段的描述字段;根据所述第二文件片段的描述字段从所述存储介质中读取所述第二文件片段的数据,并将所述第二文件片段的数据存入所述内存中。2.根据权利要求1所述的方法,其特征在于,所述虚拟文件链表与所述客户端中的虚拟文件链表保持同步包括:当所述客户端中的虚拟文件链表更新后,从所述客户端接收更新后的虚拟文件链表;或者,当所述客户端中的虚拟文件链表更新后,从所述客户端接收链表更新信息,并根据所述链表更新信息对已存储的所述虚拟文件链表进行更新,得到更新后的虚拟文件链表;或者,周期性的接收所述客户端发送的虚拟文件链表。3.根据权利要求1或2所述的方法,其特征在于,所述描述字段包括:文件片段所属原始文件的文件名、读取原始文件的起始地址、读取原始文件的长度。4.根据权利要求1所述的方法,其特征在于,所述存储设备与所述客户端通过采用客户端/服务器C/S模式的私有接口传输所述虚拟文件链表,所述存储设备与所述客户端之间通过所述私有接口传输心跳报文保持所述私有接口的连接状态。5.一种防止视频编辑时丢帧的方法,应用于视频编辑系统,其特征在于,所述视频编辑系统包括客户端和存储设备,所述客户端和所述存储设备均存储有所述客户端生成的虚拟文件链表,所述存储设备中的虚拟文件链表与所述客户端中的虚拟文件链表保持同步,所述虚拟文件链表是由客户端根据预先输入的多个文件片段的信息和所述多个文件片段的编辑顺序生成的,所述虚拟文件链表包括多个链表节点,每个链表节点包括一个文件片段的序号和所述文件片段的描述字段;所述方法包括:所述客户端向所述存储设备发送读请求,所述读请求中包括要读取的第一文件片段的序号;所述存储设备根据所述第一文件片段的序号从内存中读取所述第一文件片段的数据;所述第一文件片段的数据是所述存储设备接收到所述客户端的上一次读请求时从存储介质读取并存入在所述内存中的;所述存储设备向所述客户端返回所述第一文件片段的数据;所述存储设备根据所述第一文件片段的序号在所述虚拟文件链表中确定所述第一文件片段的序号所属链表节点的下一个链表节点,从所述下一个链表节点中获取第二文件片段的描述字段;所述存储设备根据所述第二文件片段的描述字段从所述存储介质中读取所述第二文件片段的数据,并将所述第二文件片段的数据存入所述内存中。6.根据权利要求5所述的方法,其特征在于,所述存储设备中的虚拟文件链表与所述客户端中的虚拟文件链表保持同步包括:当更新所述虚拟文件链表后,所述客户端向所述存储设备发送更新后的虚拟文件链表;或者,当更新所述虚拟文件链表后,所述客户端向所述存储设备发送链表更新信息;所述存储设备根据所述链表更新信息对已存储的虚拟文件链表进行更新,得到更新后的虚拟文件链表;或者,所述客户端周期性的向所述存储设备发送虚拟文件链表。7.根据权利要求5或6所述的方法,其特征在于,所述描述字段包括:文件片段所属原始文件的文件名、读取原始文件的起始地址、读取原始文件的长度。8.根据权利要求5所述的方法,其特征在于,所述存储设备与所述客户端通过采用客户端/服务器C/S模式的私有接口传输所述虚拟文件链表,所述存储设备与所述客户端之间通过所述私有接口传输心跳报文保持所述私有接口的连接状态。9.一种存储设备,其特征在于,所述存储设备存储有客户端发送...

【专利技术属性】
技术研发人员:刘渊王锦
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1