CN102355597A - Http视频点播加速方法及加速系统、本地播放设备 - Google Patents
Http视频点播加速方法及加速系统、本地播放设备 Download PDFInfo
- Publication number
- CN102355597A CN102355597A CN2011102362535A CN201110236253A CN102355597A CN 102355597 A CN102355597 A CN 102355597A CN 2011102362535 A CN2011102362535 A CN 2011102362535A CN 201110236253 A CN201110236253 A CN 201110236253A CN 102355597 A CN102355597 A CN 102355597A
- Authority
- CN
- China
- Prior art keywords
- video data
- video
- request
- memory space
- data
- 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.)
- Pending
Links
Images
Abstract
本发明公开了一种HTTP视频点播加速方法,包括如下步骤:本地播放设备以循环链表的形式分配多块存储空间;当请求播放第一视频数据时,向视频服务器请求长度为预定字节长度的临时视频数据;将临时视频数据存储在存储空间中,当请求播放第二视频数据时,则从临时视频数据中查找是否包括第二视频数据;如果是则读取第二视频数据,否则再次请求临时视频数据,并将临时视频数据存储在空白存储空间中,更新为循环链表的头结点,查找第二视频数据。本发明还公开了一种HTTP视频点播加速系统以及本地播放设备。本发明可以大幅度地减少播放过程中的HTTP重新连接的次数,从而加快视频数据的下载速度。
Description
技术领域
本发明涉及视频传输技术领域,特别涉及一种本地播放设备,以及具有该本地播放设备的HTTP视频点播加速系统及加速方法。
背景技术
视频点播(Video on Demand,VOD)是指根据观众的要求播放节目的视频点播系统。具体而言,视频点播技术是将用户所点击或选择的视频内容,传输给所请求的用户。视频点播系统通常是由VOD前端处理系统、传输网络与用户机顶盒/个人计算机组成。其中,视频点播系统采用用户机顶盒或个人计算机从传输网络中获取多媒体信息。
随着网络迅速发展,基于小区的高清在线视频点播越来越普及。采用超文本传输协议(HyperText Transfer Protocol,HTTP)作为视频数据传输的协议是当前最为普遍和通用的方法。但是,嵌入式设备(如,智能机顶盒等)和个人计算机在采用传统的HTTP在线视频点播方法时,存在以下缺陷:
(1)采用HTTP进行在线视频点播时,智能机顶盒或个人计算机在从网络上获取数据时,需要较频繁进行HTTP连接,连接次数多,效率较低。
(2)智能机顶盒上的HTTP在线播放,通常是先将视频数据存放在智能机顶盒内部的同步动态随机存储器(Synchronous Dynamic Random Access Memory,SDRAM)里,再从本地的SDRAM中播放。而传统的个人计算机上的HTTP在线播放工具,通常是先将视频数据存放在本地硬盘上,再从本地硬盘播放。由此可知,智能机顶盒和个人计算机作为客户端实现的在线视频播放,实际上是播放本地视频。采用这种方法需要智能机顶盒具有较大的存储容量,以及个人计算机上具有存储量较大的存储设备,由此将导致存储设备资源大量被占用,同时也会对用户使用智能机顶盒或个人计算机执行其他动作造成影响。
发明内容
本发明的目的旨在至少解决上述技术缺陷之一。
为此,本发明第一个目的在于提出了一种HTTP视频点播加速方法,该方法可以大幅度地减少播放过程中的HTTP重新连接的次数,从而加快视频数据的下载速度。
本发明第二方面的目的在于提出了一种HTTP视频点播加速系统。
本发明第三方面的目的在于提出了一种本地播放设备。
为实现上述目的,本发明第一方面的实施例提出了一种HTTP视频点播加速方法,包括如下步骤:
S1:在本地播放设备中以循环链表的形式分配多块存储空间,其中,每块存储空间对应于所述循环链表的一个结点;
S2:当本地播放设备请求播放第一视频数据时,由播放接口向视频服务器请求长度为预定字节长度的临时视频数据;
S3:将所述视频服务器返回的临时视频数据存储在所述循环链表的头结点对应的存储空间中,当所述本地播放设备请求播放第二视频数据时,执行步骤S4;
S4:从所述临时视频数据中查找是否包括所述第二视频数据,如果所述临时视频数据中不包括所述第二视频数据,则由所述播放接口向所述视频服务器再次请求长度为所述预定字节长度的临时视频数据,并将所述视频服务器再次返回的临时视频数据存储在所述循环链表中距离所述头结点对应的存储空间最近的没有存储数据的空白存储空间中,以及将所述空白存储空间对应的结点更新为所述循环链表的头结点,重复执行步骤S4,直至在更新后的临时视频数据中查找到所述第二视频数据;如果所述临时视频数据中包括所述第二视频数据,则从所述循环链表的头结点对应的存储空间中读取所述第二视频数据。
根据本发明实施例的HTTP视频点播加速方法,通过下载比请求播放的视频数据额外多的数据,并且通过循环链表的形式组织上述数据,从而可以预存下次播放需要的数据,避免每次播放都要连接到视频服务器,进而大幅度地降低了HTTP重新连接的次数,加快了数据的下载速度,提高了下载及播放的效率。并且,本发明实施例的HTTP视频点播加速方法以循环链表的形式存储视频数据,每次均从循环链表的头结点对应的存储空间中读取数据,不仅可以减少每次读取的时间,提高读取效率,而且通过循环链表的形式组织多个存储空间,每次只调用相应存储空间中的视频数据,可以避免本地播放设备中存储资源的浪费。
本发明第二方面的实施例提出了一种HTTP视频点播加速系统,包括:本地播放设备,用于以循环链表的形式分配多块存储空间,其中,每块存储空间对应于所述循环链表的一个结点;视频服务器,用于存储视频数据,当所述本地播放设备请求播放第一视频数据时,由所述本地播放设备的播放接口向所述视频服务器请求长度为预定字节长度的临时视频数据,所述视频服务器接收来自所述本地播放设备的播放接口的视频请求,并根据所述视频请求向所述本地播放设备返回所述临时视频数据,所述本地播放设备将返回的临时视频数据存储在所述循环链表的头结点对应的存储空间中,当所述本地播放设备请求播放第二视频数据时,则从所述临时视频数据中查找是否包括所述第二视频数据,如果所述临时视频数据中不包括所述第二视频数据,则由所述本地播放设备的播放接口向所述视频服务器再次请求长度为所述预定字节长度的临时视频数据,并将所述视频服务器再次返回的临时视频数据存储在所述循环链表中距离所述头结点对应的存储空间最近的没有存储数据的空白存储空间中,以及将所述空白存储空间对应的结点更新为所述循环链表的头结点,重新在更新后的临时视频数据中查找所述第二视频数据,直至查找到所述第二视频数据;如果所述临时视频数据包括所述第二视频数据,则从所述循环链表的头结点对应的存储空间中读取所述第二视频数据。
根据本发明实施例的HTTP视频点播加速系统,通过下载比请求播放的视频数据额外多的数据,并且通过循环链表的形式组织上述数据,从而可以预存下次本地播放设备播放需要的数据,避免每次播放都要连接到视频服务器,进而大幅度地降低了HTTP重新连接的次数,加快了数据的下载速度。并且,本发明实施例的HTTP视频点播加速系统中的本地播放设备以循环链表的形式存储视频数据,每次均从循环链表的头结点对应的存储空间中读取数据,不仅可以减少每次读取的时间,提高读取效率,而且通过循环链表的形式组织多个存储空间,每次只调用相应存储空间中的视频数据,可以避免本地播放设备中存储资源的浪费。
本发明第三方面的实施例提出了一种本地播放设备,包括:存储模块,用于存储来自视频服务器的临时视频数据,所述存储模块包括以循环链表形式分配的多块存储空间,其中,每块存储空间对应于所述循环链表的一个结点;请求模块,用于向所述视频服务器发送视频请求;调度模块,分别与所述存储模块和所述请求模块相连,用于接收所述视频服务器返回的临时视频数据,并将所述临时视频数据发送给所述存储模块,由所述存储模块将所述临时视频数据存储在所述循环链表的头结点对应的存储空间中,并在所述临时视频数据中查找所述视频请求对应的视频数据;播放模块,分别与所述调度模块和所述存储模块相连,用于接收并播放所述视频请求对应的视频数据。
根据本发明实施例的本地播放设备,通过下载比请求播放的视频数据额外多的数据,并且通过循环链表的形式组织上述数据,从而可以预存下次播放模块播放需要的数据,避免每次播放都要连接到服务器,进而大幅度地降低了HTTP重新连接的次数,加快了数据的下载速度。并且,本发明实施例的本地播放设备中的存储模块以循环链表的形式存储视频数据,每次均从循环链表的头结点对应的存储空间中读取数据,不仅可以减少每次读取的时间,提高读取效率,而且通过循环链表的形式组织多个存储空间,每次只调用相应存储空间中的视频数据,可以避免本地播放设备中存储资源的浪费。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为根据本发明的一个实施例的HTTP视频点播加速方法的流程图;
图2为根据本发明的另一个实施例的HTTP视频点播加速方法的流程图;
图3为根据本发明实施例的循环链表的示意图;
图4为根据本发明实施例的HTTP视频点播加速系统的示意图;
图5为根据本发明实施例的本地播放设备的示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
图1为根据本发明的一个实施例的HTTP视频点播加速方法的流程图。如图1所示,本发明实施例提供的HTTP视频点播加速方法可以用于基于小区的高清在线视频点播中。所述的HTTP视频点播加速方法,包括如下步骤:
S1:在本地播放设备中以循环链表的形式分配多块存储空间。
每块存储空间均可以存储本地播放设备请求播放的视频数据。其中,每块存储空间均对应于循环链表的一个结点。
在本发明的一个实施例中,本地播放设备可以为诸如智能机顶盒等的嵌入式设备或个人计算机。
S2:当本地播放设备请求播放第一视频数据时,则由本地播放设备的播放接口向视频服务器请求长度为预定字节长度的临时视频数据。
S3:本地播放设备将视频服务器返回的临时视频数据存储在循环链表的头结点对应的存储空间中。当本地播放设备请求播放第二视频数据时,执行步骤S4。
S4:从临时视频数据中查找是否包括第二视频数据,如果临时视频数据中不包括第二视频数据,则由播放接口向视频服务器再次请求长度为预定字节长度的临时视频数据,并将视频服务器再次返回的临时视频数据存储在循环链表中距离头结点对应的存储空间最近的没有存储数据的空白存储空间中。并将该空白存储空间对应的结点更新为循环链表的头结点。重复执行步骤S4,直至在更新后的临时视频数据中查找到第二视频数据。
如果临时视频数据中包括第二视频数据,则从循环链表的头结点对应的存储空间中读取该第二视频数据。
根据本发明实施例的HTTP视频点播加速方法,通过下载比请求播放的视频数据额外多的数据,并且通过循环链表的形式组织上述数据,从而可以预存下次播放需要的数据,避免每次播放都要连接到视频服务器,进而大幅度地降低了HTTP重新连接的次数,加快了数据的下载速度,提高了下载及播放的效率。并且,本发明实施例的HTTP视频点播加速方法以循环链表的形式存储视频数据,每次均从循环链表的头结点对应的存储空间中读取数据,不仅可以减少每次读取的时间,提高读取效率,而且通过循环链表的形式组织多个存储空间,每次只调用相应存储空间中的视频数据,可以避免本地播放设备中存储资源的浪费。
下面参考图2详细描述本发明另一个实施例提供的HTTP视频点播加速方法。
如图2所示,本发明提供的HTTP视频点播加速方法包括如下步骤:
S201:以循环链表形式分配存储空间。
首先,在本地播放设备中以循环链表的形式分配多块存储空间。每块存储空间均对应于循环链表的一个结点。例如,第一块存储空间对应于循环链表的头结点,第二块存储空间对应于头结点的下一个结点,依次类推。
每个结点对应的存储空间中可以存储数据(Data)和指向下一个结点的指针(Next)。当存储空间中没有数据时,仅存储有指向下一个结点的指针(Next)。图3示出了循环链表的组织形式。如图中所示,循环链表包括N个结点,分别为位于首位的头结点1、结点2、......结点N-1以及位于末尾的尾结点N。当有数据存储在结点对应的存储空间中时,每个节点中均包括有存储的数据(Data)和下一个结点的指针(Next)。例如,在头结点1中存储有对应于头结点1的数据和指向结点2的指针,在结点2中存储有对应于结点2的数据和指向结点3的指针,以此类推,在尾结点N中存储有对应于尾结点N的数据和指向头结点1的指针。
在本发明的一个实施例中,在本地播放设备中以循环链表的形式分配至少三块存储空间。其中,每块存储空间的容量为0.5MB~3MB。优选地,每块存储空间的容量为1MB~2MB。
S202:本地播放设备请求播放第一视频数据。
当用户要求观看某个视频时,通过本地播放设备请求播放第一视频数据。其中,每块存储空间的容量均大于本地播放设备请求播放的视频数据的长度,例如,每块存储空间的容量均大于第一视频数据的长度,从而使得下载后的视频数据可以存储到相应的存储空间中。
S203:播放接口向视频服务器请求长度为预定字节长度的临时视频数据。
本地播放设备的播放接口根据视频播放请求向远程的视频服务器发送视频请求,向视频服务器请求长度为预定字节长度的临时视频数据。其中,预定字节长度大于或等于本地播放设备请求的视频数据的长度,且预定字节长度小于或等于每块存储空间的容量。
视频服务器在接收到视频请求后,判断该视频请求是否合法。当视频服务器判断该视频请求合法后批准该视频请求。视频服务器向本地播放设备发送长度为预定字节长度的临时视频数据。
S204:存储临时视频数据到循环链表的头结点对应的存储空间。
本地播放设备将视频服务器返回的临时视频数据存储在循环链表的头结点(HEAD)对应的存储空间中。由于,临时视频数据的字节长度为预定字节长度,且预定字节长度小于或等于每块存储空间的容量,从而临时视频数据可以存储在存储空间中。由于临时视频数据存储在循环链表的头结点对应的存储空间中,从而可以获知在头结点中已存数据的大小以及对应于上述临时视频数据的HTTP请求位置,即本次请求的数据在整个视频图像中的具体位置。由此可推,对于循环链表中的每一个结点,当有数据写入一个结点时,可以获知写入数据的大小以及用于获取上述写入数据的HTTP请求位置。
然后将步骤S202中请求播放的第一视频数据传送给上层接口以供播放,进而提供用户观看。
S205:本地播放设备请求播放第二视频数据。
本地播放设备请求播放第二视频数据。其中,第二视频数据的字节长度小于或等于预定字节的长度。并且,第二视频数据与第一视频数据的字节的长度可以相同或不同。
S206:查找临时视频数据中是否包含第二视频数据。
从循环链表的头结点对应的存储空间中存储的临时视频数据中查找是否包含请求的第二视频数据。如果临时视频数据中包含第二视频数据,则执行步骤S207;否则再次执行步骤S203,即由播放接口向视频服务器再次请求长度为预定字节长度的临时视频数据。此时,将视频服务器再次返回的临时视频数据存储在循环链表中距离头结点(HEAD)最近的空白存储空间中,并将该空白存储空间对应的节点更新为循环链表的头结点(HEAD)。其中,空白存储空间是指没有存储数据的空间。举例而言,由于初始分配存储空间时,每块存储空间内均没有存储数据。换言之,每块存储空间均为空白存储空间。在第一次向服务器请求数据视频数据后,将第一次请求到的视频数据存储在循环链表的头结点中。此时,距离头结点最近的空白存储空间对应的结点为第二个结点(NODE2)。在再次向服务器请求临时视频数据时,通过存储在头结点中的指向第二个结点的指针查找第二个结点,将第二次请求的视频数据存储在循环链表的第二个结点(NODE2),并将该结点(NODE2)设置为循环链表的头结点,重新查找更新后的临时视频数据中是否包含第二视频数据。
S207:从临时视频数据中读取第二视频数据。
当临时视频数据中包含第二视频数据时,读取第二视频数据,从而不需要向视频服务器再次请求视频数据。
S208:播放第二视频数据。
根据步骤S207中读取的视频数据,由本地播放设备播放第二视频数据,以提供用户观看。
由上可推,每当本地播放设备请求播放视频数据时,首先判断请求的视频数据是否包含在循环链表的临时视频数据中。如果临时视频数据中存在请求播放的数据,则直接读取该视频数据以供播放。否则,再次向视频服务器请求临时视频数据,并将最新请求得到的临时视频数据存储在循环链表最接近头结点对应的空白存储空间中,更新该空白存储空间对应的结点为头结点。重新判断请求的视频数据是否包含在循环链表的临时视频数据中,如此循环直至在临时视频数据中查找到请求播放的视频数据,读取该视频数据。本地播放设备播放当前循环链表的头结点对应的存储空间中的临时视频数据中请求播放的视频数据,供用户观看。
由于,每次向视频服务器请求的临时视频数据总是大于或等于本地播放设备需要的视频数据,从而可以预先下载额外多的视频数据,以便后续播放时读取。
根据本发明实施例的HTTP视频点播加速方法,通过下载比请求播放的视频数据额外多的数据,并且通过循环链表的形式组织上述数据,从而可以预存下次播放需要的数据,避免每次播放都要连接到视频服务器,进而大幅度地降低了HTTP重新连接的次数,加快了数据的下载速度。以在线播放高清的Matroska视频文档(Matroska Video,MKV)为例,采用传统的数据下载方式,每秒需要连接的次数为30~45次。而采用本发明实施例的HTTP视频点播加速方法,则可以将每秒连接的次数降到0~15次,大大降低了HTTP的连接次数。此外,播放接口向视频服务器请求的临时视频数据的预定字节长度越大,则本地播放设备读取视频服务器的次数就越少,HTTP需要重新连接的次数就越少。当然,预定字节长度并非无限制的大,而在合理范围内取较大的值。
此外,通过以循环链表的形式存储视频数据,每次均从循环链表的头结点对应的存储空间中读取数据,不仅可以减少每次读取的时间,提高读取效率,而且通过循环链表的形式组织多个存储空间,每次只调用相应存储空间中的视频数据,可以避免本地播放设备中存储资源的浪费。具体而言,通过循环链表的形式组织多个存储空间,可以减少智能机顶盒内部的SDRAM或个人计算机的硬盘中的资源浪费。
下面参考图4描述根据本发明实施例的HTTP视频点播加速系统400。该HTTP视频点播加速系统400可以用于基于小区的高清在线视频点播中。
如图4所示,本发明实施例提供的HTTP视频点播加速系统400包括本地播放设备410和视频服务器420,其中,本地播放设备410和视频服务器420可以进行通信。
在本发明的一个实施例中,本地播放设备可以为诸如智能机顶盒等的嵌入式设备。
在本地播放设备410内以循环链表的形式分配多块存储空间。每块存储空间均对应于循环链表的一个结点。例如,第一块存储空间对应于循环链表的头结点,第二块存储空间对应于头结点的下一个结点,依次类推。
每个结点对应的存储空间中可以存储数据(Data)和指向下一个结点的指针(Next)。当存储空间中没有数据时,仅存储有指向下一个结点的指针(Next)。当有数据存储在结点对应的存储空间中时,每个节点中均包括有存储的数据(Data)和下一个结点的指针(Next)。例如,在头结点中存储有对应于头结点的数据和指向第二个结点的指针,在第二个结点中存储有对应于第二个结点的数据和指向第三个结点的指针,以此类推,在尾结点中存储有对应于尾结点的数据和指向头结点的指针。
例如,第一块存储空间对应于循环链表的头结点,第二块存储空间对应于头结点的下一个结点,依次类推。在本发明的一个实施例中,在本地播放设备410中以循环链表的形式分配至少三块存储空间。其中,每块存储空间的容量为0.5MB~3MB。优选地,每块存储空间的容量为1MB~2MB。
当用户要求观看某个视频时,通过本地播放设备410请求播放第一视频数据。其中,每块存储空间的容量均大于本地播放设备请求播放的视频数据的字节长度,从而使得下载后的视频数据可以存储到相应的存储空间中。本地播放设备410的播放接口根据视频播放请求向远程的视频服务器420发送视频请求,向视频服务器420请求长度为预定字节长度的临时视频数据。其中,预定字节长度大于或等于本地播放设备410请求的视频数据的长度,且预定字节长度小于或等于每块存储空间的容量。
视频服务器420在接收到上述视频请求后,判断该视频请求是否合法。当视频服务器420判断该视频请求合法后批准该视频请求,向本地播放设备410发送长度为预定字节长度的临时视频数据。本地播放设备410将视频服务器返回的临时视频数据存储在循环链表的头结点(HEAD)对应的存储空间中。由于,临时视频数据的字节长度为预定字节长度,且预定字节长度小于或等于每块存储空间的容量,从而临时视频数据可以存储在存储空间中。然后播放临时视频数据中的第一视频数据,供用户观看。由于临时视频数据存储在循环链表的头结点对应的存储空间中,从而可以获知在头结点中已存数据的大小以及对应于上述临时视频数据的HTTP请求位置,即本次请求的数据在整个视频图像中的具体位置。由此可推,对于循环链表中的每一个结点,当有数据写入一个结点时,可以获知写入数据的大小以及用于获取上述写入数据的HTTP请求位置。
当本地播放设备410请求播放第二视频数据时,首先从循环链表的头结点对应的存储空间中存储的临时视频数据中查找是否包含请求的第二视频数据。其中,第二视频数据的字节长度小于或等于预定字节的长度。并且,第二视频数据与第一视频数据的字节的长度可以相同或不同。
如果临时视频数据中包含第二视频数据,则读取第二视频数据,从而不需要向视频服务器420再次请求视频数据。由本地播放设备410播放第二视频数据,以提供用户观看。
如果临时视频数据中不包含第二视频数据,则由播放接口向视频服务器420再次请求长度为预定字节长度的临时视频数据。此时,本地播放设备410将视频服务器420再次返回的临时视频数据存储在循环链表中距离头结点(HEAD)最近的空白存储空间中,并将该空白存储空间对应的节点更新为循环链表的头结点(HEAD)。其中,空白存储空间是指没有存储数据的空间。举例而言,由于初始分配存储空间时,每块存储空间内均没有存储数据。换言之,每块存储空间均为空白存储空间。在第一次向服务器请求数据视频数据后,将第一次请求到的视频数据存储在循环链表的头结点中。此时,距离头结点最近的空白存储空间对应的结点为第二个结点(NODE2)。在再次向服务器请求临时视频数据时,通过存储在头结点中的指向第二个结点的指针查找第二个结点,将第二次请求的临时视频数据存储在循环链表的第二个结点(NODE2),并将该结点(NODE2)设置为循环链表的头结点。本地播放设备410重新在更新后的临时视频数据中查找第二视频数据,直至查找到所述第二视频数据时,接收并播放第二视频数据。
由上可推,每当本地播放设备410请求播放的视频数据时,首先判断请求的视频数据是否包含在循环链表的临时视频数据中。如果临时视频数据中存在请求播放的数据,则直接读取该视频数据以供播放。否则,由本地播放设备410的播放接口再次向视频服务器420请求临时视频数据,并将最新请求得到的临时视频数据存储在循环链表最接近头结点对应的空白存储空间中,更新该空白存储空间对应的结点为头结点。重新判断请求的视频数据是否包含在循环链表的临时视频数据中,如此循环直至在临时视频数据中查找到请求播放的视频数据,读取该视频数据。本地播放设备410播放更新后的循环链表的头结点对应的存储空间中的临时视频数据中请求播放的视频数据,供用户观看。
由于,每次向视频服务器420请求的临时视频数据总是大于或等于本地播放设备410需要的视频数据,从而可以预先下载额外多的视频数据,以便后续播放时读取。
根据本发明实施例的HTTP视频点播加速系统,通过下载比请求播放的视频数据额外多的数据,并且通过循环链表的形式组织上述数据,从而可以预存下次播放需要的数据,避免每次播放都要连接到视频服务器,进而大幅度地降低了HTTP重新连接的次数,加快了数据的下载速度。
并且,本发明实施例的HTTP视频点播加速系统以循环链表的形式存储视频数据,每次均从循环链表的头结点对应的存储空间中读取数据,不仅可以减少每次读取的时间,提高读取效率,而且通过循环链表的形式组织多个存储空间,每次只调用相应存储空间中的视频数据,可以避免本地播放设备中存储资源的浪费。具体而言,通过循环链表的形式组织多个存储空间,可以减少智能机顶盒内部的SDRAM或个人计算机的硬盘中的资源浪费。
下面参考图5描述根据本发明实施例的本地播放设备。该本地播放设备可以用于基于小区的高清在线视频点播中。在本发明的一个实施例中,本发明实施例提供的本地播放设备可以为上述方面实施例中的本地播放设备410。
在本发明的一个实施例中,本地播放设备可以为诸如智能机顶盒等的嵌入式设备。
如图5所示,本发明实施例提供的本地播放设备410包括存储模块4101、请求模块4102、调度模块4103和播放模块4104,其中,调度模块4103分别与存储模块4101和请求模块4102相连,播放模块4104分别与调度模块4103和存储模块4101相连。
存储模块4101用于存储来自视频服务器的临时视频数据。存储模块4101包括有以循环链表形式分配的多块存储空间,其中,每块存储空间对应于所述循环链表的一个结点。例如,第一块存储空间对应于循环链表的头结点,第二块存储空间对应于头结点的下一个结点,依次类推。
每个结点对应的存储空间中可以存储数据(Data)和指向下一个结点的指针(Next)。当存储空间中没有数据时,仅存储有指向下一个结点的指针(Next)。当有数据存储在结点对应的存储空间中时,每个节点中均包括有存储的数据(Data)和下一个结点的指针(Next)。例如,在头结点中存储有对应于头结点的数据和指向第二个结点的指针,在第二个结点中存储有对应于第二个结点的数据和指向第三个结点的指针,以此类推,在尾结点中存储有对应于尾结点的数据和指向头结点的指针。在本发明的一个实施例中,在本地播放设备中以循环链表的形式分配至少三块存储空间。其中,每块存储空间的容量为0.5MB~3MB。优选地,每块存储空间的容量为1MB~2MB。
当用户要求观看某个视频时,通过请求模块4102请求播放第一视频数据。其中,每块存储空间的容量均大于本地播放设备请求播放的视频数据的字节长度,从而使得下载后的视频数据可以存储到相应的存储空间中。请求模块4102根据视频播放请求向远程的视频服务器送视频请求。在本发明的一个实施例中,请求模块4102向视频服务器请求长度为预定字节长度的临时视频数据。其中,预定字节长度大于或等于本地播放设备410请求的视频数据的长度,且预定字节长度小于或等于每块存储空间的容量。视频服务器在接收到上述视频请求后,判断该视频请求是否合法。当视频服务器判断该视频请求合法后批准该视频请求,向调度模块4103发送长度为预定字节长度的临时视频数据。调度模块4103将视频服务器返回的临时视频数据存储在循环链表的头结点(HEAD)对应的存储空间中。由于,临时视频数据的长度为预定字节长度,且预定字节长度小于或等于每块存储空间的容量,从而临时视频数据可以存储在存储空间中。由于临时视频数据存储在循环链表的头结点对应的存储空间中,从而可以获知在头结点中已存数据的大小已经对应于上述临时视频数据的HTTP请求位置,即本次请求的数据在整个视频图像中的具体位置。由此可推,对于循环链表中的每一个结点,当有数据写入一个结点时,可以获知写入数据的大小以及用于获取上述写入数据的HTTP请求位置。然后播放临时视频数据中的第一视频数据,供用户观看。
当请求模块4102请求播放第二视频数据时,调度模块4103首先从循环链表的头结点对应的存储空间中存储的临时视频数据中查找是否包含请求的第二视频数据。其中,第二视频数据的字节长度小于或等于预定字节的长度。并且,第二视频数据与第一视频数据的字节的长度可以相同或不同。
如果临时视频数据中包含第二视频数据,则读取第二视频数据,从而不需要向视频服务器再次请求视频数据。由播放模块4104播放第二视频数据,以提供用户观看。
如果临时视频数据中不包含第二视频数据,则由请求模块4102向视频服务器再次请求长度为预定字节长度的临时视频数据。此时,调度模块4103将视频服务器420再次返回的临时视频数据存储在循环链表中距离头结点(HEAD)最近的空白存储空间中,并将该空白存储空间对应的节点更新为循环链表的头结点(HEAD)。其中,所述空白存储空间是指没有存储数据的空间。举例而言,由于初始分配存储空间时,每块存储空间内均没有存储数据。换言之,每块存储空间均为空白存储空间。在第一次向服务器请求数据视频数据后,将第一次请求到的视频数据存储在循环链表的头结点中。此时,距离头结点最近的空白存储空间对应的结点为第二个结点(NODE2)。在再次向服务器请求临时视频数据时,通过存储在头结点中的指向第二个结点的指针查找第二个结点,将第二次请求的临时视频数据存储在循环链表的第二个结点(NODE2),并将该结点(NODE2)设置为循环链表的头结点。调度模块4103重新在更新后的临时视频数据中查找第二视频数据,直至查找到第二视频数据时,由播放模块4104接收并播放第二视频数据。
由上可推,每当请求模块4102请求播放的视频数据时,调度模块4103首先判断请求的视频数据是否包含在循环链表的临时视频数据中。如果临时视频数据中存在请求播放的数据,则直接读取该视频数据以供播放。否则,由请求模块4102的播放接口再次向视频服务器请求临时视频数据,并将最新请求得到的临时视频数据存储在循环链表最接近头结点对应的空白存储空间中,更新该空白存储空间对应的结点为头结点。重新判断请求的视频数据是否包含在循环链表的临时视频数据中,如此循环直至在临时视频数据中查找到请求播放的视频数据,读取该视频数据。播放模块4104播放更新后的循环链表的头结点对应的存储空间中的临时视频数据中请求播放的视频数据,供用户观看。
由于,每次向视频服务器请求的临时视频数据总是大于播放模块4104需要的视频数据,从而可以预先下载额外多的视频数据,以便后续播放时读取。
根据本发明实施例的本地播放设备,通过下载比用户请求播放的视频数据额外多的数据,并且通过循环链表的形式组织上述数据,从而可以预存下次播放需要的数据,避免每次播放都要连接到视频服务器,进而大幅度地降低了HTTP重新连接的次数,加快了数据的下载速度。
并且,本发明实施例的本地播放设备中的存储模块以循环链表的形式存储视频数据,每次均从循环链表的头结点对应的存储空间中读取数据,不仅可以减少每次读取的时间,提高读取效率,而且通过循环链表的形式组织多个存储空间,每次只调用相应存储空间中的视频数据,可以避免本地播放设备中存储资源的浪费。具体而言,通过循环链表的形式组织多个存储空间,可以减少智能机顶盒内部的SDRAM或个人计算机的硬盘中的资源浪费。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同限定。
Claims (18)
1.一种HTTP视频点播加速方法,其特征在于,包括如下步骤:
S1:在本地播放设备中以循环链表的形式分配多块存储空间,其中,每块存储空间对应于所述循环链表的一个结点;
S2:当本地播放设备请求播放第一视频数据时,由播放接口向视频服务器请求长度为预定字节长度的临时视频数据;
S3:将所述视频服务器返回的临时视频数据存储在所述循环链表的头结点对应的存储空间中,当所述本地播放设备请求播放第二视频数据时,执行步骤S4;
S4:从所述临时视频数据中查找是否包括所述第二视频数据,如果所述临时视频数据中不包括所述第二视频数据,则由所述播放接口向所述视频服务器再次请求长度为所述预定字节长度的临时视频数据,并将所述视频服务器再次返回的临时视频数据存储在所述循环链表中距离所述头结点对应的存储空间最近的没有存储数据的空白存储空间中,以及将所述空白存储空间对应的结点更新为所述循环链表的头结点,重复执行步骤S4,直至在更新后的临时视频数据中查找到所述第二视频数据;如果所述临时视频数据中包括所述第二视频数据,则从所述循环链表的头结点对应的存储空间中读取所述第二视频数据。
2.如权利要求1所述的HTTP视频点播加速方法,其特征在于,所述预定字节长度大于或等于所述本地播放设备请求的视频数据的字节长度。
3.如权利要求1所述的HTTP视频点播加速方法,其特征在于,所述每块存储空间的容量大于所述本地播放设备请求的视频数据的字节长度。
4.如权利要求1或3所述的HTTP视频点播加速方法,其特征在于,所述每块存储空间的容量为0.5MB~3MB。
5.如权利要求1所述的HTTP视频点播加速方法,其特征在于,在所述本地播放设备中以循环链表的形式分配至少三块存储空间。
6.如权利要求1所述的HTTP视频点播加速方法,其特征在于,所述本地播放设备播放所述循环链表的头结点对应的存储空间中的临时视频数据中请求播放的视频数据。
7.一种HTTP视频点播加速系统,其特征在于,包括:
本地播放设备,用于以循环链表的形式分配多块存储空间,其中,每块存储空间对应于所述循环链表的一个结点;和
视频服务器,用于存储视频数据,
当所述本地播放设备请求播放第一视频数据时,由所述本地播放设备的播放接口向所述视频服务器请求长度为预定字节长度的临时视频数据,所述视频服务器接收来自所述本地播放设备的播放接口的视频请求,并根据所述视频请求向所述本地播放设备返回所述临时视频数据,
所述本地播放设备将返回的临时视频数据存储在所述循环链表的头结点对应的存储空间中,当所述本地播放设备请求播放第二视频数据时,则从所述临时视频数据中查找是否包括所述第二视频数据,如果所述临时视频数据中不包括所述第二视频数据,则由所述本地播放设备的播放接口向所述视频服务器再次请求长度为所述预定字节长度的临时视频数据,并将所述视频服务器再次返回的临时视频数据存储在所述循环链表中距离所述头结点对应的存储空间最近的没有存储数据的空白存储空间中,以及将所述空白存储空间对应的结点更新为所述循环链表的头结点,重新在更新后的临时视频数据中查找所述第二视频数据,直至查找到所述第二视频数据;如果所述临时视频数据包括所述第二视频数据,则从所述循环链表的头结点对应的存储空间中读取所述第二视频数据。
8.如权利要求7所述的HTTP视频点播加速系统,其特征在于,所述预定字节长度大于或等于所述本地播放设备请求的视频数据的字节长度。
9.如权利要求7所述的HTTP视频点播加速系统,其特征在于,所述每块存储空间的容量大于所述本地播放设备请求的视频数据的字节长度。
10.如权利要求7或9所述的HTTP视频点播加速系统,其特征在于,所述每块存储空间的容量为0.5MB~3MB。
11.如权利要求7所述的HTTP视频点播加速系统,其特征在于,在所述本地播放设备中以循环链表的形式分配至少三块存储空间。
12.如权利要求7所述的HTTP视频点播加速系统,其特征在于,所述本地播放设备播放所述循环链表的头结点对应的存储空间中的临时视频数据中请求播放的视频数据。
13.一种本地播放设备,其特征在于,包括:
存储模块,用于存储来自视频服务器的临时视频数据,所述存储模块包括以循环链表形式分配的多块存储空间,其中,每块存储空间对应于所述循环链表的一个结点;
请求模块,用于向所述视频服务器发送视频请求;
调度模块,分别与所述存储模块和所述请求模块相连,用于接收所述视频服务器返回的临时视频数据,并将所述临时视频数据发送给所述存储模块,由所述存储模块将所述临时视频数据存储在所述循环链表的头结点对应的存储空间中,并在所述临时视频数据中查找所述视频请求对应的视频数据;
播放模块,分别与所述调度模块和所述存储模块相连,用于接收并播放所述视频请求对应的视频数据。
14.如权利要求13所述的本地播放设备,其特征在于,当所述请求模块请求播放第一视频数据时,由所述请求模块向所述视频服务器请求长度为预定字节长度的临时视频数据,其中,所述预定字节长度大于或等于所述请求模块请求的视频数据的字节长度。
15.如权利要求14所述的本地播放设备,其特征在于,当所述请求模块请求播放第二视频数据时,则所述调度模块从所述临时视频数据中查找是否包括所述第二视频数据,如果所述临时视频数据不包括所述第二视频数据,由所述请求模块向所述视频服务器再次请求长度为所述预定字节长度的临时视频数据,并将由所述视频服务器再次返回的临时视频数据存储在所述循环链表中距离所述头结点对应的存储空间最近的没有存储数据的空白存储空间中,以及将所述空白存储空间对应的结点更新为所述循环链表的头结点,并重新在更新后的临时视频数据中查找所述第二视频数据,直至查找到所述第二视频数据时,所述播放模块接收并播放所述第二视频数据;如果所述临时视频数据包括所述第二视频数据,则所述播放模块从所述循环链表的头结点对应的存储空间中读取并播放所述第二视频数据。
16.如权利要求13所述的本地播放设备,其特征在于,所述每块存储空间的容量大于所述请求模块请求的视频数据的字节长度。
17.如权利要求13或16所述的本地播放设备,其特征在于,所述每块存储空间的容量为0.5MB~3MB。
18.如权利要求15所述的本地播放设备,其特征在于,所述播放模块播放所述循环链表的头结点对应的存储空间中的临时视频数据中请求播放的视频数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011102362535A CN102355597A (zh) | 2011-08-17 | 2011-08-17 | Http视频点播加速方法及加速系统、本地播放设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011102362535A CN102355597A (zh) | 2011-08-17 | 2011-08-17 | Http视频点播加速方法及加速系统、本地播放设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102355597A true CN102355597A (zh) | 2012-02-15 |
Family
ID=45579082
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011102362535A Pending CN102355597A (zh) | 2011-08-17 | 2011-08-17 | Http视频点播加速方法及加速系统、本地播放设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102355597A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015043406A1 (zh) * | 2013-09-25 | 2015-04-02 | 腾讯科技(深圳)有限公司 | 获取流媒体数据的方法、装置及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101242430A (zh) * | 2008-02-22 | 2008-08-13 | 华中科技大学 | 对等网络点播系统中的定点数据预取方法 |
CN101610392A (zh) * | 2009-07-24 | 2009-12-23 | 北京网尚文化传播有限公司 | 一种互联网电视在线点播的方法和系统 |
CN101782918A (zh) * | 2008-12-31 | 2010-07-21 | 北京泉舜广恒科技有限公司 | 针对实时性的媒体数据的档案系统vfs设计算法 |
US20100281509A1 (en) * | 2007-01-18 | 2010-11-04 | Thomson Licensing | Prefix caching assisted quality of service aware peer-to-peer video on-demand |
WO2011032382A1 (zh) * | 2009-09-16 | 2011-03-24 | 深圳市同洲电子股份有限公司 | 一种推送视频及数据内容实现本地点播的方法及系统 |
-
2011
- 2011-08-17 CN CN2011102362535A patent/CN102355597A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100281509A1 (en) * | 2007-01-18 | 2010-11-04 | Thomson Licensing | Prefix caching assisted quality of service aware peer-to-peer video on-demand |
CN101242430A (zh) * | 2008-02-22 | 2008-08-13 | 华中科技大学 | 对等网络点播系统中的定点数据预取方法 |
CN101782918A (zh) * | 2008-12-31 | 2010-07-21 | 北京泉舜广恒科技有限公司 | 针对实时性的媒体数据的档案系统vfs设计算法 |
CN101610392A (zh) * | 2009-07-24 | 2009-12-23 | 北京网尚文化传播有限公司 | 一种互联网电视在线点播的方法和系统 |
WO2011032382A1 (zh) * | 2009-09-16 | 2011-03-24 | 深圳市同洲电子股份有限公司 | 一种推送视频及数据内容实现本地点播的方法及系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015043406A1 (zh) * | 2013-09-25 | 2015-04-02 | 腾讯科技(深圳)有限公司 | 获取流媒体数据的方法、装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102130936B (zh) | 一种在动态http流传输方案中支持时移回看的方法和装置 | |
CN101677325B (zh) | 发布媒体描述信息和获取媒体的方法、装置、系统 | |
US11394796B2 (en) | Dynamic and static data of metadata objects | |
US20140165119A1 (en) | Offline download method, multimedia file download method and system thereof | |
CN100498707C (zh) | 一种配置用于播放网络节目的软件资源的方法和装置 | |
CN104506950A (zh) | 网络流媒体播放中的多线程下载方法、装置及下载设备 | |
CN103563327A (zh) | 定位和检索分段内容 | |
CN103164525B (zh) | Web应用发布方法和装置 | |
KR20130062462A (ko) | 스트리밍 게임 서비스를 위한 분산 서버 시스템 및 방법 | |
CN104967873A (zh) | 流媒体直播调度方法、系统和调度服务器 | |
CN101635734A (zh) | 非易失性存储介质上的下载数据存储管理方法及装置 | |
CN103888512A (zh) | 一种资源下载的方法与装置 | |
CN102790784A (zh) | 分布式缓存方法及系统、缓存解析方法及解析系统 | |
CN103227826A (zh) | 一种文件传输方法及装置 | |
CN103051977A (zh) | 一种处理p2p缓存数据的方法 | |
CN102761572B (zh) | 动态调整数据流量的方法及系统 | |
CN102055718A (zh) | 一种在http streaming系统中实现分层请求内容的方法,装置和系统 | |
CN103647756A (zh) | 一种广告播放方法、服务器、客户端及系统 | |
CN111222004B (zh) | 一种音频播放方法、终端设备及车辆 | |
CN111182331B (zh) | 媒体数据切片方法、系统及存储介质 | |
CN103905923A (zh) | 一种内容缓存方法及装置 | |
CN104602035A (zh) | 流媒体点播方法和流媒体点播系统 | |
CN108270807A (zh) | 一种数据传输方法及装置 | |
JP2010191774A (ja) | コンテンツ配信システム、コンテンツ配信装置及びコンテンツ配信方法ならびにそのプログラム、データストレージ装置とその処理方法およびプログラム | |
CN110213643B (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 | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20120215 |