CN103500227B - 视频帧存储管理方法和相关装置及通信系统 - Google Patents
视频帧存储管理方法和相关装置及通信系统 Download PDFInfo
- Publication number
- CN103500227B CN103500227B CN201310504784.7A CN201310504784A CN103500227B CN 103500227 B CN103500227 B CN 103500227B CN 201310504784 A CN201310504784 A CN 201310504784A CN 103500227 B CN103500227 B CN 103500227B
- Authority
- CN
- China
- Prior art keywords
- video
- frame
- index
- record
- storage address
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/70—Information retrieval; Database structures therefor; File system structures therefor of video data
- G06F16/71—Indexing; Data structures therefor; Storage structures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明实施例公开了视频帧存储管理方法和相关装置及通信系统。一种视频帧存储管理方法可包括:视频服务器接收第一视频数据包;查找索引存储区之中是否存储有用于标识第一视频帧和存储地址之间映射关系的索引记录,其中,第一视频数据包归属与第一视频帧;若查找到索引存储区存储有用于标识第一视频帧和存储地址之间映射关系的第一索引记录,将第一视频数据包写入到第一索引记录包含的第一存储地址所指向的第一存储空间,其中,第一存储空间归属于视频数据存储区。本发明实施例提供的技术方案有利于提高索引视频帧的存储地址的效率。
Description
技术领域
本发明涉及互联网技术领域,具体主要涉及一种视频帧存储管理方法和相关装置及通信系统。
背景技术
目前,存在腾讯视频、搜狐视频等多种视频直播工具,视频通道是视频服务器中用于存储视频数据的存储资源,视频通道中可记录时间戳、该视频通道当前所属用户的用户标识等信息。
对于来自视频源的视频数据(如直播视频数据),视频服务器通常需要对其进行一定的存储管理。
本发明的发明人在研究和实践过程中发现,现有技术至少存在以下的技术问题:现有的视频服务器采用遍历方式索引视频帧的存储地址,存储地址索引效率相对较低,有时难以满足高时效要求。
发明内容
本发明实施例提供视频帧存储管理方法和相关装置及通信系统,以期提高索引视频帧的存储地址的效率。
本发明实施例一方面提供一种视频帧存储管理方法,可包括:
视频服务器接收第一视频数据包;
查找索引存储区之中是否存储有用于标识第一视频帧和存储地址之间映射关系的索引记录,其中,所述第一视频数据包归属与所述第一视频帧;
若查找到所述索引存储区存储有用于标识第一视频帧和存储地址之间映射关系的第一索引记录,将所述第一视频数据包写入到所述第一索引记录包含的第一存储地址所指向的第一存储空间,其中,所述第一存储空间归属于视频数据存储区。
本发明实施例另一方面提供一种视频服务器,可包括:
接收单元,用于接收第一视频数据包;
查找单元,用于查找索引存储区之中是否存储有用于标识第一视频帧和存储地址之间映射关系的索引记录,其中,所述第一视频数据包归属与所述第一视频帧;
写入单元,用于若查找到所述索引存储区存储有用于标识第一视频帧和存储地址之间映射关系的第一索引记录,将所述第一视频数据包写入到所述第一索引记录包含的第一存储地址所指向的第一存储空间,其中,所述第一存储空间归属于视频数据存储区。
本发明实施例再一方面提供一种通信系统,可包括:
用户终端和视频服务器;
其中,所述用户终端,用于向所述视频服务器发送第一视频数据包;
所述视频服务器,接收所述第一视频数据包;查找索引存储区之中是否存储有用于标识第一视频帧和存储地址之间映射关系的索引记录,其中,所述第一视频数据包归属与所述第一视频帧;若查找到所述索引存储区存储有用于标识第一视频帧和存储地址之间映射关系的第一索引记录,将所述第一视频数据包写入到所述第一索引记录包含的第一存储地址所指向的第一存储空间,其中,所述第一存储空间归属于视频数据存储区。
可以看出,在本发明的一些实施方式中,视频服务器在接收到第一视频数据包之后;查找索引存储区之中是否存储有用于标识第一视频帧和存储地址之间映射关系的索引记录,其中,第一视频数据包归属与第一视频帧;若查找到索引存储区存储有用于标识第一视频帧和存储地址之间映射关系的第一索引记录,将第一视频数据包写入到第一索引记录包含的第一存储地址所指向的第一存储空间,第一存储空间归属于视频数据存储区。由于视频服务器专门开辟了索引存储区来存储用于标识视频帧与存储地址之间的映射关系的记录,先在索引存储区查找用于标识视频帧和存储地址之间映射关系的索引记录,而后基于索引记录中的视频帧存储地址来进行视频数据包的写入,这种索引视频帧的存储地址的技术有利于极大的提高视频帧存储地址的索引效率。由于提高了索引效率,进而有利于提高存储视频帧的内存利用率和响应速率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种视频通道管理方法的流程示意图;
图2是本发明实施例提供的另一种视频通道管理方法的流程示意图;
图3-a是本发明实施例提供的一种视频服务器的示意图;
图3-b是本发明实施例提供的另一种视频服务器的示意图;
图4是本发明实施例提供的另一种视频服务器的示意图;
图5是本发明实施例提供的一种通信系统的示意图;
图6是本发明实施例提供的一种用户终端的示意图。
具体实施方式
本发明实施例提供视频帧存储管理方法和相关装置及通信系统,以期提高索引视频帧的存储地址的效率。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
以下分别进行详细说明。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明一种视频帧存储管理方法的一个实施例,其中,视频帧存储管理方法可包括:视频服务器接收第一视频数据包;查找索引存储区之中是否存储有用于标识第一视频帧和存储地址之间映射关系的索引记录,其中,第一视频数据包归属与第一视频帧;若查找到索引存储区存储有用于标识第一视频帧和存储地址之间映射关系的第一索引记录,将第一视频数据包写入到第一索引记录包含的第一存储地址所指向的第一存储空间,其中,第一存储空间归属于视频数据存储区。
首先请参见图1,图1是本发明的一个实施例提供的一种视频帧存储管理方法的流程示意图。如图1所示,本发明的一个实施例提供的一种视频帧存储管理方法可包括以下内容:
101、视频服务器接收第一视频数据包。
举例来说,当某用户终端(为便于引述,可称之为第一用户终端)与视频服务器建立连接之后,第一用户终端可向视频服务器发送某视频数据包(为便于引述,称之为第一视频数据包),视频服务器可接收来自第一用户终端的第一视频数据包。其中,发送第一视频数据包的第一用户终端归属于某用户(可称之为第一用户)。
其中,本发明各实施例所指的用户终端可为个人电脑、手机、个人数字处理设备或其它类型的用户终端。
其中,第一视频数据包可为直播视频数据包,当然也可为其它类型的视频数据包。
102、视频服务器查找索引存储区之中是否存储有用于标识第一视频帧和存储地址之间映射关系的索引记录,其中,上述第一视频数据包归属与第一视频帧(第一视频帧可能包括多个视频数据包)。
在本发明的一些实施例中,查找索引存储区之中是否存储有用于标识第一视频帧和存储地址之间映射关系的索引记录,可包括:基于哈希算法,查找索引存储区之中是否存储有用于标识第一视频帧和存储地址之间映射关系的索引记录。其中,哈希算法的输入为第一视频帧的帧序号或者基于第一视频帧的帧序号转换得到的其它数字串。
可以理解,以第一视频帧的帧序号或基于第一视频帧的帧序号转换得到的数字串作为哈希算法的输入,基于哈希算法,查找索引存储区之中是否存储有用于标识第一视频帧和存储地址之间映射关系的索引记录,这种索引视频帧的存储地址的技术有利于进一步提高视频帧存储地址的索引效率。由于提高了索引效率,进而有利于提高存储视频帧的内存利用率和响应速率。
103、视频服务器若查找到索引存储区存储有用于标识第一视频帧和存储地址之间映射关系的第一索引记录,将第一视频数据包写入到第一索引记录包含的第一存储地址所指向的第一存储空间,其中,第一存储空间归属于视频数据存储区。
其中,视频服务器在接收到第一视频数据之前,可能已经为第一视频帧分配了存储空间,也可能还未为第一视频帧分配存储空间(视频服务器可能之前始终未为第一视频帧分配存储空间,或者视频服务器也可能将之前分配给第一视频帧分配存储空间又重新分配给了其它视频帧,或视频服务器也可能将之前分配给第一视频帧的存储空间进行了清空。
其中,视频服务器若索引存储区未存储有用于标识第一视频帧和存储地址之间映射关系的第一索引记录,则表示视频服务器当前可能还未为第一视频帧分配存储空间。
在本发明的一些实施例中,视频服务器若未查找到索引存储区存储有用于标识第一视频帧和存储地址之间映射关系的索引记录,则可为第一视频数据包所属的第一视频帧分配上述视频数据存储区之中的第二存储空间,将第一视频数据包写入第二存储空间;生成用于标识第一视频帧和第二存储地址之间映射关系的第二索引记录,其中,第二存储地址指向第二存储空间;基于哈希算法计算得到第三存储地址,其中,第三存储空间归属于索引存储区;将第二索引记录写入第三存储地址所指向的第三存储空间。
在本发明的一些实施例中,哈希算法的输入为第一视频帧的帧序号或基于第一视频帧的帧序号转换得到的数字串。
可以理解,以第一视频帧的帧序号或基于第一视频帧的帧序号转换得到的数字串作为哈希算法的输入,基于哈希算法计算得到第三存储地址,这种索引地址分配方式有利于进一步的提高视频帧存储地址的索引效率。由于提高了索引效率,进而有利于提高存储视频帧的内存利用率和响应速率。
在本发明一些实施例中,视频服务器还可生成第一视频帧对应的第一超时判定记录,将第一超时判定记录写入超时管理队列(其中,超时管理队列例如可为先入先出队列)之中,其中,第一超时判定记录包含第一视频帧的帧序号和第一时间戳,其中,第一时间戳所指示的时间为接收到第一视频数据包的时间。
在本发明一些实施例中,视频服务器还可在第一预设条件满足时,从上述超时管理队列中读取出第一超时判定记录,基于第一超时判定记录中包含的第一时间戳判断第一视频帧是否已经超时,若判定第一视频帧已超时,则发送存储于上述视频数据存储区之中的归属于第一视频帧的所有视频帧数据包。在本发明一些实施例中,已超时的视频帧可指该视频帧对应的超时判定记录中的时间戳所表示的时间滞后当前时间超过第一时长阈值,其中,第一时长阈值例如可为一秒钟、两秒钟、三秒钟或根据实际需要设定的其它时长。
在本发明一些实施例中,第一索引记录中还包括收包指示位,其中,上述收包指示位用于指示出当前还未接收到的归属于第一视频帧的视频数据包的个数。
在本发明一些实施例中,视频服务器若查找到索引存储区存储有用于标识第一视频帧和存储地址之间映射关系的第一索引记录,视频服务器还可进一步更新第一索引记录中的上述收包指示位的取值。
在本发明一些实施例中,视频服务器可进一步在第二预设条件满足时,基于第一索引记录中的收包指示位取值确定是否已经接收到了归属于第一视频帧的所有视频数据包,若是,则发送存储于上述视频数据存储区之中的归属于第一视频帧的所有视频帧数据包。
在本发明的另一些实施例中,视频服务器还可进一步在第二预设条件满足时,基于第一索引记录中的收包指示位取值确定是否已经接收到了归属于第一视频帧的所有视频数据包,若是,则从上述超时管理队列中读取出第一超时判定记录,基于第一超时判定记录中包含的第一时间戳判断第一视频帧是否已经超时,若判定第一视频帧已经超时,则发送存储于上述视频数据存储区之中的归属于第一视频帧的所有视频帧数据包。
在本发明一些实施例中,若第一索引记录中还包含帧发送标志位;视频服务器还可进一步在发送存储于上述视频数据存储区之中的归属于第一视频帧的所有视频帧数据包之后,更新第一索引记录中的帧发送标志位的取值,更新取值后的第一索引记录中的帧发送标志位指示出第一视频帧的所有视频帧数据包已被发送。
可以看出,在实施例中,视频服务器在接收到第一视频数据包之后;查找索引存储区之中是否存储有用于标识第一视频帧和存储地址之间映射关系的索引记录,其中,第一视频数据包归属与第一视频帧;若查找到索引存储区存储有用于标识第一视频帧和存储地址之间映射关系的第一索引记录,将第一视频数据包写入到第一索引记录包含的第一存储地址所指向的第一存储空间,第一存储空间归属于视频数据存储区。由于视频服务器专门开辟了索引存储区来存储用于标识视频帧与存储地址之间的映射关系的记录,先在索引存储区查找用于标识视频帧和存储地址之间映射关系的索引记录,而后基于索引记录中的视频帧存储地址来进行视频数据包的写入,这种索引视频帧的存储地址的技术有利于极大的提高视频帧存储地址的索引效率。由于提高了索引效率,进而有利于提高存储视频帧的内存利用率和响应速率。
为便于更好的理解和实施本发明实施例的上述方面,下面通过举例几个应用场景进行进一步介绍。
首先请参见图2,图2是本发明的一个实施例提供的一种视频帧存储管理方法的流程示意图。如图2所示,本发明的一个实施例提供的一种视频帧存储管理方法可包括以下内容:
201、视频服务器接收第一用户终端发送的第一视频数据包。
举例来说,当某用户终端(为便于引述,可称之为第一用户终端)与视频服务器建立连接之后,第一用户终端可向视频服务器发送某视频数据包(为便于引述,称之为第一视频数据包),视频服务器可接收来自第一用户终端的第一视频数据包。其中,发送第一视频数据包的第一用户终端归属于某用户(可称之为第一用户)。
其中,本发明各实施例所指的用户终端可为个人电脑、手机、个人数字处理设备或其它类型的用户终端。
其中,第一视频数据包可为直播视频数据包,当然也可为其它类型的视频数据包。
202、视频服务器查找索引存储区之中是否存储有用于标识第一视频帧和存储地址之间映射关系的索引记录,其中,上述第一视频数据包归属与第一视频帧(第一视频帧可能包括多个视频数据包)。
其中,视频服务器若查找索引存储区之中存储有用于标识第一视频帧和存储地址之间映射关系的索引记录,则执行步骤203;其中,视频服务器若查找索引存储区之中未存储有用于标识第一视频帧和存储地址之间映射关系的索引记录,则执行步骤205。
其中,视频服务器若查找到索引存储区未存储有用于标识第一视频帧和存储地址之间映射关系的索引记录,则表示视频服务器当前可能还未为第一视频帧分配存储空间。视频服务器若查找到索引存储区存储有用于标识第一视频帧和存储地址之间映射关系的第一索引记录,则表示视频服务器此前已为第一视频帧分配了存储空间。
在本发明的一些实施例中,查找索引存储区之中是否存储有用于标识第一视频帧和存储地址之间映射关系的索引记录,可包括:基于哈希算法(或其它算法),查找索引存储区之中是否存储有用于标识第一视频帧和存储地址之间映射关系的索引记录。其中,哈希算法的输入为第一视频帧的帧序号或者基于第一视频帧的帧序号转换得到的其它数字串。
可以理解,以第一视频帧的帧序号或基于第一视频帧的帧序号转换得到的数字串作为哈希算法的输入,基于哈希算法,查找索引存储区之中是否存储有用于标识第一视频帧和存储地址之间映射关系的索引记录,这种索引视频帧的存储地址的技术有利于进一步提高视频帧存储地址的索引效率。由于提高了索引效率,进而有利于提高存储视频帧的内存利用率和响应速率。
203、视频服务器若查找到索引存储区存储有用于标识第一视频帧和存储地址之间映射关系的第一索引记录,将第一视频数据包写入到第一索引记录包含的第一存储地址所指向的第一存储空间,其中,第一存储空间归属于视频数据存储区。
204、视频服务器若查找到索引存储区存储有用于标识第一视频帧和存储地址之间映射关系的第一索引记录,视频服务器还可进一步更新第一索引记录中的收包指示位的取值。其中,第一索引记录中包括收包指示位,其中,上述收包指示位用于指示出当前还未接收到的归属于第一视频帧的视频数据包的个数。
205、视频服务器若未查找到索引存储区存储有用于标识第一视频帧和存储地址之间映射关系的索引记录,则可为第一视频数据包所属的第一视频帧分配上述视频数据存储区之中的第二存储空间,将第一视频数据包写入第二存储空间;生成用于标识第一视频帧和第二存储地址之间映射关系的第二索引记录,其中,第二存储地址指向第二存储空间;基于哈希算法计算得到第三存储地址,其中,第三存储空间归属于索引存储区;将第二索引记录写入第三存储地址所指向的第三存储空间。
在本发明的一些实施例中,哈希算法的输入为第一视频帧的帧序号或基于第一视频帧的帧序号转换得到的数字串。假设的哈希函数是取模运算,假设视频帧序号257,哈希函数分母是256,那么哈希函数结果是257%256=1,其它以此类推。
可以理解,以第一视频帧的帧序号或基于第一视频帧的帧序号转换得到的数字串作为哈希算法的输入,基于哈希算法计算得到第三存储地址,这种索引地址分配方式有利于进一步的提高视频帧存储地址的索引效率。由于提高了索引效率,进而有利于提高存储视频帧的内存利用率和响应速率。
206,视频服务器还可生成第一视频帧对应的第一超时判定记录,将第一超时判定记录写入超时管理队列的队尾(其中,超时管理队列例如可为先入先出队列),第一超时判定记录包含第一视频帧的帧序号和第一时间戳,第一时间戳所指示的时间为接收到第一视频数据包的时间。
其中,某视频帧对应的超时判定记录包含的时间戳所指示的时间为首次接收到视频帧的视频数据包的时间。
207,视频服务器根据第一索引记录或第二索引记录中的收包指示位判断第一视频帧的所有视频数据包是否接收完整。
若是,则执行步骤208;
若否,则执行步骤210;
208、视频服务器根据第一索引记录或第二索引记录中包含的帧发送标志位判断第一视频帧是否已经发送;
若是,则执行步骤210;
若否,则执行步骤209;
209、视频服务器发送存储于上述视频数据存储区之中的归属于第一视频帧的所有视频帧数据包,并更新第一索引记录中的帧发送标志位的取值,更新取值后的第一索引记录中的帧发送标志位指示出第一视频帧的所有视频帧数据包已被发送,执行步骤210。
210、视频服务器判断上述超时管理队列中队首的超时判定记录所对应的视频帧是否已经超时;
若否,则返回步骤201;
若是,执行步骤211;
在本发明一些实施例中,已超时的视频帧可指该视频帧对应的超时判定记录中的时间戳所表示的时间滞后当前时间超过第一时长阈值,其中,第一时长阈值例如可为一秒钟、两秒钟、三秒钟或根据实际需要设定的其它时长。
211、视频服务器发送超时管理队列中队首的超时判定记录所对应的视频帧的所有视频数据包,更新超时管理队列中队首的超时判定记录所对应的视频帧对应的索引记录中的帧发送标志位的取值,更新取值后的该索引记录中的帧发送标志位指示出该视频帧的所有视频帧数据包已被发送;删除超时管理队列中队首的超时判定记录,返回步骤210。
可以看出,在实施例中,视频服务器在接收到来自第一用户终端的第一视频数据包之后;基于哈希算法,查找索引存储区之中是否存储有用于标识第一视频帧和存储地址之间映射关系的索引记录,第一视频数据包归属与第一视频帧;若查找到索引存储区存储有用于标识第一视频帧和存储地址之间映射关系的第一索引记录,将第一视频数据包写入到第一索引记录包含的第一存储地址所指向的第一存储空间,第一存储空间归属于视频数据存储区。由于视频服务器专门开辟了索引存储区来存储用于标识视频帧与存储地址之间的映射关系的记录,先基于哈希算法,在索引存储区查找用于标识视频帧和存储地址之间映射关系的索引记录,而后基于索引记录中的视频帧存储地址来进行视频数据包的写入,这种索引视频帧的存储地址的技术有利于极大的提高视频帧存储地址的索引效率。由于提高了索引效率,进而有利于提高存储视频帧的内存利用率和响应速率。
为便于更好的实施本发明实施例的上述方案,下面还提供用于实施上述方案的相关装置。
参见图3-a,本发明实施例提供一种视频服务器300,可包括:
接收单元310、查询单元320和写入单元330。
其中,接收单元310,用于接收第一视频数据包。
举例来说,当某用户终端(为便于引述,可称之为第一用户终端)与视频服务器建立连接之后,第一用户终端可向视频服务器发送某视频数据包(为便于引述,称之为第一视频数据包),视频服务器可接收来自第一用户终端的第一视频数据包。其中,发送第一视频数据包的第一用户终端归属于某用户(可称之为第一用户)。
其中,本发明各实施例所指的用户终端可为个人电脑、手机、个人数字处理设备或其它类型的用户终端。
其中,第一视频数据包可为直播视频数据包,当然也可为其它类型的视频数据包。
查找单元320,用于查找索引存储区之中是否存储有用于标识第一视频帧和存储地址之间映射关系的索引记录,其中,所述第一视频数据包归属与所述第一视频帧;
写入单元330,用于若查找到所述索引存储区存储有用于标识第一视频帧和存储地址之间映射关系的第一索引记录,将所述第一视频数据包写入到所述第一索引记录包含的第一存储地址所指向的第一存储空间,其中,所述第一存储空间归属于视频数据存储区。
在本发明一些实施例中,查找单元320具体用于:基于哈希算法,查找索引存储区之中是否存储有用于标识第一视频帧和存储地址之间映射关系的索引记录。
在本发明一些实施例中,写入单元330还可用于,若未查找到所述索引存储区存储有用于标识第一视频帧和存储地址之间映射关系的索引记录,则为所述第一视频数据包所属的第一视频帧分配所述视频数据存储区之中的第二存储空间,将所述第一视频数据包写入所述第二存储空间;生成用于标识所述第一视频帧和第二存储地址之间映射关系的第二索引记录,所述第二存储地址指向所述第二存储空间;基于哈希算法计算得到第三存储地址,第三存储空间归属于所述索引存储区;将所述第二索引记录写入所述第三存储地址所指向的第三存储空间。
参见图3-b,在本发明一些实施例中,视频服务器300还可包括:
超时管理单元340,用于生成所述第一视频帧对应的第一超时判定记录,将所述第一超时判定记录写入超时管理队列之中,其中,第一超时判定记录包含第一视频帧的帧序号和第一时间戳,其中,所述第一时间戳所指示的时间为接收到所述第一视频数据包的时间。
在本发明一些实施例中,视频服务器300还可包括:
第一发送单元,用于在第一预设条件满足时,从所述超时管理队列中读取出所述第一超时判定记录,基于所述第一超时判定记录中包含的第一时间戳判断所述第一视频帧是否已经超时,若判定所述第一视频帧已经超时,则发送存储于所述视频数据存储区之中的归属于所述第一视频帧的所有视频帧数据包。
在本发明一些实施例中,所述第一索引记录中还包括收包指示位,所述收包指示位用于指示出当前还未接收到的归属于所述第一视频帧的视频数据包的个数。
在本发明一些实施例中,视频服务器300还可包括:
记录维护单元,用于若查找到所述索引存储区存储有用于标识第一视频帧和存储地址之间映射关系的第一索引记录,则更新所述第一索引记录中的所述收包指示位的取值。
在本发明一些实施例中,视频服务器300还可包括:第二发送单元,在第二预设条件满足时,基于所述第一索引记录中的收包指示位取值确定是否已经接收到了归属于第一视频帧的所有视频数据包,若是,则发送存储于所述视频数据存储区之中的归属于所述第一视频帧的所有视频帧数据包。
在本发明一些实施例中,视频服务器300还可包括:
第三发送单元,在第二预设条件满足时,基于所述第一索引记录中的收包指示位取值确定是否已经接收到了归属于第一视频帧的所有视频数据包,若是,则从所述超时管理队列中读取出所述第一超时判定记录,基于所述第一超时判定记录中包含的第一时间戳判断所述第一视频帧是否已经超时,若判定所述第一视频帧已经超时,则发送存储于所述视频数据存储区之中的归属于所述第一视频帧的所有视频帧数据包。
在本发明一些实施例中,所述第一索引记录中还包含帧发送标志位;
记录维护单元还可用于,在发送存储于所述视频数据存储区之中的归属于所述第一视频帧的所有视频帧数据包之后,更新所述第一索引记录中的帧发送标志位的取值,其中,更新取值后的所述第一索引记录中的帧发送标志位指示出所述第一视频帧的所有视频帧数据包已被发送。
可以理解的是,本实施例的视频服务器300的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
可以看出,在实施例视频服务器300在接收到第一视频数据包之后;查找索引存储区之中是否存储有用于标识第一视频帧和存储地址之间映射关系的索引记录,其中,第一视频数据包归属与第一视频帧;若查找到索引存储区存储有用于标识第一视频帧和存储地址之间映射关系的第一索引记录,将第一视频数据包写入到第一索引记录包含的第一存储地址所指向的第一存储空间,第一存储空间归属于视频数据存储区。由于视频服务器专门开辟了索引存储区来存储用于标识视频帧与存储地址之间的映射关系的记录,先在索引存储区查找用于标识视频帧和存储地址之间映射关系的索引记录,而后基于索引记录中的视频帧存储地址来进行视频数据包的写入,这种索引视频帧的存储地址的技术有利于极大的提高视频帧存储地址的索引效率。由于提高了索引效率,进而有利于提高存储视频帧的内存利用率和响应速率。
参见图4,图4是本发明另一实施例提供的视频服务器400的结构框图。
其中,视频服务器400例如可以包括:至少一个处理器401,至少一个网络接口404或者其他用户接口403,存储器405,至少一个通信总线402。通信总线402用于实现这些组件之间的连接通信。其中,该视频服务器400可选的包含用户接口403,包括:显示器(例如可能是,触摸屏、LCD、CRT、全息成像(Holographic)或者投影(Projector)等)、点击设备(例如鼠标,轨迹球(trackball)触感板或触摸屏等)、摄像头和/或拾音装置等。
其中,存储器402可以包括只读存储器和随机存取存储器,并向处理器401提供指令和数据。存储器402中的一部分还可以包括非易失性随机存取存储器(NVRAM)。
在一些实施方式中,存储器405存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:
操作系统4051,包含各种系统程序,用于实现各种基础业务以及处理基于硬件的任务;
应用程序模块4052,包含各种应用程序,用于实现各种应用业务。
应用程序模块4052中包括但不限于接收单元310、查询单元320、写入单元330、超时管理单元340、记录维护单元、第一发送单元、第二发送单元或和/或第三发送单元等。
在本发明实施例中,通过调用存储器405存储的程序或指令,处理器401用于接收第一视频数据包;查找索引存储区之中是否存储有用于标识第一视频帧和存储地址之间映射关系的索引记录,其中,第一视频数据包归属与第一视频帧;若查找到索引存储区存储有用于标识第一视频帧和存储地址之间映射关系的第一索引记录,将第一视频数据包写入到第一索引记录包含的第一存储地址所指向的第一存储空间,其中,第一存储空间归属于视频数据存储区。
举例来说,当某用户终端(为便于引述,可称之为第一用户终端)与视频服务器建立连接之后,第一用户终端可向视频服务器发送某视频数据包(为便于引述,称之为第一视频数据包),视频服务器可接收来自第一用户终端的第一视频数据包。其中,发送第一视频数据包的第一用户终端归属于某用户(可称之为第一用户)。
其中,本发明各实施例所指的用户终端可为个人电脑、手机、个人数字处理设备或其它类型的用户终端。
其中,第一视频数据包可为直播视频数据包,当然也可为其它类型的视频数据包。
在本发明的一些实施例中,处理器401查找索引存储区之中是否存储有用于标识第一视频帧和存储地址之间映射关系的索引记录,可包括:基于哈希算法,查找索引存储区之中是否存储有用于标识第一视频帧和存储地址之间映射关系的索引记录。其中,哈希算法的输入为第一视频帧的帧序号或者基于第一视频帧的帧序号转换得到的其它数字串。
可以理解,以第一视频帧的帧序号或基于第一视频帧的帧序号转换得到的数字串作为哈希算法的输入,基于哈希算法,查找索引存储区之中是否存储有用于标识第一视频帧和存储地址之间映射关系的索引记录,这种索引视频帧的存储地址的技术有利于进一步提高视频帧存储地址的索引效率。由于提高了索引效率,进而有利于提高存储视频帧的内存利用率和响应速率。
其中,处理器401在接收到第一视频数据之前,可能已经为第一视频帧分配了存储空间,也可能还未为第一视频帧分配存储空间(处理器401可能之前始终未为第一视频帧分配存储空间,或者处理器401也可能将之前分配给第一视频帧分配存储空间又重新分配给了其它视频帧,或处理器401也可能将之前分配给第一视频帧的存储空间进行了清空。
其中,处理器401若索引存储区未存储有用于标识第一视频帧和存储地址之间映射关系的第一索引记录,则表示处理器401当前可能还未为第一视频帧分配存储空间。
在本发明的一些实施例中,处理器401若未查找到索引存储区存储有用于标识第一视频帧和存储地址之间映射关系的索引记录,则可为第一视频数据包所属的第一视频帧分配上述视频数据存储区之中的第二存储空间,将第一视频数据包写入第二存储空间;生成用于标识第一视频帧和第二存储地址之间映射关系的第二索引记录,其中,第二存储地址指向第二存储空间;基于哈希算法计算得到第三存储地址,其中,第三存储空间归属于索引存储区;将第二索引记录写入第三存储地址所指向的第三存储空间。
在本发明的一些实施例中,哈希算法的输入为第一视频帧的帧序号或基于第一视频帧的帧序号转换得到的数字串。
可以理解,以第一视频帧的帧序号或基于第一视频帧的帧序号转换得到的数字串作为哈希算法的输入,基于哈希算法计算得到第三存储地址,这种索引地址分配方式有利于进一步的提高视频帧存储地址的索引效率。由于提高了索引效率,进而有利于提高存储视频帧的内存利用率和响应速率。
在本发明一些实施例中,处理器401还可生成第一视频帧对应的第一超时判定记录,将第一超时判定记录写入超时管理队列(其中,超时管理队列例如可为先入先出队列)之中,其中,第一超时判定记录包含第一视频帧的帧序号和第一时间戳,其中,第一时间戳所指示的时间为接收到第一视频数据包的时间。
在本发明一些实施例中,处理器401还可在第一预设条件满足时,从上述超时管理队列中读取出第一超时判定记录,基于第一超时判定记录中包含的第一时间戳判断第一视频帧是否已经超时,若判定第一视频帧已超时,则发送存储于上述视频数据存储区之中的归属于第一视频帧的所有视频帧数据包。在本发明一些实施例中,已超时的视频帧可指该视频帧对应的超时判定记录中的时间戳所表示的时间滞后当前时间超过第一时长阈值,其中,第一时长阈值例如可为一秒钟、两秒钟、三秒钟或根据实际需要设定的其它时长。
在本发明一些实施例中,第一索引记录中还包括收包指示位,其中,上述收包指示位用于指示出当前还未接收到的归属于第一视频帧的视频数据包的个数。
在本发明一些实施例中,处理器401若查找到索引存储区存储有用于标识第一视频帧和存储地址之间映射关系的第一索引记录,处理器401还可进一步更新第一索引记录中的上述收包指示位的取值。
在本发明一些实施例中,处理器401可进一步在第二预设条件满足时,基于第一索引记录中的收包指示位取值确定是否已经接收到了归属于第一视频帧的所有视频数据包,若是,则发送存储于上述视频数据存储区之中的归属于第一视频帧的所有视频帧数据包。
在本发明的另一些实施例中,处理器401还可进一步在第二预设条件满足时,基于第一索引记录中的收包指示位取值确定是否已经接收到了归属于第一视频帧的所有视频数据包,若是,则从上述超时管理队列中读取出第一超时判定记录,基于第一超时判定记录中包含的第一时间戳判断第一视频帧是否已经超时,若判定第一视频帧已经超时,则发送存储于上述视频数据存储区之中的归属于第一视频帧的所有视频帧数据包。
在本发明一些实施例中,若第一索引记录中还包含帧发送标志位;处理器401还可进一步在发送存储于上述视频数据存储区之中的归属于第一视频帧的所有视频帧数据包之后,更新第一索引记录中的帧发送标志位的取值,更新取值后的第一索引记录中的帧发送标志位指示出第一视频帧的所有视频帧数据包已被发送。
可以理解的是,本实施例的视频服务器400的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
可以看出,在实施例视频服务器400在接收到第一视频数据包之后;查找索引存储区之中是否存储有用于标识第一视频帧和存储地址之间映射关系的索引记录,其中,第一视频数据包归属与第一视频帧;若查找到索引存储区存储有用于标识第一视频帧和存储地址之间映射关系的第一索引记录,将第一视频数据包写入到第一索引记录包含的第一存储地址所指向的第一存储空间,第一存储空间归属于视频数据存储区。由于视频服务器专门开辟了索引存储区来存储用于标识视频帧与存储地址之间的映射关系的记录,先在索引存储区查找用于标识视频帧和存储地址之间映射关系的索引记录,而后基于索引记录中的视频帧存储地址来进行视频数据包的写入,这种索引视频帧的存储地址的技术有利于极大的提高视频帧存储地址的索引效率。由于提高了索引效率,进而有利于提高存储视频帧的内存利用率和响应速率。
参见图5,本发明实施例还提供一种通信系统,包括:
用户终端510和视频服务器520。
其中,用户终端510,用于向视频服务器520发送第一视频数据包。
视频服务器520,用于接收第一视频数据包;查找索引存储区之中是否存储有用于标识第一视频帧和存储地址之间映射关系的索引记录,其中,第一视频数据包归属与第一视频帧;若查找到索引存储区存储有用于标识第一视频帧和存储地址之间映射关系的第一索引记录,将第一视频数据包写入到第一索引记录包含的第一存储地址所指向的第一存储空间,其中,第一存储空间归属于视频数据存储区。
其中,第一视频数据包可为直播视频数据包,当然也可为其它类型的视频数据包。
在本发明的一些实施例中,查找索引存储区之中是否存储有用于标识第一视频帧和存储地址之间映射关系的索引记录,可包括:基于哈希算法,查找索引存储区之中是否存储有用于标识第一视频帧和存储地址之间映射关系的索引记录。其中,哈希算法的输入为第一视频帧的帧序号或者基于第一视频帧的帧序号转换得到的其它数字串。
可以理解,以第一视频帧的帧序号或基于第一视频帧的帧序号转换得到的数字串作为哈希算法的输入,基于哈希算法,查找索引存储区之中是否存储有用于标识第一视频帧和存储地址之间映射关系的索引记录,这种索引视频帧的存储地址的技术有利于进一步提高视频帧存储地址的索引效率。由于提高了索引效率,进而有利于提高存储视频帧的内存利用率和响应速率。
其中,视频服务器520在接收到第一视频数据之前,可能已经为第一视频帧分配了存储空间,也可能还未为第一视频帧分配存储空间(视频服务器520可能之前始终未为第一视频帧分配存储空间,或者视频服务器520也可能将之前分配给第一视频帧分配存储空间又重新分配给了其它视频帧,或视频服务器520也可能将之前分配给第一视频帧的存储空间进行了清空。
其中,视频服务器520若索引存储区未存储有用于标识第一视频帧和存储地址之间映射关系的第一索引记录,则表示视频服务器520当前可能还未为第一视频帧分配存储空间。
在本发明的一些实施例中,视频服务器520若未查找到索引存储区存储有用于标识第一视频帧和存储地址之间映射关系的索引记录,则可为第一视频数据包所属的第一视频帧分配上述视频数据存储区之中的第二存储空间,将第一视频数据包写入第二存储空间;生成用于标识第一视频帧和第二存储地址之间映射关系的第二索引记录,其中,第二存储地址指向第二存储空间;基于哈希算法计算得到第三存储地址,其中,第三存储空间归属于索引存储区;将第二索引记录写入第三存储地址所指向的第三存储空间。
在本发明的一些实施例中,哈希算法的输入为第一视频帧的帧序号或基于第一视频帧的帧序号转换得到的数字串。
可以理解,以第一视频帧的帧序号或基于第一视频帧的帧序号转换得到的数字串作为哈希算法的输入,基于哈希算法计算得到第三存储地址,这种索引地址分配方式有利于进一步的提高视频帧存储地址的索引效率。由于提高了索引效率,进而有利于提高存储视频帧的内存利用率和响应速率。
在本发明一些实施例中,视频服务器520还可生成第一视频帧对应的第一超时判定记录,将第一超时判定记录写入超时管理队列(其中,超时管理队列例如可为先入先出队列)之中,其中,第一超时判定记录包含第一视频帧的帧序号和第一时间戳,其中,第一时间戳所指示的时间为接收到第一视频数据包的时间。
在本发明一些实施例中,视频服务器520还可用于,在第一预设条件满足时,从上述超时管理队列中读取出第一超时判定记录,基于第一超时判定记录中包含的第一时间戳判断第一视频帧是否已经超时,若判定第一视频帧已超时,则发送存储于上述视频数据存储区之中的归属于第一视频帧的所有视频帧数据包。在本发明一些实施例中,已超时的视频帧可指该视频帧对应的超时判定记录中的时间戳所表示的时间滞后当前时间超过第一时长阈值,其中,第一时长阈值例如可为一秒钟、两秒钟、三秒钟或根据实际需要设定的其它时长。
在本发明一些实施例中,第一索引记录中还包括收包指示位,其中,上述收包指示位用于指示出当前还未接收到的归属于第一视频帧的视频数据包的个数。
在本发明一些实施例中,视频服务器520若查找到索引存储区存储有用于标识第一视频帧和存储地址之间映射关系的第一索引记录,视频服务器520还可进一步更新第一索引记录中的上述收包指示位的取值。
在本发明一些实施例中,视频服务器520还可用于,在第二预设条件满足时,基于第一索引记录中的收包指示位取值确定是否已经接收到了归属于第一视频帧的所有视频数据包,若是,则发送存储于上述视频数据存储区之中的归属于第一视频帧的所有视频帧数据包。
在本发明的另一些实施例中,视频服务器520还可用于,在第二预设条件满足时,基于第一索引记录中的收包指示位取值确定是否已经接收到了归属于第一视频帧的所有视频数据包,若是,则从上述超时管理队列中读取出第一超时判定记录,基于第一超时判定记录中包含的第一时间戳判断第一视频帧是否已经超时,若判定第一视频帧已经超时,则发送存储于上述视频数据存储区之中的归属于第一视频帧的所有视频帧数据包。
在本发明一些实施例中,若第一索引记录中还包含帧发送标志位;视频服务器520还可进一步在发送存储于上述视频数据存储区之中的归属于第一视频帧的所有视频帧数据包之后,更新第一索引记录中的帧发送标志位的取值,更新取值后的第一索引记录中的帧发送标志位指示出第一视频帧的所有视频帧数据包已被发送。
可以看出,在实施例视频服务器520在接收到第一视频数据包之后;查找索引存储区之中是否存储有用于标识第一视频帧和存储地址之间映射关系的索引记录,其中,第一视频数据包归属与第一视频帧;若查找到索引存储区存储有用于标识第一视频帧和存储地址之间映射关系的第一索引记录,将第一视频数据包写入到第一索引记录包含的第一存储地址所指向的第一存储空间,第一存储空间归属于视频数据存储区。由于视频服务器专门开辟了索引存储区来存储用于标识视频帧与存储地址之间的映射关系的记录,先在索引存储区查找用于标识视频帧和存储地址之间映射关系的索引记录,而后基于索引记录中的视频帧存储地址来进行视频数据包的写入,这种索引视频帧的存储地址的技术有利于极大的提高视频帧存储地址的索引效率。由于提高了索引效率,进而有利于提高存储视频帧的内存利用率和响应速率。
如图6所示,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。图6所示用户终端510可以为手机、平板电脑、个人数字助理(PDA,Personal Digital Assistant)、销售终端(POS,Point of Sales)、车载电脑等任意终端设备,下面主要以用户终端510为手机为例:
其中,图6示出的是与本发明实施例提供的终端相关的手机的部分结构的框图。参考图6,手机包括:射频(Radio Frequency,RF)电路610、存储器620、输入单元630、无线保真(wireless fidelity,WiFi)模块670、显示单元640、传感器650、音频电路660、处理器680、以及电源690等部件。
其中,本领域技术人员可以理解,图6中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图6对手机的各个构成部件进行具体的介绍:
RF电路610可用于在收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器680处理;另外,将设计上行的数据发送给基站。通常,RF电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low NoiseAmplifier,LNA)、双工器等。此外,RF电路60还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(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)等。
其中,存储器620可用于存储软件程序以及模块,处理器680通过运行存储在存储器620的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器620可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(如音频数据、电话本等)等。此外,存储器620可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元630可用于接收输入的数字或字符信息,以及产生与手机510的用户设置以及功能控制有关的键信号输入。具体地,输入单元630可包括触控面板631以及其他输入设备632。触控面板631,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板631上或在触控面板631附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板631可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器680,并能接收处理器680发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板631。除了触控面板631,输入单元630还可以包括其他输入设备632。具体地,其他输入设备632可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
其中,显示单元640可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元640可包括显示面板641,可选的,可以采用液晶显示器(LiquidCrystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板641。进一步的,触控面板631可覆盖显示面板641,当触控面板631检测到在其上或附近的触摸操作后,传送给处理器680以确定触摸事件的类型,随后处理器680根据触摸事件的类型在显示面板641上提供相应的视觉输出。虽然在图6中,触控面板631与显示面板641是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板631与显示面板641集成而实现手机的输入和输出功能。
其中,手机510还可包括至少一种传感器650,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板641的亮度,接近传感器可在手机移动到耳边时,关闭显示面板641和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路660、扬声器661,传声器662可提供用户与手机之间的音频接口。音频电路660可将接收到的音频数据转换后的电信号,传输到扬声器661,由扬声器661转换为声音信号输出;另一方面,传声器662将收集的声音信号转换为电信号,由音频电路660接收后转换为音频数据,再将音频数据输出处理器680处理后,经RF电路610以发送给比如另一手机,或者将音频数据输出至存储器620以便进一步处理。
WiFi属于短距离无线传输技术,手机通过WiFi模块670可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图6示出了WiFi模块670,但是可以理解的是,其并不属于手机510的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器680是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器620内的软件程序和/或模块,以及调用存储在存储器620内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器680可包括一个或多个处理单元;优选的,处理器680可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器680中。
手机510还包括给各个部件供电的电源690(比如电池),优选的,电源可以通过电源管理系统与处理器680逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。尽管未示出,手机510还可以包括摄像头、蓝牙模块等,在此不再赘述。
在本发明实施例中,该用户终端所包括的处理器680还具有以下功能:向视频服务器发送第一视频数据包。
本发明实施例还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时包括上述方法实施例中记载的视频帧存储管理方法的部分或全部步骤。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (20)
1.一种视频帧存储管理方法,其特征在于,包括:
视频服务器接收第一视频数据包;
查找索引存储区之中是否存储有用于标识第一视频帧和存储地址之间映射关系的索引记录,其中,所述第一视频数据包归属于所述第一视频帧;
若查找到所述索引存储区存储有用于标识第一视频帧和存储地址之间映射关系的第一索引记录,将所述第一视频数据包写入到所述第一索引记录包含的第一存储地址所指向的第一存储空间,其中,所述第一存储空间归属于视频数据存储区;
若未查找到所述索引存储区存储有用于标识第一视频帧和存储地址之间映射关系的索引记录,则为所述第一视频数据包所属的第一视频帧分配所述视频数据存储区之中的第二存储空间,将所述第一视频数据包写入所述第二存储空间;生成用于标识所述第一视频帧和第二存储地址之间映射关系的第二索引记录,其中,所述第二存储地址指向所述第二存储空间;基于哈希算法计算得到第三存储地址,其中,第三存储空间归属于所述索引存储区;将所述第二索引记录写入所述第三存储地址所指向的第三存储空间。
2.根据权利要求1所述的方法,其特征在于,所述查找索引存储区之中是否存储有用于标识第一视频帧和存储地址之间映射关系的索引记录包括:基于哈希算法,查找索引存储区之中是否存储有用于标识第一视频帧和存储地址之间映射关系的索引记录。
3.根据权利要求2所述的方法,其特征在于,
所述哈希算法的输入为所述第一视频帧的帧序号或基于所述第一视频帧的帧序号转换得到的数字串。
4.根据权利要求1所述的方法,其特征在于,
所述方法还包括:
生成所述第一视频帧对应的第一超时判定记录,将所述第一超时判定记录写入超时管理队列之中,其中,第一超时判定记录包含第一视频帧的帧序号和第一时间戳,其中,所述第一时间戳所指示的时间为接收到所述第一视频数据包的时间。
5.根据权利要求4所述的方法,其特征在于,
所述方法还包括:
在第一预设条件满足时,从所述超时管理队列中读取出所述第一超时判定记录,基于所述第一超时判定记录中包含的第一时间戳判断所述第一视频帧是否已经超时,若判定所述第一视频帧已经超时,则发送存储于所述视频数据存储区之中的归属于所述第一视频帧的所有视频帧数据包。
6.根据权利要求4所述的方法,其特征在于,所述第一索引记录中还包括收包指示位,所述收包指示位用于指示出当前还未接收到的归属于所述第一视频帧的视频数据包的个数。
7.根据权利要求6所述的方法,其特征在于,
所述方法还包括:若查找到所述索引存储区存储有用于标识第一视频帧和存储地址之间映射关系的第一索引记录,则更新所述第一索引记录中的所述收包指示位的取值。
8.根据权利要求7所述的方法,其特征在于,
所述方法还包括:
在第二预设条件满足时,基于所述第一索引记录中的收包指示位取值确定是否已经接收到了归属于第一视频帧的所有视频数据包,若是,则发送存储于所述视频数据存储区之中的归属于所述第一视频帧的所有视频帧数据包。
9.根据权利要求7所述的方法,其特征在于,
所述方法还包括:
在第二预设条件满足时,基于所述第一索引记录中的收包指示位取值确定是否已经接收到了归属于第一视频帧的所有视频数据包,若是,则从所述超时管理队列中读取出所述第一超时判定记录,基于所述第一超时判定记录中包含的第一时间戳判断所述第一视频帧是否已经超时,若判定所述第一视频帧已经超时,则发送存储于所述视频数据存储区之中的归属于所述第一视频帧的所有视频帧数据包。
10.根据权利要求8或9所述的方法,其特征在于,
所述第一索引记录中还包含帧发送标志位;
所述方法还包括:在发送存储于所述视频数据存储区之中的归属于所述第一视频帧的所有视频帧数据包之后,更新所述第一索引记录中的帧发送标志位的取值,其中,更新取值后的所述第一索引记录中的帧发送标志位指示出所述第一视频帧的所有视频帧数据包已被发送。
11.一种视频服务器,其特征在于,包括:
接收单元,用于接收第一视频数据包;
查找单元,用于查找索引存储区之中是否存储有用于标识第一视频帧和存储地址之间映射关系的索引记录,其中,所述第一视频数据包归属于所述第一视频帧;
写入单元,用于若查找到所述索引存储区存储有用于标识第一视频帧和存储地址之间映射关系的第一索引记录,将所述第一视频数据包写入到所述第一索引记录包含的第一存储地址所指向的第一存储空间,其中,所述第一存储空间归属于视频数据存储区;
所述写入单元还用于,若未查找到所述索引存储区存储有用于标识第一视频帧和存储地址之间映射关系的索引记录,则为所述第一视频数据包所属的第一视频帧分配所述视频数据存储区之中的第二存储空间,将所述第一视频数据包写入所述第二存储空间;生成用于标识所述第一视频帧和第二存储地址之间映射关系的第二索引记录,所述第二存储地址指向所述第二存储空间;基于哈希算法计算得到第三存储地址,第三存储空间归属于所述索引存储区;将所述第二索引记录写入所述第三存储地址所指向的第三存储空间。
12.根据权利要求11所述的视频服务器,其特征在于,
所述查找单元具体用于:基于哈希算法,查找索引存储区之中是否存储有用于标识第一视频帧和存储地址之间映射关系的索引记录。
13.根据权利要求11所述的视频服务器,其特征在于,
所述视频服务器还包括:
超时管理单元,用于生成所述第一视频帧对应的第一超时判定记录,将所述第一超时判定记录写入超时管理队列之中,其中,第一超时判定记录包含第一视频帧的帧序号和第一时间戳,其中,所述第一时间戳所指示的时间为接收 到所述第一视频数据包的时间。
14.根据权利要求13所述的视频服务器,其特征在于,
所述视频服务器还包括:
第一发送单元,用于在第一预设条件满足时,从所述超时管理队列中读取出所述第一超时判定记录,基于所述第一超时判定记录中包含的第一时间戳判断所述第一视频帧是否已经超时,若判定所述第一视频帧已经超时,则发送存储于所述视频数据存储区之中的归属于所述第一视频帧的所有视频帧数据包。
15.根据权利要求13所述的视频服务器,其特征在于,所述第一索引记录中还包括收包指示位,所述收包指示位用于指示出当前还未接收到的归属于所述第一视频帧的视频数据包的个数。
16.根据权利要求15所述的视频服务器,其特征在于,
所述视频服务器还包括:
记录维护单元,用于若查找到所述索引存储区存储有用于标识第一视频帧和存储地址之间映射关系的第一索引记录,则更新所述第一索引记录中的所述收包指示位的取值。
17.根据权利要求16所述的视频服务器,其特征在于,
所述视频服务器还包括:
第二发送单元,在第二预设条件满足时,基于所述第一索引记录中的收包指示位取值确定是否已经接收到了归属于第一视频帧的所有视频数据包,若是,则发送存储于所述视频数据存储区之中的归属于所述第一视频帧的所有视频帧数据包。
18.根据权利要求16所述的视频服务器,其特征在于,
所述视频服务器还包括:
第三发送单元,在第二预设条件满足时,基于所述第一索引记录中的收包指示位取值确定是否已经接收到了归属于第一视频帧的所有视频数据包,若是,则从所述超时管理队列中读取出所述第一超时判定记录,基于所述第一超时判定记录中包含的第一时间戳判断所述第一视频帧是否已经超时,若判定所述第一视频帧已经超时,则发送存储于所述视频数据存储区之中的归属于所述 第一视频帧的所有视频帧数据包。
19.根据权利要求17或18所述的视频服务器,其特征在于,
所述第一索引记录中还包含帧发送标志位;
所述记录维护单元还用于,在发送存储于所述视频数据存储区之中的归属于所述第一视频帧的所有视频帧数据包之后,更新所述第一索引记录中的帧发送标志位的取值,其中,更新取值后的所述第一索引记录中的帧发送标志位指示出所述第一视频帧的所有视频帧数据包已被发送。
20.一种通信系统,其特征在于,包括:
用户终端和视频服务器;
其中,所述用户终端,用于向所述视频服务器发送第一视频数据包;
所述视频服务器,接收所述第一视频数据包;查找索引存储区之中是否存储有用于标识第一视频帧和存储地址之间映射关系的索引记录,其中,所述第一视频数据包归属于所述第一视频帧;若查找到所述索引存储区存储有用于标识第一视频帧和存储地址之间映射关系的第一索引记录,将所述第一视频数据包写入到所述第一索引记录包含的第一存储地址所指向的第一存储空间,其中,所述第一存储空间归属于视频数据存储区;
所述视频服务器还用于,若未查找到所述索引存储区存储有用于标识第一视频帧和存储地址之间映射关系的索引记录,则为所述第一视频数据包所属的第一视频帧分配所述视频数据存储区之中的第二存储空间,将所述第一视频数据包写入所述第二存储空间;生成用于标识所述第一视频帧和第二存储地址之间映射关系的第二索引记录,其中,所述第二存储地址指向所述第二存储空间;基于哈希算法计算得到第三存储地址,其中,第三存储空间归属于所述索引存储区;将所述第二索引记录写入所述第三存储地址所指向的第三存储空间。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310504784.7A CN103500227B (zh) | 2013-10-23 | 2013-10-23 | 视频帧存储管理方法和相关装置及通信系统 |
PCT/CN2014/088252 WO2015058617A1 (zh) | 2013-10-23 | 2014-10-10 | 视频帧存储管理方法、视频服务器及通信系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310504784.7A CN103500227B (zh) | 2013-10-23 | 2013-10-23 | 视频帧存储管理方法和相关装置及通信系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103500227A CN103500227A (zh) | 2014-01-08 |
CN103500227B true CN103500227B (zh) | 2017-02-22 |
Family
ID=49865438
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310504784.7A Active CN103500227B (zh) | 2013-10-23 | 2013-10-23 | 视频帧存储管理方法和相关装置及通信系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN103500227B (zh) |
WO (1) | WO2015058617A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103500227B (zh) * | 2013-10-23 | 2017-02-22 | 腾讯科技(深圳)有限公司 | 视频帧存储管理方法和相关装置及通信系统 |
CN105451082A (zh) * | 2014-08-27 | 2016-03-30 | 乐视致新电子科技(天津)有限公司 | 一种基于外部信号源的智能电视截屏方法及装置 |
CN104462280A (zh) * | 2014-11-27 | 2015-03-25 | 国网上海市电力公司 | 用于嵌入式系统的数据信息存储及快速查询方法 |
CN105242882B (zh) * | 2015-10-13 | 2018-09-21 | 东方网力科技股份有限公司 | 时序数据的帧存储方法及装置、时序数据查询方法及装置 |
CN106326439B (zh) * | 2016-08-26 | 2019-08-23 | 东方网力科技股份有限公司 | 一种实时视频存储、检索方法及装置 |
CN112925943B (zh) * | 2019-12-06 | 2022-04-08 | 浙江宇视科技有限公司 | 数据处理方法、装置、服务器及存储介质 |
CN113553468B (zh) * | 2020-04-24 | 2023-07-14 | 杭州海康威视数字技术股份有限公司 | 录像索引生成方法以及录像回放检索方法 |
CN112600815B (zh) * | 2020-12-08 | 2023-11-17 | 努比亚技术有限公司 | 视频显示方法、终端及计算机可读存储介质 |
CN113784197B (zh) * | 2021-08-23 | 2023-10-03 | 浙江大华技术股份有限公司 | 一种显示视频的方法、缓存视频帧的方法及装置 |
CN114007100A (zh) * | 2021-10-28 | 2022-02-01 | 深圳市商汤科技有限公司 | 视频处理方法、装置、计算机设备以及存储介质 |
CN114245169B (zh) * | 2021-12-21 | 2024-01-23 | 北京达佳互联信息技术有限公司 | 视频处理方法、装置、电子设备、介质和程序产品 |
CN114363304B (zh) * | 2021-12-27 | 2024-04-19 | 浪潮通信技术有限公司 | Rtp视频流存储、播放方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102136290A (zh) * | 2011-04-21 | 2011-07-27 | 北京联合大学 | 一种嵌入式实时视频文件存储方法 |
CN102779180A (zh) * | 2012-06-29 | 2012-11-14 | 华为技术有限公司 | 数据存储系统的操作处理方法,数据存储系统 |
CN103077200A (zh) * | 2012-12-27 | 2013-05-01 | 深圳市赛为智能股份有限公司 | 一种音视频存储索引方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103500227B (zh) * | 2013-10-23 | 2017-02-22 | 腾讯科技(深圳)有限公司 | 视频帧存储管理方法和相关装置及通信系统 |
-
2013
- 2013-10-23 CN CN201310504784.7A patent/CN103500227B/zh active Active
-
2014
- 2014-10-10 WO PCT/CN2014/088252 patent/WO2015058617A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102136290A (zh) * | 2011-04-21 | 2011-07-27 | 北京联合大学 | 一种嵌入式实时视频文件存储方法 |
CN102779180A (zh) * | 2012-06-29 | 2012-11-14 | 华为技术有限公司 | 数据存储系统的操作处理方法,数据存储系统 |
CN103077200A (zh) * | 2012-12-27 | 2013-05-01 | 深圳市赛为智能股份有限公司 | 一种音视频存储索引方法及装置 |
Non-Patent Citations (1)
Title |
---|
基于SAN的视频监控存储文件系统设计;何炬等;《视频应用与工程》;20110715;第35卷(第13期);第98-112页 * |
Also Published As
Publication number | Publication date |
---|---|
WO2015058617A1 (zh) | 2015-04-30 |
CN103500227A (zh) | 2014-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103500227B (zh) | 视频帧存储管理方法和相关装置及通信系统 | |
CN103546766B (zh) | 视频处理方法和相关设备及通信系统 | |
CN103455603B (zh) | 网页内容缓存、网页加载方法、装置及终端设备 | |
CN107249074A (zh) | 应用程序快速启动方法、移动终端及计算机可读存储介质 | |
CN104598262A (zh) | 一种移动应用更新方法及装置 | |
CN107402964A (zh) | 一种信息推荐方法、服务器及终端 | |
CN108112063A (zh) | 电量管理方法、电量管理装置、终端和可读存储介质 | |
CN107302628A (zh) | 应用功能的控制方法及相关产品 | |
CN106708554A (zh) | 程序运行方法及装置 | |
CN106203228A (zh) | 二维码信息传输方法、装置以及设备 | |
CN104519262A (zh) | 获取视频数据的方法、装置及终端 | |
CN106911848A (zh) | 输出提示消息的方法与终端设备 | |
CN107219951A (zh) | 触控屏控制方法、装置、存储介质及终端设备 | |
CN106201547A (zh) | 一种基于移动终端的消息显示的方法、装置及移动终端 | |
CN106658354A (zh) | 一种数据传输方法及设备 | |
CN107748699A (zh) | 资源分配方法及相关产品 | |
CN106445336A (zh) | 电子资源的快速获取方法及移动终端 | |
CN107817988A (zh) | 推送消息的管理方法及相关产品 | |
CN106569815A (zh) | 一种消息显示方法及终端 | |
CN106506815A (zh) | 一种应用的启用方法及相关设备 | |
CN103561155B (zh) | 发送短信的方法、装置及终端 | |
CN106550152A (zh) | 实现调制解调器节能的方法及移动终端 | |
CN103793267A (zh) | 队列的访问方法及装置 | |
CN106919458A (zh) | Hook目标内核函数的方法及装置 | |
CN107678822A (zh) | 一种信息处理方法及装置、终端和可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |