个人服务器的文件传输方法及远程点播系统
文献发布时间:2024-01-17 01:27:33
技术领域
本申请涉及流媒体点播技术领域,特别涉及个人服务器的文件传输方法及远程点播系统。
背景技术
在宽带网络时代,NAS(Network Attached Storage,网络附属存储)设备广泛应用,并在较多场合中提供音视频流点播服务。传统的NAS设备的远程点播方案是通过广域网中的中转服务器从NAS设备下载原始视频数据,然后由中转服务器将原始视频数据返回给播放器进行播放。然而,播放原始视频数据,受限于NAS设备上行带宽/播放器解码能力,播放会存在不流畅、易卡顿的问题。另外,由于中转服务器需要实时接收NAS设备返回的原始视频数据,再推送给播放器,因此当有大量的数据需要中转时,会导致带宽成本过高,数据请求耗时高,影响播放的实时性与稳定性。
因此,如何提升播放的实时性与稳定性已成为本领域技术人员亟待解决的技术问题。
发明内容
本申请的目的是提供一种个人服务器的文件传输方法,能够提升播放的实时性与稳定性。本申请的另一个目的是提供另一种个人服务器的文件传输方法与远程点播系统,均具有上述技术效果。
为解决上述技术问题,本申请提供了一种个人服务器的文件传输方法,应用于中转服务器,包括:
接收客户端的文件请求并查询缓存;
若所述文件请求命中云服务器的缓存,则向所述客户端返回所述云服务器的播放链接,以使所述客户端根据所述播放链接播放所述云服务器中缓存的所述文件请求对应的数据;
若所述文件请求未命中所述云服务器的缓存,则从个人服务器请求所述文件请求对应的数据,并向所述客户端返回所述文件请求对应的数据。
可选的,还包括:
当所述中转服务器的内存中的数据量超出预设阈值时,将多余的数据上传至所述云服务器,以便在需要加载所述多余的数据时,从所述云服务器下载所述多余的数据至所述中转服务器的内存。
可选的,所述云服务器缓存的数据为所述个人服务器上传的热数据。
可选的,当所述云服务器缓存的所述热数据的热度降至预设值时,所述云服务器删除热度降至所述预设值的所述热数据。
为解决上述技术问题,本申请还提供了一种个人服务器的文件传输方法,应用于云服务器,包括:
接收并缓存个人服务器上传的数据;
当客户端根据所述云服务器的播放链接访问所述云服务器时,向所述客户端返回所述客户端的文件请求对应的数据;所述播放链接为中转服务器查询到所述文件请求命中所述云服务器的缓存时,所述中转服务器返回给所述客户端的;当所述文件请求未命中所述云服务器的缓存时,所述中转服务器从个人服务器请求所述文件请求对应的数据,并向所述客户端返回所述文件请求对应的数据。
可选的,所述接收并缓存个人服务器上传的数据包括:
接收并缓存所述个人服务器上传的热数据。
可选的,还包括:
分析缓存的所述热数据的热度,并将热度降至预设值的所述热数据删除。
可选的,还包括:
接收并缓存所述中转服务器在所述中转服务器的内存中的数据量超出预设阈值时上传的多余的数据。
为解决上述技术问题,本申请还提供了一种运程点播系统,包括:
中转服务器、云服务器以及个人服务器;
所述个人服务器,用于上传数据至所述云服务器,以及当接收所述中转服务器的请求时向所述中转服务器返回数据;
所述云服务器,用于接收并缓存所述个人服务器上传的数据;
所述中转服务器,用于接收客户端的文件请求并查询缓存;若所述文件请求命中所述云服务器的缓存,则向所述客户端返回所述云服务器的播放链接,以使所述客户端根据所述播放链接播放所述云服务器缓存的所述文件请求对应的数据;若所述文件请求未命中所述云服务器的缓存,则从所述个人服务器请求所述文件请求对应的数据,并向所述客户端返回所述文件请求对应的数据。
可选的,所述个人服务器具体用于:上传热数据至所述云服务器。
可选的,所述云服务器还用于:
分析缓存的所述热数据的热度,并将热度降至预设值的热数据删除。
可选的,所述中转服务器还用于:
当所述中转服务器的内存中的数据量超出预设阈值时,将多余的数据上传至所述云服务器,以便在需要加载所述多余的数据时,从所述云服务器下载所述多余的数据至所述中转服务器的内存。
本申请所提供的应用于中转服务器的个人服务器的文件传输方法,包括:接收客户端的文件请求并查询缓存;若所述文件请求命中云服务器的缓存,则向所述客户端返回所述云服务器的播放链接,以使所述客户端根据所述播放链接播放所述云服务器中缓存的所述文件请求对应的数据;若所述文件请求未命中所述云服务器的缓存,则从个人服务器请求所述文件请求对应的数据,并向所述客户端返回所述文件请求对应的数据。
可见,本申请所提供的应用于中转服务器的个人服务器的文件传输方法,结合了私有云即个人服务器与公有云即云服务器,云服务器提前缓存一些数据,当客户端请求数据时,对于命中云服务器的请求,可以快速从云服务器获取到数据,而不需要等待个人服务器上传数据到中转服务器,从而可以有效缩短数据请求耗时,提升播放实时性与稳定性。
本申请所提供的应用于云服务器的个人服务器的文件传输方法以及远程点播系统均具有上述技术效果。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例所提供的一种个人服务器的文件传输方法的流程示意图;
图2为本申请实施例所提供的另一种个人服务器的文件传输方法的示意图;
图3为本申请实施例所提供的一种远程点播系统的示意图。
具体实施方式
本申请的核心是提供一种个人服务器的文件传输方法,能够提升播放的实时性与稳定性。本申请的另一个核心是提供另一种个人服务器的文件传输方法与远程点播系统,均具有上述技术效果。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图1,图1为本申请实施例所提供的一种个人服务器的文件传输方法的流程示意图,参考图1所示,该方法应用于中转服务器,包括:
S101:接收客户端的文件请求并查询缓存;
S102:若所述文件请求命中云服务器的缓存,则向所述客户端返回所述云服务器的播放链接,以使所述客户端根据所述播放链接播放所述云服务器中缓存的所述文件请求对应的数据;
当客户端请求播放数据时,客户端向中转服务器上传文件请求。文件请求可以携带GCID。GCID是文件的全局唯一标识,用于表示文件的唯一性。原始文件的GCID可由个人服务器生成。
中转服务器接收客户端的文件请求,并根据客户端的文件请求携带的GCID查询缓存。如果客户端的文件请求命中云服务器的缓存,即云服务器缓存有客户端请求的数据,则中转服务器直接向客户端返回云服务器的播放链接。客户端根据云服务器的播放链接播放所请求的数据。
云服务器缓存的数据由个人服务器上传到云服务器。个人服务器可以在空闲时向云服务器上传数据;或者,可以在客户端的文件请求未命中云服务器的缓存时,向云服务器上传数据。具体而言,个人服务器在建立资源索引阶段,定时监听磁盘文件的变化。当个人服务器监听到磁盘文件有变化时,将文件加入到上传队列,等待个人服务器空闲时上传文件到云服务器。在文件未缓存到云服务器,而提前有该文件的播放请求时,个人服务器上传该文件到云服务器。
S103:若所述文件请求未命中所述云服务器的缓存,则从个人服务器请求所述文件请求对应的数据,并向所述客户端返回所述文件请求对应的数据。
如果客户端的文件请求未命中云服务器,即云服务器没有缓存客户端请求的数据,则中转服务器向个人服务器请求客户端所请求的数据,并将个人服务器返回的数据返回给客户端进行播放。
中转服务器向个人服务器请求客户端所请求的数据,并将个人服务器返回的数据返回给客户端的过程可以如下:
在客户端的文件请求未命中云服务器的缓存时,中转服务器保持住该文件请求,同时启动多线程,通知个人服务器上传客户端请求的原始文件。中转服务器对原始文件切片,并将切换数据上传给中转服务器。
其中,中转服务器可通过MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议)协议通知个人服务器上传客户端请求的原始文件。
另外,个人服务器可通过WS协议向中转服务器上传原始文件的切片数据。WS全称为Web Socket,是建立在单个TCP(Transmission Control Protocol,传输控制协议)连接上的全双工的网络通信协议。
中转服务器接收个人服务器上传的切片数据,并存入开辟好的内存中。同时,中转服务器向Http发送线程发送通知,告知Http发送线程有数据更新。进而,Http发送线程从内存中取切片数据并通过Http Chunck回复切片数据给客户端。Http Chunck即分块传输编码(Chunked transfer encoding),是超文本传输协议(HTTP)中的一种数据传输机制,允许HTTP由应用服务器发送给客户端应用的数据可以分成多个部分,可以更好的支持动态内容格式。
在上述实施例的基础上,作为一种具体的实施方式,还包括:
当所述中转服务器的内存中的数据量超出预设阈值时,将多余的数据上传至所述云服务器,以便在需要加载所述多余的数据时,从所述云服务器下载所述多余的数据至所述中转服务器的内存。
客户端的网络环境复杂,传输可靠性无法保障。并且当客户端缓冲数据足够时,会暂停下载数据。如此会导致中转服务器内存中的切片数据无法及时推送给客户端。当中转服务器无法及时将内存中的切片数据推送给客户端时,如果中转服务器内存中的数据量超出预设阈值,此时中转服务器可对多余的切片数据即超出预设阈值的部分按照切片数据ID做索引,将切片数据上传到云服务器进行缓存。当客户端需要播放这些缓存在云服务器的切片数据时,中转服务器直接从云服务器下载之前上传的多余的切片数据到内存中,并推送给客户端。
中转服务器将多余的数据上传云服务器,借助云服务器的数据缓存能力,能够让个人服务器源源不断向中转服务器上传数据,并缓存到云服务器上。当客户端需要播放多余的数据时,能够从云服务器快速获取,从而能够极大的加快播放速度,提升用户播放体验。
为了提升命中云服务器缓存的概率,降低数据请求耗时,提升播放实时性,在一些实施例中,所述云服务器缓存的数据为所述个人服务器上传的热数据。
具体而言,个人服务器可以分析原始文件的访问频率,选择其中访问频率高的数据即热数据上传到云服务器。由于云服务器缓存的是热数据,因此客户端的文件请求命中云服务器的缓存的概率会大大提升,从而可以降低数据请求耗时,提升播放实时性。
为了节省云服务器的存储成本,在一些实施例中,当所述云服务器缓存的热数据的热度降至预设值时,所述云服务器删除热度降至预设值的所述热数据。云服务器删除热度降至预设值的热数据后,更新数据索引。
例如,如果云服务器缓存的某些热数据的热度降至为0,则云服务器将这些热数据删除,并在删除这些热数据后,更新数据索引。
综上所述,本申请所提供的应用于中转服务器的个人服务器的文件传输方法,结合了私有云即个人服务器与公有云即云服务器,云服务器提前缓存一些数据,当客户端请求数据时,对于命中云服务器的请求,可以快速从云服务器获取到数据,而不需要等待个人服务器上传数据到中转服务器,从而可以有效缩短数据请求耗时,提升播放实时性与稳定性。
请参考图2,图2为本申请实施例所提供的另一种个人服务器的文件传输方法的流程示意图,参考图2所示,该方法应用于云服务器,包括:
S201:接收并缓存个人服务器上传的数据;
S202:当客户端根据所述云服务器的播放链接访问所述云服务器时,向所述客户端返回所述客户端的文件请求对应的数据;所述播放链接为中转服务器查询到所述文件请求命中所述云服务器的缓存时,所述中转服务器返回给所述客户端的;当所述文件请求未命中所述云服务器的缓存时,所述中转服务器从个人服务器请求所述文件请求对应的数据,并向所述客户端返回所述文件请求对应的数据。
个人服务器可以在空闲时向云服务器上传数据;或者,可以在客户端的文件请求未命中云服务器的缓存时,向云服务器上传数据。云服务器接收并缓存个人服务器上传的数据。当客户端请求播放数据时,客户端向中转服务器上传文件请求。中转服务器接收客户端的文件请求,并根据客户端的文件请求查询缓存。如果客户端的文件请求命中云服务器的缓存,则中转服务器直接向客户端返回云服务器的播放链接。客户端根据云服务器的播放链接访问云服务器,播放文件请求对应的数据。如果客户端的文件请求未命中云服务器,则中转服务器向个人服务器请求客户端所请求的数据,并将个人服务器返回的数据返回给客户端进行播放。
其中,为了提升命中云服务器缓存的概率,降低数据请求耗时,提升播放实时性,在一些实施例中,所述接收并缓存个人服务器上传的数据包括:接收并缓存所述个人服务器上传的热数据。
具体而言,个人服务器可以分析原始文件的访问频率,选择其中访问频率高的数据即热数据上传到云服务器。由于云服务器缓存的是热数据,因此客户端的文件请求命中云服务器的缓存的概率会大大提升,从而可以降低数据请求耗时,提升播放实时性。
另外,为了节省云服务器的存储成本,在一些实施例中,还包括:
分析缓存的所述热数据的热度,并将热度降至预设值的所述热数据删除。云服务器删除热度降至预设值的热数据后,更新数据索引。
例如,如果云服务器缓存的某些热数据的热度降至为0,则云服务器将这些热数据删除,并在删除这些热数据后,更新数据索引。
进一步,在一些实施例中,还包括:
接收并缓存所述中转服务器在所述中转服务器的内存中的数据量超出预设阈值时上传的多余的数据。
具体而言,如果中转服务器内存中的数据量超出预设阈值,此时中转服务器可对多余的切片数据即超出预设阈值的部分按照切片数据ID做索引,将切片数据上传到云服务器进行缓存。当客户端需要播放这些缓存在云服务器的切片数据时,中转服务器直接从云服务器下载之前上传的多余的切片数据到内存中,并推送给客户端。
中转服务器将多余的数据上传云服务器,借助云服务器的数据缓存能力,能够让个人服务器源源不断向中转服务器上传数据,并缓存到云服务器上。当客户端需要播放多余的数据时,能够从云服务器快速获取,从而能够极大的加快播放速度,提升用户播放体验。
本申请所提供的应用于云服务器的个人服务器的文件传输方法,结合了私有云即个人服务器与公有云即云服务器,云服务器提前缓存一些数据,当客户端请求数据时,对于命中云服务器的请求,可以快速从云服务器获取到数据,而不需要等待个人服务器上传数据到中转服务器,从而可以有效缩短数据请求耗时,提升播放实时性与稳定性。
请参考图3,图3为本申请实施例所提供的一种远程点播系统的示意图,参考图3所示,该系统包括:
中转服务器、云服务器以及个人服务器;
所述个人服务器,用于上传数据至所述云服务器,以及当接收所述中转服务器的请求时向所述中转服务器返回数据;
所述云服务器,用于接收并缓存所述个人服务器上传的数据;
所述中转服务器,用于接收客户端的文件请求并查询缓存;若所述文件请求命中所述云服务器的缓存,则向所述客户端返回所述云服务器的播放链接,以使所述客户端根据所述播放链接播放所述云服务器缓存的所述文件请求对应的数据;若所述文件请求未命中所述云服务器的缓存,则从所述个人服务器请求所述文件请求对应的数据,并向所述客户端返回所述文件请求对应的数据。
当客户端请求播放数据时,客户端向中转服务器上传文件请求。中转服务器接收客户端的文件请求,并根据客户端的文件请求查询缓存。如果客户端的文件请求命中云服务器的缓存,则中转服务器直接向客户端返回云服务器的播放链接。客户端根据云服务器的播放链接访问云服务器播放文件所请求的数据。
如果客户端的文件请求未命中云服务器,则中转服务器向个人服务器请求客户端所请求的数据,并将个人服务器返回的数据返回给客户端进行播放。
其中,个人服务器可以在空闲时向云服务器上传数据;或者,可以在客户端的文件请求未命中云服务器的缓存时,向云服务器上传数据。
另外,中转服务器向个人服务器请求客户端所请求的数据,并将个人服务器返回的数据返回给客户端的过程可以如下:
在客户端的文件请求未命中云服务器的缓存时,中转服务器保持住该文件请求,同时启动多线程,通知个人服务器上传客户端请求的原始文件。中转服务器对原始文件切片,并将切换数据上传给中转服务器。
中转服务器接收个人服务器上传的切片数据,并存入开辟好的内存中。同时,中转服务器向Http发送线程发送通知,告知Http发送线程有数据更新。进而,Http发送线程从内存中取切片数据并通过Http Chunck回复切片数据给客户端。
为了提升命中云服务器缓存的概率,降低数据请求耗时,提升播放实时性,在一些实施例中,所述个人服务器具体用于:上传热数据至所述云服务器。
个人服务器可以分析原始文件的访问频率,选择其中访问频率高的数据即热数据上传到云服务器。由于云服务器缓存的是热数据,因此客户端的文件请求命中云服务器的缓存的概率会大大提升,从而可以降低数据请求耗时,提升播放实时性。
为了节省云服务器的存储成本,在一些实施例中,所述云服务器还用于:
分析缓存的所述热数据的热度,并将热度降至预设值的热数据删除。
当所述云服务器缓存的热数据的热度降至预设值时,所述云服务器删除热度降至预设值的所述热数据,并在删除热度降至预设值的热数据后,更新数据索引。
为了加快播放速度,提升用户播放体验,在一些实施例中,所述中转服务器还用于:
当所述中转服务器的内存中的数据量超出预设阈值时,将多余的数据上传至所述云服务器,以便在需要加载所述多余的数据时,从所述云服务器下载所述多余的数据至所述中转服务器的内存。
当中转服务器无法及时将内存中的切片数据推送给客户端时,如果中转服务器内存中的数据量超出预设阈值,此时中转服务器可对多余的切片数据即超出预设阈值的部分按照切片数据ID做索引,将切片数据上传到云服务器进行缓存。当客户端需要播放这些缓存在云服务器的切片数据时,中转服务器直接从云服务器下载之前上传的多余的切片数据到内存中,并推送给客户端。
中转服务器将多余的数据上传云服务器,借助云服务器的数据缓存能力,能够让个人服务器源源不断向中转服务器上传数据,并缓存到云服务器上。当客户端需要播放多余的数据时,能够从云服务器快速获取,从而能够极大的加快播放速度,提升用户播放体验。
本申请所提供的远程点播系统,结合了私有云即个人服务器与公有云即云服务器,云服务器提前缓存一些数据,当客户端请求数据时,对于命中云服务器的请求,可以快速从云服务器获取到数据,而不需要等待个人服务器上传数据到中转服务器,从而可以有效缩短数据请求耗时,提升播放实时性与稳定性。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的远程点播系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的个人服务器的文件传输方法及远程点播系统进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围。
- 服务器的远程管理系统及其远程管理方法
- 远程点播系统、网络机顶盒及远程点播方法
- 一种点播系统、点播方法及点播服务器