CN111556344A - 一种视频流的下载方法、装置、设备及系统 - Google Patents
一种视频流的下载方法、装置、设备及系统 Download PDFInfo
- Publication number
- CN111556344A CN111556344A CN202010261690.1A CN202010261690A CN111556344A CN 111556344 A CN111556344 A CN 111556344A CN 202010261690 A CN202010261690 A CN 202010261690A CN 111556344 A CN111556344 A CN 111556344A
- Authority
- CN
- China
- Prior art keywords
- stream
- peer
- video sub
- video
- peer node
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/239—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
- H04N21/2393—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/632—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing using a connection between clients on a wide area network, e.g. setting up a peer-to-peer communication via Internet for retrieving video segments from the hard-disk of other client devices
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种视频流的下载方法、装置、设备及系统,其中,所述方法包括:从内容分发网络下载第一对等节点订阅的第一视频子流;从对等网络中订阅有第二视频子流的第二对等节点下载第二视频子流;当确定所述第二视频子流下载失败时,从所述对等网络中选取下载有所述第二视频子流的对等节点,作为第三对等节点;从所述第三对等节点中下载所述第二视频子流;播放所述第一视频子流和所述第二视频子流所组成的视频流。本申请提供的技术方案,能够减少对CDN带宽的占用,节约带宽成本,且使得视频流可以及时下载,并顺畅播放。
Description
技术领域
本发明涉及互联网技术领域,涉及一种视频流的下载方法、装置、设备及系统,特别涉及一种视频流的补片方法。
背景技术
目前,随着互联网技术的发展和普及,针对网络中实时的多媒体传递,流媒体(streamingmedia)技术被提出并得到了广泛的应用,如直播的应用领域。
一般的,可以应用内容分发网络(Content Delivery Network,CDN)技术和对等网络(Peer to Peer,P2P)提供流媒体业务的分发和传送。
在具体的应用中,可以采用对等网络的技术将视频流的整流拆分成几路子流。如,图1为整流划分成4路子流的示意图,参照图1,可以将视频流的整流拆分成几路子流。
在理想情况下,图2为P2P系统的结构示意图,参照图2,对等网络中的一个对等节点(如客户端)只下载其中一路子流,并将下载的子流分享给其他对等节点(如其他客户端),同时向其他对等节点订阅P2P数据,用于获取其它路子流。其中,所有子流可以合并成完整的视频流。
在实际情况下,一个对等节点可能没有P2P数据或P2P数据不完整,此时就需要从CDN处补下载缺少的数据,才能得到完整的视频流。该数据包括其它路子流,本发明将这种行为定义为补片。
但是CDN的核心仍然是基于客户端/服务器的结构,当对等网络中的对等节点频繁出现没有P2P数据或P2P数据不完整的情况,需要频繁从CDN补片,即当CDN处于高峰时期时,增加了CDN的带宽成本,影响视频流的及时下载,使得视频流的播放容易出现卡顿。也就是说,CDN对突发流量的适应性、容错性等方面存在一定的缺陷。
发明内容
本申请的目的在于提供一种视频流的下载方法、装置、设备及系统,能够减少对CDN带宽的占用,节约带宽成本,且使得视频流可以及时下载,并顺畅播放。
为实现上述目的,本申请一方面提供一种视频流的下载方法,所述方法应用于第一对等节点,包括:从内容分发网络下载所述第一对等节点订阅的第一视频子流;从对等网络中订阅有第二视频子流的第二对等节点下载第二视频子流;当确定所述第二视频子流下载失败时,从所述对等网络中选取下载有所述第二视频子流的对等节点,作为第三对等节点;从所述第三对等节点中下载所述第二视频子流;播放所述第一视频子流和所述第二视频子流所组成的视频流。
进一步的,所述从内容分发网络下载所述第一对等节点订阅的第一视频子流,包括:
在当前视频流的播放位置之后,确定具有第一时间区间的第一窗口;
将所述第一对等节点所订阅的视频子流,确定为第一视频子流;
当待下载的第一视频子流位于所述第一窗口时,从所述内容分发网络下载所述第一视频子流;
将所述第一视频子流分享至所述对等网络中除所述第一对等节点之外的其他对等节点。
进一步的,所述从对等网络中订阅有第二视频子流的第二对等节点下载第二视频子流,包括:
在当前视频流的播放位置之后,确定具有第一时间区间的第一窗口;
将对等网络中其他对等节点所订阅的、区别于所述第一视频子流的视频子流,确定为第二视频子流;
当待下载的所述第二视频子流位于所述第一窗口时,从所述对等网络中订阅有所述第二视频子流的第二对等节点下载所述第二视频子流。
进一步的,所述当确定所述第二视频子流下载失败时,从所述对等网络中选取下载有所述第二视频子流的对等节点,作为第三对等节点,包括:
在当前视频流的播放位置之后,确定具有第二时间区间的第二窗口;
确定位于所述第二窗口中的第二视频子流的下载状态;
当所述下载状态为失败时,从所述对等网络中选取下载有所述第二视频子流的对等节点,作为第三对等节点。
进一步的,所述在当前视频流的播放位置之后,确定具有第二时间区间的第二窗口,包括:
确定对等网络中各对等节点与第一对等节点的响应速度;
依据所述响应速度确定第二时间区间,其中,所述第二时间区间的区间范围与所述响应速度成负相关;
在当前视频流的播放位置之后,将所述第二时间区间对应的区间确定为第二窗口。
进一步的,所述从所述对等网络中选取下载有所述第二视频子流的对等节点,作为第三对等节点,包括:
从所述对等网络中选取具有完整的所述第二视频子流的对等节点,组成节点集合;
从所述节点集合中选取出与第一对等节点的响应速度符合预置的速度条件的对等节点,作为第三对等节点。
进一步的,所述从所述对等网络中选取具有完整的所述第二视频子流的对等节点,组成节点集合,包括:
同步对等网络中各对等节点下载各自所订阅视频子流的数据信息;
从所述数据信息中确定各对等节点所下载的所述视频子流的数据区间;
将所述数据区间包括所述第二视频子流的对等节点,确定为候选对等节点;
组成包括所述候选对等节点的节点集合。
进一步的,在所述从所述第三对等节点中下载所述第二视频子流之后,还包括:
当从所述第三对等节点下载所述第二视频子流失败时,从所述内容分发网络下载所述第二视频子流。
进一步的,所述当从所述第三对等节点下载所述第二视频子流失败时,从所述内容分发网络下载所述第二视频子流,包括:
在当前视频流的播放位置之后,确定具有第三时间区间的第三窗口;
确定位于所述第三窗口中的第二视频子流的下载状态;
当所述下载状态为失败时,从所述内容分发网络下载所述第二视频子流。
为实现上述目的,本申请另一方面还提供一种视频流的下载装置,所述视频流的下载装置应用于第一对等节点,包括:
订阅下载模块,用于从内容分发网络下载所述第一对等节点订阅的第一视频子流;
P2P下载模块,用于从对等网络中订阅有第二视频子流的第二对等节点下载第二视频子流;
第三对等节点确定模块,用于当确定所述第二视频子流下载失败时,从所述对等网络中选取下载有所述第二视频子流的对等节点,作为第三对等节点;
补片下载模块,用于从所述第三对等节点中下载所述第二视频子流;
播放模块,用于播放所述第一视频子流和所述第二视频子流所组成的视频流。
为实现上述目的,本申请另一方面还提供一种视频流的下载设备,所述视频流的下载设备包括处理器和存储器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现上述的视频流的下载方法。
为实现上述目的,本申请另一方面还提供一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述的视频流的下载方法。
由上可见,本申请提供的技术方案,可以将原本需要从CDN补片的部分,转换为从对等网络中的其他对等节点进行补片,从而解决CDN对突发流量的适应性、容错性等方面存在的缺陷。具体地,在进行视频流的下载时,一方面,从内容分发网络下载第一对等节点订阅的第一视频子流;另一方面,从对等网络中订阅有第二视频子流的第二对等节点下载第二视频子流;当确定所述第二视频子流下载失败时,则从对等网络中的其他对等节点进行补片,如,从所述对等网络中选取下载有所述第二视频子流的对等节点,作为第三对等节点;从所述第三对等节点中下载所述第二视频子流;后续地,播放所述第一视频子流和所述第二视频子流所组成的视频流。
经过上述的处理方式,将原本需要从CDN补片的部分,转换为从对等网络中的其他对等节点进行补片,可以充分利用对等网络中各对等节点的资源,并减少因从CDN补片所增加的突发流量,所占用的CDN带宽,从而克服CDN对突发流量的适应性、容错性等方面存在的缺陷。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为整流划分成4路子流的示意图;
图2为P2P系统的结构示意图;
图3是本发明实施方式中视频流的下载方法的步骤示意图;
图4是本发明实施方式中视频流的下载方法中各窗口的结构示意图;
图5是本发明实施方式中视频流的下载装置的结构示意图;
图6是本发明实施方式中视频流的下载设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本申请提供一种视频流的下载方法,例如补片,该方法可以由视频流的下载设备来执行。其中,该视频流的下载设备可以是服务器、电脑、移动终端等,作为图2所示的P2P系统中的对等节点。进一步的,视频流的下载设备中可以预先下载有视频播放器等客户端,用于执行视频流的下载方法。
图3是本发明实施方式中视频流的下载方法的步骤示意图。请参阅图3本申请一个实施方式中,上述的视频流的下载方法可以应用于第一对等节点。也就是说,第一对等节点为执行该视频流的下载方法的、对等网络中的一对等节点。该方法可以包括以下步骤。
S110:从内容分发网络下载第一对等节点订阅的第一视频子流。
在本实施例中,内容分发网络(Content Delivery Network,CDN)技术,是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。具体的,内容分发网络的服务器中存储有完整的视频流。如,在视频领域,该视频流可以是存储在服务器中完整的视频文件;又如,在直播领域,该视频流可以是由录像设备实时录制的、并上传到服务器的流媒体文件。
进一步的,内容分发网络的服务器还可以将完整的视频流分成多个视频子流。对等网络(Peer to Peer,P2P)系统中的每个可以向内容分发网络订阅一个或多个视频子流。其中,第一视频子流为第一对等节点向内容分发网络订阅的一个或多个视频子流。
再进一步的,在第一对等节点需要播放内容分发网络中的视频流时,第一对等节点可以根据第一对等节点与第一视频子流的订阅关系,从内容分发网络中下载该第一视频子流。
需要注意的是,在本实施例中,在播放视频流时,采用边播边下载的模式。图4是本发明实施方式中视频流的下载方法中各窗口的结构示意图。具体的,参照图4,视频播放位置,是第一对等节点正在播放的视频流中的一帧。在播放到视频播放位置之时,第一对等节点同时下载视频播放位置之后的视频子流。当然针对不同的领域,所下载的视频子流有略微的不同。如,参照图4,在直播领域中,第一对等节点可以预先下载视频播放位置到直播最新数据之间的所有视频子流;又如,在视频播放领域中,第一对等节点可以预先下载视频播放位置到完整的视频文件最后一帧数据之间的所有视频子流,或者预先下载所有待下载的视频子流。
在一实施例中,可以在当前视频流的播放位置之后,设置至少两个时间区间。该时间区间可以用于切换视频子流的数据来源,和确定切换的时机。具体的,上述各时间区间各自关联设置有待下载的视频子流的数据来源,可以从时间区间关联设置的数据来源中下载进入该时间区间的、待下载的视频子流。该数据来源可以是CDN服务器、P2P节点(即对等节点)等。切换的时机为待下载的视频子流进入该时间区间的时间。在具体的实施例中,该时间区间可以是以窗口的形式进行表示,该窗口可以包括对应于第一时间区间的第一窗口、对应于第二时间区间的第二窗口和对应于第三时间区间的第三窗口等。
其中,第一窗口,又称为P2P窗口,用于将处于第一窗口中的、待下载的视频子流的数据来源为CDN服务器或者P2P节点。例如,在执行步骤S110时,可以在进入第一时间区间时,将数据来源切换为第一时间区间所关联设置的内容分发网络,并从内容分发网络下载所述第一对等节点订阅的第一视频子流。
第二窗口,又称为P2P补片窗口,可以用win进行表示,用于将处于第二窗口的、待下载的视频子流的数据来源确定为P2P节点。
第三窗口,又称为保护窗口,用于将处于第三窗口的、待下载的视频子流的数据来源确定为CDN服务器。
进一步的,第二窗口可以是第一窗口的子窗口,并与第三窗口邻接。
一般的,针对直播领域,客户端为了保证直播过程中不出现卡顿现象,一般把直播时延区间划分成P2P窗口和保护窗口两部分,分别对应于本实施例中的第一窗口和第三窗口。如图4所示,P2P窗口用于接收P2P数据;保护窗口用于从CDN补片,防止因P2P数据不完整而出现卡顿。而在本发明中,从P2P窗口中再划分一个小窗口win用于客户端之间P2P补片,因此直播时延区间可以被划分成三部分:CDN保护窗口、P2P补片窗口、P2P窗口。
需要注意的是,如图4中所示,当视频播放位置随着时间轴前进方向移动时,待下载的视频子流依次经过第一窗口、第二窗口和第三窗口。也就是说,待下载的视频子流的数据来源优先是第一窗口所确定的数据来源,但当第一窗口的数据来源均无法下载完整的视频子流时,则依次从第二窗口和第三窗口所确定的数据来源进行尝试下载。需要说明的是,由于第三窗口所确定的数据来源是CDN服务器,CDN服务器中又具有完整的视频流,所以可以确保从CDN服务器中下载到视频子流。
在一具体的实施例中,在当前视频流的播放位置之后,确定具有第一时间区间的第一窗口;将第一对等节点所订阅的视频子流,确定为第一视频子流;当待下载的第一视频子流位于第一窗口时,第一对等节点可以从内容分发网络下载第一对等节点所订阅的第一视频子流。
一般的,如图4所示,在直播领域,该第一窗口的第一时间区间,可以是以第三窗口的结束点作为开始点,并以直播最新数据所在的时间点为结束点;又如,在视频播放领域中,该第一窗口的第一时间区间,可以是以第三窗口的结束点作为开始点,并以完整的视频文件最后一帧数据所在的时间点为结束点。
进一步的,第一对等节点在下载完该第一视频子流后,还将该第一视频子流分享至P2P系统中除第一对等节点之外的其他对等节点,以供其他对等节点可以从第一对等节点中下载该第一视频子流。
S120:从对等网络中订阅有第二视频子流的第二对等节点下载第二视频子流。
在本实施例中,第二视频子流是其他对等节点订阅的、已下载的、并分享出来的视频子流。为了得到完整的视频流,第一对等节点可以从P2P系统中的其他对等节点中下载第二视频子流。
在一具体的实施例中,可以在当前视频流的播放位置之后,确定具有第一时间区间的第一窗口;将对等网络中其他对等节点所订阅的、区别于所述第一视频子流的视频子流,确定为第二视频子流;当待下载的第二视频子流位于第一窗口时,从对等网络中订阅有第二视频子流的第二对等节点下载第二视频子流。
需要注意的是,步骤S110和步骤S120可以同步执行,一方面,每一对等节点下载各自订阅的第一视频子流,并分享至对等网络中的其他对等节点;另一方面,下载对等网络中的其他对等节点所分享的第二视频子流,以节约视频子流的下载时间。
S130:当确定所述第二视频子流下载失败时,从所述对等网络中选取下载有所述第二视频子流的对等节点,作为第三对等节点。
本实施例中,第三对等节点又称为补片节点,可以用于响应第一对等节点的补片请求。补片指的是第二视频子流下载失败,需要从其他的数据来源下载该第二视频子流,以保证第一对等节点所下载的视频子流,可以组成完整的视频流。
在一具体的实施中,参照图4,可以在当前视频流的播放位置之后,确定具有第二时间区间的第二窗口;确定位于第二窗口中的第二视频子流的下载状态;具体的,当第二视频子流位于第一窗口时,若下载第二视频子流失败,则导致该第二视频子流在第二窗口的下载状态为失败;若下载第二视频子流成功,则在第二窗口时,无需对第二视频子流进行再次下载。进一步的,当下载状态为失败时,可以更改第二视频子流的数据来源为第三对等节点。其中,该第三对等节点可以从对等网络中选取下载有第二视频子流的节点。需要注意的是,在具体的实施例中,部分第二对等节点在第一窗口还未下载有完整的第二视频子流,但在第二窗口时,第二对等节点已下载有完整的第二视频子流,因此,该第三对等节点也可以包括第二对等节点,只要该第二对等节点已下载有完整的第二视频子流即可。
在本实施例中,该第二窗口的第二时间区间,可以是以第三窗口的结束点作为开始点的、在第一窗口中的一段区间。
在一实施例中,可以是通过确定对等网络中各对等节点与第一对等节点的响应速度;依据所述响应速度确定第二时间区间,其中,所述第二时间区间的区间范围与所述响应速度成负相关;在当前视频流的播放位置之后,将所述第二时间区间对应的区间确定为第二窗口。
其中,对等网络中各对等节点与第一对等节点的响应速度可以使用rtt(Round-Trip Time,往返时延)衡量,实现如下:每个对等节点都定时向其他对等节点发起ping请求,ping请求携带本对等节点的当前时间;其他对等节点收到ping请求后,立刻应答pong消息,pong消息携带ping请求携带的时间信息;发起ping请求的对等节点收到pong应答后,解析出ping请求发起时间,其与当前时间的差值即为rtt。也就是说,rtt越大,说明响应时间越长,响应速度越慢。具体的,rtt可以使用如下公式表示:
,其中,time表示当前时间,time_ping表示发起ping请求时的时间,factor表示权重因子,rtt越小表示网络速度越好。
进一步的,在一实施例中,针对直播的领域,可以假设直播时延大小为d,则第二时间区间win,可以通过如下公式进行表示:
其中,各参数的单位为毫秒。
在一实施例中,可以从上述n到m的范围为选取一个数值,作为第二时间区间的区间大小。
在又一实施例中,还可以进一步采用动态表示的方式,确定第二时间区间win的大小,可以用如下公式进行表示:
具体的,初始化时win=m,factor为一个因子(例如敏感系数因子,一般设置为0.1)。idtime用于表示收到的P2P数据(来源其他对等节点的视频子流)的生成时间,localtime为收到P2P数据时的本地时间。作为示例,直播时延大小d可以设置为6000ms,盒子补片窗口的取值范围为[300,m]。
由此,可以确定P2P数据的速度质量越好,win窗口就越大。其中,win可以是在序列号为id的P2P数据块(视频子流)下载状态为成功时进行更新,并在序列号为id+1的P2P数据块(视频子流)下载状态为失败时进行使用。作为示例,直播时延大小d可以设置为6000ms,盒子补片窗口的取值范围为[300,m]。
进一步的,在本实施例中,可以通过从对等网络中选取具有完整的第二视频子流的对等节点,组成节点集合;从节点集合中选取出与第一对等节点的响应速度符合预置的速度条件的对等节点,作为第三对等节点。
具体的,一般的,P2P系统中所有打洞成功的对等节点都可以作为对等节点之间进行视频子流补片请求的对象。本实施例中,为了使得补片尽可能一次性成功,可以向拥有补片数据(如本实施例中,在第二窗口中,下载失败的第二视频子流)且网络速度最优的对等节点请求补片数据。
在一实施例中,可以同步对等网络中各对等节点下载各自所订阅视频子流的数据信息;从该数据信息中确定各对等节点所下载的视频子流的数据区间;将数据区间包括第二视频子流的对等节点,确定为候选对等节点;组成包括所述候选对等节点的节点集合。
其中,数据信息可以依据预设的周期进行同步、或者在每次对等节点更新P2P数据时进行同步。
具体的,可以在打洞成功的对等节点之间定时同步各自拥有的数据信息,该同步的数据信息格式可以是:{min:min_id,max:max_id,continuation:con_id},其中,min_id表示对等节点拥有的最小序列号的数据块,max_id表示对等节点拥有的最大序列号的数据块,con_id表示拥有连续数据块中的最大序列号,即min_id到con_id之间的数据块都拥有。如果补片数据的序列号则该对等节点一定拥有补片数据;如果则表示该对等节点不一定拥有补片数据。优选的,可以考虑一定拥有补片数据的对等节点。若没有这类对等节点,则再考虑不一定有补片数据的对等节点。
将上述依据数据区间所确定的候选对等节点,组成节点集合,之后,可以从该节点集合中选出响应速度最优且rtt<win的对等节点,作为第三对等节点。其中,响应速度最优且rtt<win即为预置的速度条件的一种设置方式。
S140:从所述第三对等节点中下载所述第二视频子流。
本实施例中,第一对等节点向第三对等节点发送补片请求,以从第三对等节点下载在第一窗口下载失败的第二视频子流。由此可见,本实施例中,可以将原本需要从CDN补片的部分,转换为从对等网络中的其他对等节点进行补片,从而解决CDN对突发流量的适应性、容错性等方面存在的缺陷。
当然,需要注意的是,当从第三对等节点下载第二视频子流失败时,可以从内容分发网络下载所述第二视频子流。
具体的,在当前视频流的播放位置之后,确定具有第三时间区间的第三窗口;确定位于第三窗口中的第二视频子流的下载状态;当下载状态为失败时,从内容分发网络下载第二视频子流。需要说明的是,由于第三窗口所确定的数据来源是CDN服务器,CDN服务器中又具有完整的视频流,所以可以确保从CDN服务器中下载到视频子流。
也就是说,按时间轴推进,对等节点在播放视频流时,因缺少视频子流需要补片时,会先进入P2P补片窗口(第二窗口),此时,向选择的最优第三对等节点发起P2P补片请求。若P2P请求不到补片数据(该缺少的视频子流),则在进入CDN保护窗口(第三窗口)后,再从CDN进行补片。通过该第二窗口的设置,可以减少对等节点从CDN进行补片的频率,从而减少对CDN带宽的占用,降低了CDN在同一时间段的访问量,节约了带宽成本,也避免了由于CDN因突发流量而无法及时响应对等节点的下载请求,从而使得视频流可以及时下载,并顺畅播放。
S150:播放所述第一视频子流和所述第二视频子流所组成的视频流。
本实施例中,随着时间轴推进,视频播放位置已经存在预先下载的第一视频子流或第二视频子流,可以顺畅地播放视频流,而不会因为缺少视频子流而出现卡顿的现象。
需要注意的是,也有可能出现第一视频子流下载失败的情况,出现故障的原因可以是第一对等节点在下载第一视频子流的过程中,当第一视频子流在第一窗口时,第一对等节点与CDN服务器的网络联通出现故障。当然,在实际情况中,CDN服务器的视频子流可以由多个对等节点订阅,第一对等节点仍然可以通过上述的步骤S130-步骤S140对第一视频子流进行补片操作。
经过上述的处理方式,将原本需要从CDN补片的部分,转换为从对等网络中的其他对等节点进行补片,可以充分利用对等网络中各对等节点的资源,并减少因从CDN补片所增加的突发流量,所占用的CDN带宽,从而克服CDN对突发流量的适应性、容错性等方面存在的缺陷。此外,本申请提供的技术方案,不仅仅可以从第三对等节点进行补片操作,还对第三对等节点的选取进行了优化,同时还设计了如第一窗口、第二窗口和第三窗口等不同的窗口,可以用于根据上述的窗口来确定对等节点之间发起补片请求的时机,使得在分散内容分发网络带宽压力的同时,还确保了各对等节点在直播或者视频播放过程中可以及时补片,不至于出现卡顿的现象。
图5是本发明实施方式中视频流的下载装置的结构示意图。请参阅图5,本申请还提供一种视频流的下载装置,该装置可以应用于第一对等节点,包括:订阅下载模块510、P2P下载模块520、第三对等节点确定模块530、补片下载模块540和播放模块550。
订阅下载模块510,用于从内容分发网络下载第一对等节点订阅的第一视频子流。
P2P下载模块520,用于从对等网络中订阅有第二视频子流的第二对等节点下载第二视频子流。
第三对等节点确定模块530,用于当确定所述第二视频子流下载失败时,从所述对等网络中选取下载有所述第二视频子流的对等节点,作为第三对等节点。
补片下载模块540,用于从所述第三对等节点中下载所述第二视频子流。
播放模块550,用于播放所述第一视频子流和所述第二视频子流所组成的视频流。
由上可见,本申请提供的技术方案,可以将原本需要从CDN补片的部分,转换为从对等网络中的其他对等节点进行补片,从而解决CDN对突发流量的适应性、容错性等方面存在的缺陷。具体地,在进行视频流的下载时,一方面,从内容分发网络下载第一对等节点订阅的第一视频子流;另一方面,从对等网络中订阅有第二视频子流的第二对等节点下载第二视频子流;当确定所述第二视频子流下载失败时,则从对等网络中的其他对等节点进行补片,如,从所述对等网络中选取下载有所述第二视频子流的对等节点,作为第三对等节点;从所述第三对等节点中下载所述第二视频子流;后续地,播放所述第一视频子流和所述第二视频子流所组成的视频流。
经过上述的处理方式,将原本需要从CDN补片的部分,转换为从对等网络中的其他对等节点进行补片,可以充分利用对等网络中各对等节点的资源,并减少因从CDN补片所增加的突发流量,所占用的CDN带宽,从而克服CDN对突发流量的适应性、容错性等方面存在的缺陷。
在上述技术方案的基础上,该订阅下载模块510包括:
第一窗口确定单元,用于在当前视频流的播放位置之后,确定具有第一时间区间的第一窗口。
第一视频子流确定单元,用于将第一对等节点所订阅的视频子流,确定为第一视频子流。
订阅下载单元,用于当待下载的第一视频子流位于所述第一窗口时,从所述内容分发网络下载所述第一视频子流。
分享单元,用于将所述第一视频子流分享至所述对等网络中除所述第一对等节点之外的其他对等节点。
在上述技术方案的基础上,该P2P下载模块520,包括:
第一窗口确定单元,用于在当前视频流的播放位置之后,确定具有第一时间区间的第一窗口。
第二视频子流确定单元,用于将对等网络中其他对等节点所订阅的、区别于所述第一视频子流的视频子流,确定为第二视频子流。
P2P下载单元,用于当待下载的所述第二视频子流位于所述第一窗口时,从所述对等网络中订阅有所述第二视频子流的第二对等节点下载所述第二视频子流。
在上述技术方案的基础上,所述第三对等节点确定模块530,包括:
第二窗口确定单元,用于在当前视频流的播放位置之后,确定具有第二时间区间的第二窗口。
第一下载状态确定单元,用于确定位于所述第二窗口中的第二视频子流的下载状态。
第三对等节点确定单元,用于当所述下载状态为失败时,从所述对等网络中选取下载有所述第二视频子流的对等节点,作为第三对等节点。
在上述技术方案的基础上,该第二窗口确定单元,包括:
响应速度确定子单元,用于确定对等网络中各对等节点与第一对等节点的响应速度。
第二时间区间确定子单元,用于依据所述响应速度确定第二时间区间,其中,所述第二时间区间的区间范围与所述响应速度成负相关。
第二窗口确定子单元,用于在当前视频流的播放位置之后,将所述第二时间区间对应的区间确定为第二窗口。
在上述技术方案的基础上,该第三对等节点确定单元,包括:
节点集合确定子单元,用于从所述对等网络中选取具有完整的所述第二视频子流的对等节点,组成节点集合。
第三对等节点选取子单元,用于从所述节点集合中选取出与第一对等节点的响应速度符合预置的速度条件的对等节点,作为第三对等节点。
在上述技术方案的基础上,该节点集合确定子单元,具体用于:同步对等网络中各对等节点下载各自所订阅视频子流的数据信息;从所述数据信息中确定各对等节点所下载的所述视频子流的数据区间;将所述数据区间包括所述第二视频子流的对等节点,确定为候选对等节点;组成包括所述候选对等节点的节点集合。
在上述技术方案的基础上,该装置还包括:
CDN补片模块,用于在从所述第三对等节点中下载所述第二视频子流之后,当从所述第三对等节点下载所述第二视频子流失败时,从所述内容分发网络下载所述第二视频子流。
在上述技术方案的基础上,所述CDN补片模块,包括:
第三窗口确定单元,用于在当前视频流的播放位置之后,确定具有第三时间区间的第三窗口。
第二下载状态确定单元,用于确定位于所述第三窗口中的第二视频子流的下载状态;
CDN补片单元,用于当所述下载状态为失败时,从所述内容分发网络下载所述第二视频子流。
上述产品可执行本发明任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。
图6是本发明实施方式中视频流的下载设备的结构示意图。请参阅图6,本申请还提供一种视频流的下载设备,所述视频流的下载设备包括处理器和存储器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,可以实现上述的视频流的下载方法。
本申请还提供一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的视频流的下载方法。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的视频流的下载方法操作,还可以执行本发明任意实施例所提供的视频流的下载方法中的相关操作,且具备相应的功能和有益效果。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是机器人,个人计算机,服务器,或者网络设备等)执行本发明任意实施例所述的视频流的下载方法。
值得注意的是,上述视频流的下载装置中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本说明书中的各个实施方式均采用递进的方式描述,各个实施方式之间相同相似的部分互相参见即可,每个实施方式重点说明的都是与其他实施方式的不同之处。尤其,针对系统和设备的实施方式来说,均可以参照前述方法的实施方式的介绍对照解释。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种视频流的下载方法,其特征在于,所述方法应用于第一对等节点,包括:
从内容分发网络下载所述第一对等节点订阅的第一视频子流;
从对等网络中订阅有第二视频子流的第二对等节点下载第二视频子流;
当确定所述第二视频子流下载失败时,从所述对等网络中选取下载有所述第二视频子流的对等节点,作为第三对等节点;
从所述第三对等节点中下载所述第二视频子流;
播放所述第一视频子流和所述第二视频子流所组成的视频流。
2.根据权利要求1所述的方法,其特征在于,所述从内容分发网络下载所述第一对等节点订阅的第一视频子流,包括:
在当前视频流的播放位置之后,确定具有第一时间区间的第一窗口;
将所述第一对等节点所订阅的视频子流,确定为第一视频子流;
当待下载的第一视频子流位于所述第一窗口时,从所述内容分发网络下载所述第一视频子流;
将所述第一视频子流分享至所述对等网络中除所述第一对等节点之外的其他对等节点。
3.根据权利要求1所述的方法,其特征在于,所述从对等网络中订阅有第二视频子流的第二对等节点下载第二视频子流,包括:
在当前视频流的播放位置之后,确定具有第一时间区间的第一窗口;
将对等网络中其他对等节点所订阅的、区别于所述第一视频子流的视频子流,确定为第二视频子流;
当待下载的所述第二视频子流位于所述第一窗口时,从所述对等网络中订阅有所述第二视频子流的第二对等节点下载所述第二视频子流。
4.根据权利要求1所述的方法,其特征在于,所述当确定所述第二视频子流下载失败时,从所述对等网络中选取下载有所述第二视频子流的对等节点,作为第三对等节点,包括:
在当前视频流的播放位置之后,确定具有第二时间区间的第二窗口;
确定位于所述第二窗口中的第二视频子流的下载状态;
当所述下载状态为失败时,从所述对等网络中选取下载有所述第二视频子流的对等节点,作为第三对等节点。
5.根据权利要求4所述的方法,其特征在于,所述在当前视频流的播放位置之后,确定具有第二时间区间的第二窗口,包括:
确定对等网络中各对等节点与所述第一对等节点的响应速度;
依据所述响应速度确定第二时间区间,其中,所述第二时间区间的区间范围与所述响应速度成负相关;
在当前视频流的播放位置之后,将所述第二时间区间对应的区间确定为第二窗口。
6.根据权利要求4所述的方法,其特征在于,所述从所述对等网络中选取下载有所述第二视频子流的对等节点,作为第三对等节点,包括:
从所述对等网络中选取具有完整的所述第二视频子流的对等节点,组成节点集合;
从所述节点集合中选取出与所述第一对等节点的响应速度符合预置的速度条件的对等节点,作为第三对等节点。
7.根据权利要求6所述的方法,其特征在于,所述从所述对等网络中选取具有完整的所述第二视频子流的对等节点,组成节点集合,包括:
同步对等网络中各对等节点下载各自所订阅视频子流的数据信息;
从所述数据信息中确定各对等节点所下载的所述视频子流的数据区间;
将所述数据区间包括所述第二视频子流的对等节点,确定为候选对等节点;
组成包括所述候选对等节点的节点集合。
8.根据权利要求1-7任一所述的方法,其特征在于,在所述从所述第三对等节点中下载所述第二视频子流之后,还包括:
当从所述第三对等节点下载所述第二视频子流失败时,从所述内容分发网络下载所述第二视频子流。
9.根据权利要求8所述的方法,其特征在于,所述当从所述第三对等节点下载所述第二视频子流失败时,从所述内容分发网络下载所述第二视频子流,包括:
在当前视频流的播放位置之后,确定具有第三时间区间的第三窗口;
确定位于所述第三窗口中的第二视频子流的下载状态;
当所述下载状态为失败时,从所述内容分发网络下载所述第二视频子流。
10.一种视频流的下载装置,其特征在于,所述装置应用于第一对等节点,包括:
订阅下载模块,用于从内容分发网络下载所述第一对等节点订阅的第一视频子流;
P2P下载模块,用于从对等网络中订阅有第二视频子流的第二对等节点下载第二视频子流;
第三对等节点确定模块,用于当确定所述第二视频子流下载失败时,从所述对等网络中选取下载有所述第二视频子流的对等节点,作为第三对等节点;
补片下载模块,用于从所述第三对等节点中下载所述第二视频子流;
播放模块,用于播放所述第一视频子流和所述第二视频子流所组成的视频流。
11.一种视频流的下载设备,其特征在于,所述视频流的下载设备包括处理器和存储器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现如权利要求1至9中任一所述的方法。
12.一种存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至9任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010261690.1A CN111556344A (zh) | 2020-04-04 | 2020-04-04 | 一种视频流的下载方法、装置、设备及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010261690.1A CN111556344A (zh) | 2020-04-04 | 2020-04-04 | 一种视频流的下载方法、装置、设备及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111556344A true CN111556344A (zh) | 2020-08-18 |
Family
ID=72004188
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010261690.1A Pending CN111556344A (zh) | 2020-04-04 | 2020-04-04 | 一种视频流的下载方法、装置、设备及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111556344A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112040332A (zh) * | 2020-08-19 | 2020-12-04 | 天津智融创新科技发展有限公司 | 平滑cdn带宽的视频内容的获取方法和系统 |
CN114513519A (zh) * | 2022-04-19 | 2022-05-17 | 北京邮电大学 | 一种视频对等流交换方法、系统及装置 |
WO2022252083A1 (zh) * | 2021-05-31 | 2022-12-08 | 华为技术有限公司 | 一种数据传输方法、装置、电子设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7937362B1 (en) * | 2006-04-28 | 2011-05-03 | Roxbeam Media Network Corporation | System and method for facilitating a credit system in a peer-to-peer content delivery network |
CN102510395A (zh) * | 2011-10-21 | 2012-06-20 | 合一网络技术(北京)有限公司 | 一种基于P2SP的flash视频调度方法 |
CN104506929A (zh) * | 2014-12-26 | 2015-04-08 | 电子科技大学 | P2p系统混合数据调度方法 |
CN104581421A (zh) * | 2014-12-30 | 2015-04-29 | 新浪网技术(中国)有限公司 | 一种点对点流媒体下载方法及节点终端装置 |
CN105792021A (zh) * | 2014-12-26 | 2016-07-20 | 乐视网信息技术(北京)股份有限公司 | 一种视频流的传输方法及装置 |
CN105898388A (zh) * | 2016-04-05 | 2016-08-24 | 合网络技术(北京)有限公司 | 一种节点下载调度方法和装置 |
CN109450815A (zh) * | 2018-09-28 | 2019-03-08 | 桂林电子科技大学 | 一种基于效用值的对等网络流媒体系统数据调度算法 |
CN109617959A (zh) * | 2018-12-07 | 2019-04-12 | 深圳市网心科技有限公司 | 一种数据加载方法、装置、系统以及存储介质 |
-
2020
- 2020-04-04 CN CN202010261690.1A patent/CN111556344A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7937362B1 (en) * | 2006-04-28 | 2011-05-03 | Roxbeam Media Network Corporation | System and method for facilitating a credit system in a peer-to-peer content delivery network |
CN102510395A (zh) * | 2011-10-21 | 2012-06-20 | 合一网络技术(北京)有限公司 | 一种基于P2SP的flash视频调度方法 |
CN104506929A (zh) * | 2014-12-26 | 2015-04-08 | 电子科技大学 | P2p系统混合数据调度方法 |
CN105792021A (zh) * | 2014-12-26 | 2016-07-20 | 乐视网信息技术(北京)股份有限公司 | 一种视频流的传输方法及装置 |
CN104581421A (zh) * | 2014-12-30 | 2015-04-29 | 新浪网技术(中国)有限公司 | 一种点对点流媒体下载方法及节点终端装置 |
CN105898388A (zh) * | 2016-04-05 | 2016-08-24 | 合网络技术(北京)有限公司 | 一种节点下载调度方法和装置 |
CN109450815A (zh) * | 2018-09-28 | 2019-03-08 | 桂林电子科技大学 | 一种基于效用值的对等网络流媒体系统数据调度算法 |
CN109617959A (zh) * | 2018-12-07 | 2019-04-12 | 深圳市网心科技有限公司 | 一种数据加载方法、装置、系统以及存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112040332A (zh) * | 2020-08-19 | 2020-12-04 | 天津智融创新科技发展有限公司 | 平滑cdn带宽的视频内容的获取方法和系统 |
WO2022252083A1 (zh) * | 2021-05-31 | 2022-12-08 | 华为技术有限公司 | 一种数据传输方法、装置、电子设备及存储介质 |
CN114513519A (zh) * | 2022-04-19 | 2022-05-17 | 北京邮电大学 | 一种视频对等流交换方法、系统及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10939148B2 (en) | Playback synchronization among adaptive bitrate streaming clients | |
EP2171600B1 (en) | Assisted peer-to-peer media streaming | |
CN111556344A (zh) | 一种视频流的下载方法、装置、设备及系统 | |
EP2053859B1 (en) | A method and apparatus for reducing delay of media play | |
EP1217803B1 (en) | Streaming of data in a peer-to-peer architecture | |
US7975282B2 (en) | Distributed cache algorithms and system for time-shifted, and live, peer-to-peer video streaming | |
CN108307198B (zh) | 流服务节点调度方法、装置及调度节点 | |
RU2647654C2 (ru) | Система и способ доставки аудиовизуального контента в клиентское устройство | |
CN104954866B (zh) | 一种流媒体数据直播中播放点动态控制方法 | |
US20080052748A1 (en) | Channel merging method for vod system | |
US11863841B2 (en) | Video playing control method and system | |
CN105792021A (zh) | 一种视频流的传输方法及装置 | |
CN109561137B (zh) | 建立p2p网络的方法、装置、终端设备及介质 | |
CN105791987B (zh) | 媒体数据播放的方法及终端 | |
US20240106891A1 (en) | Peer-to-peer network scheduling method and system | |
CN113285947B (zh) | 一种hls直播和组播直播接续的方法和装置 | |
Goh et al. | A comparative study of tree-based and mesh-based overlay p2p media streaming | |
CN112243136B (zh) | 内容播放方法、视频存储方法和设备 | |
CN113676739B (zh) | 一种视频播放方法、装置、设备及存储介质 | |
CN109379127B (zh) | 一种数据处理方法及装置 | |
Ha et al. | Topology and architecture design for peer to peer video live streaming system on mobile broadcasting social media | |
CN109688201B (zh) | 更换资源数据获取对象的方法、装置、设备及存储介质 | |
Nemati et al. | A multi-source streaming model for mobile peer-to-peer (P2P) overlay networks | |
Furini | On ameliorating the perceived playout quality in chunk-driven p2p media streaming systems | |
Jiang et al. | Nsync: Network synchronization for peer-to-peer streaming overlay construction |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200818 |
|
RJ01 | Rejection of invention patent application after publication |