CN111556324B - 一种视频直播的方法、装置、设备及系统 - Google Patents
一种视频直播的方法、装置、设备及系统 Download PDFInfo
- Publication number
- CN111556324B CN111556324B CN202010263857.8A CN202010263857A CN111556324B CN 111556324 B CN111556324 B CN 111556324B CN 202010263857 A CN202010263857 A CN 202010263857A CN 111556324 B CN111556324 B CN 111556324B
- Authority
- CN
- China
- Prior art keywords
- client
- instance
- cache data
- target cache
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 230000004044 response Effects 0.000 claims description 27
- 230000005540 biological transmission Effects 0.000 claims description 11
- 230000000977 initiatory effect Effects 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 5
- 230000010354 integration Effects 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 239000000872 buffer Substances 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
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/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2181—Source of audio or video content, e.g. local disk arrays comprising remotely distributed storage units, e.g. when movies are replicated over a plurality of video servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- 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/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4331—Caching operations, e.g. of an advertisement for later insertion during playback
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/437—Interfacing the upstream path of the transmission network, e.g. for transmitting client requests to a VOD server
-
- 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)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Information Transfer Between Computers (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明公开了一种视频直播的方法、装置、设备及系统,其中,方法包括:确定目标缓存数据的数据来源,目标缓存数据为第一客户端需要缓存的直播子流;当数据来源为第二客户端时,向第二客户端请求目标缓存数据,第二客户端与第一客户端之间直接进行数据传递;当向第二客户端请求目标缓存数据失败,则通过补片操作获取目标缓存数据;整合目标缓存数据与历史缓存数据,以使第一客户进行视频直播,历史缓存数据为第一客户端已经缓存的直播子流。本申请提供的技术方案,能够分散内容分发网络的带宽压力。
Description
技术领域
本发明涉及互联网技术领域,特别涉及一种视频直播的方法、装置、设备及系统。
背景技术
随着互联网技术的发展,越来越多的视频采用网络分发的形式,并大有取代传统电视直播的趋势。尤其是主播客户端上传视频,在较小的时间差内,使观众客户端进行观看的视频直播,越来越受到用户的青睐。
目前的视频直播系统主要采用的是P2P(Point to point,点对点)技术与CDN(Content Delivery Network,内容分发网络)技术的结合。P2P技术与CDN技术的结合构成的框架如图1所示。将直播视频流切分为如图2所示的多路直播子流。
理想情况,一个客户端只下载其中一路子流,并将下载的子流分享给其他客户端,同时向其他客户端订阅P2P数据,用于获取其它路子流,所有子流合并成完整的直播流。即视频数据的传输不再通过服务器,而是网络用户之间直接传递数据。
但在实际情况中,仅通过P2P方式,客户端可能无法获取数据或无法获取完整数据,此时就需要从内容分发网络处获取需要的数据。即需要获取其它路子流数据(补片),才能得到完整的直播流数据。只要发生补片行为,客户端都需要从内容分发网络中下载数据,造成对内容分发网络带宽的占用。由于内容分发网络技术本身可能存在对视频编码格式支持不足、时延太大等问题,当大量客户端需要进行补片时,对内容分发网络带宽的占用将极大。如果内容分发网络响应不及时,则容易造成客户端获取直播子流不及时,造成客户端播放视频时出现卡顿的情况。
发明内容
本申请的目的在于提供一种视频直播的方法、装置、设备及系统,能够减少客户端直接向内容分发网络请求数据的次数,以节约内容分发网络的带宽占用。
为实现上述目的,本申请一方面提供一种视频直播的方法,所述方法包括:确定目标缓存数据的数据来源,所述目标缓存数据为第一客户端需要缓存的直播子流;当所述数据来源为第二客户端时,向所述第二客户端请求所述目标缓存数据,所述第二客户端与所述第一客户端之间直接进行数据传递;当向所述第二客户端请求所述目标缓存数据失败,则通过补片操作获取所述目标缓存数据;整合所述目标缓存数据与历史缓存数据,以使所述第一客户进行视频直播,所述历史缓存数据为所述第一客户端已经缓存的直播子流。
为实现上述目的,本申请一方面提供一种视频直播的装置,所述装置包括:数据来源确定模块,用于确定目标缓存数据的数据来源,所述目标缓存数据为第一客户端需要缓存的直播子流;客户端请求模块,用于当所述数据来源为第二客户端时,向所述第二客户端请求所述目标缓存数据,所述第二客户端与所述第一客户端之间直接进行数据传递;补片操作模块,用于当向所述第二客户端请求所述目标缓存数据失败,则通过补片操作获取所述目标缓存数据;数据整合模块,用于整合所述目标缓存数据与历史缓存数据,以使所述第一客户进行视频直播,所述历史缓存数据为所述第一客户端已经缓存的直播子流。
为实现上述目的,本申请另一方面还提供视频直播的设备,所述视频直播的设备包括处理器和存储器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现上述的视频直播的方法。
为实现上述目的,本申请另一方面还提供一种视频直播的系统,其中,与内容分发网络连接的盒子中可以运行有两个或两个以上的实例,每个所述实例从内容分发网络中下载一路直播子流,所述系统包括:第一客户端订阅第一实例;确定第一客户端当前需要缓存的直播子流的数据来源,将所述第一客户端当前需要缓存的直播子流作为目标缓存数据;当所述数据来源为第二客户端时,向所述第二客户端请求所述目标缓存数据,所述第二客户端与所述第一客户端之间直接传递数据;当所述第一客户端向所述第二客户端请求所述目标缓存数据失败,通过补片获取所述目标缓存数据;整合所述目标缓存数据与历史缓存数据,以使所述第一客户进行视频直播,所述历史缓存数据为所述第一客户端已经缓存的直播子流。
由上可见,本申请提供的技术方案,可以将内容分发网络、盒子(包括多个实例)和P2P技术相结合,从而通过结合后的系统解决彼此的缺陷。具体地,与内容分发网络连接的盒子中可以运行有两个或两个以上的实例,每个实例从内容分发网络中下载一路直播子流。当客户端需要缓存一段直播子流时,确定所述直播子流的来源,当所述直播子流的来源为其他客户端(P2P方式)时,向其他客户端请求所述数据。当无法从其他客户端获得该直播子流时,客户端会向其订阅的盒子中的第一实例发起补片请求。第一实例与其他实例可以通信与数据共享,以获取所述客户端的补片请求需要的直播子流。当所述第一实例从其他实例中也无法获得符合补片请求的直播子流时,所述第一实例向所述客户端发回应答失败信息。客户端接收到所述应答失败信息后,向内容分发网络发起补片请求。从而使得客户端可以获得多段直播子流,并将所述直播子流拼接为一段完整的直播视频流,以使客户可以进行视频直播。
经过上述的处理方式,当一个客户端无法从其他客户端获得直播子流时,不会直接向内容分发网络发起补片请求,而是会先向其订阅的第一实例发起补片请求,所述第一实例会向盒子里的其他实例请求所述直播子流。只有当其他实例也无法提供所述直播子流时,客户端才会向内容分发网络发起补片请求。这样的方式分散了接收补片请求的主体,分散了内容分发网络带宽的压力。
此外,本申请提供的技术方案,不仅仅对响应补片请求的主体进行了优化,同时针对每一个客户端还设计了不同的窗口,根据窗口来选择向其他客户端、实例或者内容分发网络发起补片请求。在分散内容分发网络带宽压力的同时,还确保了客户端在直播过程中不会出现卡顿的现象。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术中P2P技术与CDN技术的结合构成的框架的示意图;
图2是现有技术中对直播视频流进行切分的示意图;
图3是本发明实施方式中视频直播的系统的示意图;
图4是本发明实施方式中视频直播的方法的步骤示意图;
图5是本发明实施方式中第一客户端通过补片方式获得目标缓存数据的方法的步骤示意图;
图6是本发明实施方式中第一客户端接收目标缓存数据的窗口示意图;
图7是本发明实施方式中第一客户端接收目标缓存数据的流程图;
图8是本发明实施方式中视频直播的装置的结构示意图;
图9是本发明实施方式中视频直播的设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本申请提供一种视频直播的方法,该方法可以应用于如图3所示的视频直播的系统中。具体地,请参阅图3,视频直播的系统可以包括三个部分:内容分发网络、盒子(包括实例)和基于P2P技术的客户端。
其中,内容分发网络的核心是利用智能化策略技术,将中心服务器的内容和服务推送到边缘服务器,使得用户可以在地理位置较近的和服务质量较佳的地方获取服务,其关键技术包括高速缓存、负载均衡、内容路由、内容分发、内容存储和内容管理等。内容分发网络的技术能提高宽带资源的利用率,增加流媒体在互联网上的应用普及。
P2P技术即指peer to peer,中文可译为“对等网络”,这是一种相对于“服务器-终端”的网络模式。对等网络又称工作组,指网络上的各个设备(即一个peer,又可称为对等节点)具有相同的地位,无主从之分,每一部设备都既可作为服务器,又可作为终端,从而使每台设备中的数据得到最大程度的共享,并避免传统“服务器-终端”模式中对服务器的大量访问所造成的网络拥堵现象,同时扩大每台终端的数据来源范围。因此,P2P技术经常应用于网络下载、在线视频等等领域,以使得网络传输获得最佳的速度和稳定性。同时,由于P2P技术不需要维护一个庞大的服务器集群,因此基于P2P的网络应用也具有成本低廉的优势。
盒子是直播P2P应用场景中、为了降低内容分发网络的带宽成本而引入的概念。一个盒子中包括多个实例,实例的行为与客户端类似。实例接受客户端的订阅,但是不向客户端订阅P2P数据。实例从内容分发网络中下载一路直播子流,并将直播子流推送给订阅实例的客户端。因此,客户端可以不需要从内容分发网络中下载数据,而是从盒子的实例中获取数据。盒子中实例能够接受订阅的客户端越多,整个系统从内容分发网络中节省的带宽成本越多。
需要说明的是,在运行本系统之前,对直播视频流的拆分以及客户端对实例的订阅已经完成。在设计拆分时主要考虑的是时延和消耗的问题,拆分后的直播子流如果数据量太大,传输的时延就会相对较高。如果直播子流的数据量太小,网络中回馈报文就会相对较多,对P2P网络来说额外的消耗也是个问题。可以借鉴RTP(Real-time TransportProtocol,实时传输协议)和FLV(流媒体格式)中的经验,例如按照按帧或时间片来将直播视频流拆分为直播子流。采用这一方式可以在帧传输进行延时优化,可以实现播放buffer(缓冲器)无缝结合。每一个直播子流可以用一个自增长的32位ID来表示唯一性,传输过程都是以这个ID为标示来确定数据的完整性。
请参阅图3和图4,本申请一个实施方式中,上述的视频直播的方法可以包括以下步骤。
S1:确定目标缓存数据的数据来源。
在本实施方式中,第一客户端与第二客户端均为视频直播系统中的客户端。为了便于在P2P技术中区分获得数据的客户端和提供数据的客户端,因此进行区分。第一客户端是在P2P技术中需要获取数据的客户端,第二客户端是在视频直播的系统中,除了第一客户端以外的其他客户端。第一客户端与第二客户端之间可以直接进行数据传输。
具体的,每个客户端之间建立连接,使得各个客户端之间成为邻居,各个客户端之间彼此会进行状态交换和心跳。为了减少客户端对上传带宽的占用,每个客户端段可以设置一个节点LRU(Least Recently Used即最近最少使用)淘汰链表,链表中保持40个联系的邻居节点(第二客户端)。但老的节点会退出,新的节点会加入,LRU会根据邻居与自己的通信状态来进行LRU新增和淘汰。设计节点LRU淘汰链表可以遵循如下原则:1.就近原则,内网优先,同城同一营商网络次之。2.周期性评测延迟和媒体分片命中率,末位劣汰。3.当LRU列表中节点不足40个时会从备用节点列表中选取进行新的节点进行连接并加入到LRU中。
在本实施方式中,目标缓存数据为一段直播子流,由于不同的客户端在相同时间需要缓存的直播子流可能不同。因此,从视频直播的系统中,确定第一客户端,将第一客户端当前需要缓存的直播子流确定为目标缓存数据。
S2:当所述数据来源为第二客户端时,向所述第二客户端请求所述目标缓存数据。
在本实施方式中,第一客户端的目标缓存数据的数据来源有两种:盒子或者第二客户端。可以理解为,第一客户端从盒子中订阅一实例,如果目标缓存数据通过第一客户端订阅的实例获得,则确定数据来源为盒子。反之则确定数据来源为第二客户端。具体的,数据来源为盒子时,由于第一客户端订阅盒子中的实例,因此第一客户端不需要向实例主动发起请求,仅需要依据订阅的规则被动获取所述直播子流即可。数据来源为第二客户端时,第一客户端则需要从第二客户端中获取目标缓存数据,同时,数据来源为第二客户端时,可以是在订阅方式下由第二客户端推送;补片可以通过主动请求方式进行;具体的,第一客户端可以通过时延及本地时间计算,判断P2P数据传输是否失败而需要去进行补片操作。
在本实施方式中,由于每个客户端的计算能力、通信能力、网络分区等都不一样,为了选择适合的第二客户端,需要对第一客户端和第二客户端进行节点评估。主要评估参数包括:RTT(Round-Trip Time,往返时延)、丢包率、请求命中率。通过这三个参数会对每个邻居客户端计算出一个亲和力分值(score),一般会选择与亲和力分值高的第二客户端保持连接,以更好地与第一客户端进行数据传输。
其中,第一客户端可以在未与第二客户端连接时,可以通过tracker服务器的推荐来选择连接第二客户端。
S3:当向所述第二客户端请求所述目标缓存数据失败,则通过补片操作获取所述目标缓存数据。
在本实施方式中,第一客户端向第二客户端请求所述目标缓存数据。但是第二客户端中可能没有完整的所述目标缓存数据,由此向第二客户端请求目标缓存数据失败。此时第一客户端所在的P2P网络中,没有目标缓存数据,因此需要通过补片操作来从P2P网络以外的地方获取目标缓存数据。
如图5所示,补片操作包括如下的流程:
S301、确定所述第二客户端无法提供完整的目标缓存数据。
当实例从内容分发网络中下载一路直播子流后,需要将其推送给订阅所述实例的客户端,为了方便后文描述,将被第一客户端订阅的实例命名为第一实例。在第一实例向第一客户端推送直播子流时,可能由于网络抖动、丢包或者第一客户端端网络状况等原因,导致第一客户端未能成功接收所述直播子流,甚至导致P2P网络中,没有任何的客户端保存有完整的所述直播子流。此时,确定第二客户端无法提供完整的目标缓存数据。
S302、所述第一客户端向其订阅的第一实例发起第一补片请求。
与内容分发网络连接的盒子中,可以运行有两个或两个以上的实例,每个实例从内容分发网络中下载一路直播子流,第一客户端在盒子中订阅第一实例,将盒子中其他实例命名为第二实例。第一客户端向第一实例发起补片请求,为了和后续可能产生的补片请求相区别,确定第一客户端向其订阅的第一实例发起的补片请求为第一补片请求。
第一补片请求包括了目标缓存数据的ID。第一实例接收到第一补片请求后,向第二实例查询所述目标缓存数据,以获取所述目标缓存数据。
S303、判断第一补片请求是否被第一实例成功响应。若被成功响应,则执行步骤S304;被未成功响应,则执行步骤S305。
如果第一实例向第二实例查询所述目标缓存数据,则从第二实例中获得所述目标缓存数据。第一实例将目标缓存数据发送给第一客户端,第一客户端通过补片操作获取了目标缓存数据。
一般的,实例从内容分发网络中获取直播子流,并将所述直播子流推送给客户端后,需要将已下载的直播子流缓存一段时间(一般大于客户端的时延大小)。在缓存被清除前,第一实例可以从该处获取目标缓存数据,并成功响应第一客户端发出的第一补片请求。此时,第一客户端通过第一实例获取目标缓存数据。
当然,如果缓存已被清除,那么第一实例无法从该处获取目标缓存数据。第一实例向第一客户端发回应答失败信息,表示第一补片请求未被成功响应。此时,第一客户端向内容分发网络发起第二补片请求,以获得目标缓存数据。
S304、第一客户端通过所述第一实例获取所述目标缓存数据。
S305、第一客户端向所述内容分发网络发起第二补片请求,以获得所述目标缓存数据。
具体的,当第二实例未缓存有所述目标缓存数据时,第二实例向第一实例发回应答失败信息。第一实例将应答失败信息发送给所述第一客户端。第一客户端根据应答失败消息,向内容分发网络发起第二补片请求,以获得所述目标缓存数据。
在本实施方式中,为了保证客户端在直播过程中不会出现卡顿的现象,设计了“窗口”来对时间进行管理。首先,将第一客户端用于从第二客户端接收目标缓存数据的时间段设定为第一窗口。当在第一窗口内,第二客户端无法提供完整的目标缓存数据,则确定第一客户端向第二客户端请求目标缓存数据失败。其次,将第一客户端用于从第一实例接收目标缓存数据的时间段设定为第二窗口。当在第二窗口内,第一实例无法向第一客户端提供完整的目标缓存数据,则确定第一补片请求未被第一实例成功响应。
参考图6和图7,当一段目标缓存数据的数据来源为第二客户端时,在第一窗口内,向第二客户端请求目标缓存数据,若向第二客户端请求目标缓存数据成功,则更新第二窗口。若在第一窗口内无法成功向第二客户端请求目标缓存数据,则在第二窗口内向第一客户端订阅的第一实例发起第一补片请求。若在第二窗口内第一补片请求被第一实例成功响应,第一客户端通过第一实例获取目标缓存数据。若在第二窗口内,第一补片请求未被第一实例成功响应,第一客户端向内容分发网络发起第二补片请求,以获得目标缓存数据。一般的,第一客户端向内容分发网络发起第二补片请求,以获得目标缓存数据设定为第三窗口。
一般的,第一客户端的直播时延的大小设置为d,第二窗口为设置为win,那么win∈[300,m];m=max(500,d/10),单位为毫秒,
其中,初始化时win=m,factor为一个因子(例如敏感系数因子,一般设置为0.1)。idtime用于表示收到的P2P数据(来源第二客户端的数据)的生成时间,Iocaltime为收到P2P数据时的本地时间。作为示例,直播时延大小d可以设置为6000ms,盒子补片窗口的取值范围为[300,m]。
可以理解是的,第一客户端对每个第二客户端都设有一个第二窗口,第二窗口的大小变化反映了P2P的质量。当P2P数据未到达时,第一客户端能够提前前往其他P2P质量良好的第二客户端请求补片数据,以尽早获取到整流所需要的数据,避免卡顿产生。同时避免在第三窗口内集中去内容分发网络进行补片操作,以减少对服务器造成压力。
S4:整合所述目标缓存数据与历史缓存数据,以使所述第一客户进行视频直播。
由于数据来源不同,第一客户端中的历史数据可能在进行播放时需要比目标缓存数据先播放,因此需要对第一客户端中的目标缓存数据与历史缓存数据进行整合,以使得第一客户进行视频直播。
请参阅图8,本申请还提供一种视频直播的装置,所述装置包括:
数据来源确定模块10,用于确定目标缓存数据的数据来源,所述目标缓存数据为第一客户端需要缓存的直播子流;
客户端请求模块20,用于当所述数据来源为第二客户端时,向所述第二客户端请求所述目标缓存数据,所述第二客户端与所述第一客户端之间直接进行数据传递;
补片操作模块30,用于当向所述第二客户端请求所述目标缓存数据失败,则通过补片操作获取所述目标缓存数据;
数据整合模块40,用于整合所述目标缓存数据与历史缓存数据,以使所述第一客户进行视频直播,所述历史缓存数据为所述第一客户端已经缓存的直播子流。
在一个实施方式中,与内容分发网络连接的盒子中可以运行有两个或两个以上的实例,每个所述实例从内容分发网络中下载一路直播子流;所述装置还包括:
第一实例确定模块,用于当所述数据来源为盒子时,确定所述第一客户端在所述盒子中订阅的实例作为第一实例;
子流接收模块,用于接收所述第一实例推送的直播子流。
在一个实施方式中,与内容分发网络连接的盒子中可以运行有两个或两个以上的实例,每个所述实例从内容分发网络中下载一路直播子流,所述第一客户端在所述盒子中订阅第一实例;补片操作模块30包括:
客户端确定子模块,用于确定所述第二客户端无法提供完整的目标缓存数据;
第一补片发起子模块,用于所述第一客户端向其订阅的第一实例发起第一补片请求;
客户端数据获取子模块,用于若所述第一补片请求被所述第一实例成功响应,所述第一客户端通过所述第一实例获取所述目标缓存数据;
第二补片发起子模块,用于若所述第一补片请求未被所述第一实例成功响应,所述第一客户端向所述内容分发网络发起第二补片请求,以获得所述目标缓存数据。
在一个实施方式中,补片操作模块30包括:
第一窗口确定子模块,用于确定第一窗口,所述第一窗口为所述第一客户端用于从第二客户端接收所述目标缓存数据的时间段;
目标数据确定子模块,用于在所述第一窗口内,第二客户端无法提供完整的目标缓存数据,确定所述第一客户端向所述第二客户端请求所述目标缓存数据失败。
在一个实施方式中,所述第二补片发起子模块包括:
第二窗口确定单元,用于确定第二窗口,所述第二窗口为所述第一客户端用于从所述第一实例接收所述目标缓存数据的时间段;
目标数据确定单元,用于当在所述第二窗口内,所述第一实例无法提供完整的目标缓存数据,确定所述第一补片请求未被所述第一实例成功响应。
在一个实施方式中,所述客户端数据获取子模块包括:
第一补片请求接收单元,用于所述第一实例接收所述第一客户端发起的第一补片请求;
实例数据请求单元,用于所述第一实例向第二实例请求所述目标缓存数据,所述第二实例为所述盒子中的其他实例;
实例数据接收单元,用于所述第一实例接收所述第二实例发回的目标缓存数据;
实例数据发送单元,用于所述第一实例将所述目标缓存数据发送给所述第一客户端。
在一个实施方式中,所述第二补片发起子模块包括:
第一补片请求接收单元,用于所述第一实例接收所述第一客户端发起的第一补片请求;
实例数据请求单元,用于所述第一实例向第二实例请求所述目标缓存数据,所述第二实例为所述盒子中的其他实例;
应答失败信息接收单元,用于所述第一实例接收所述第二实例发回的应答失败信息,所述应答失败信息表示所述第二实例未缓存有所述目标缓存数据;
应答失败信息发送单元,用于所述第一实例将所述应答失败信息发送给所述第一客户端;
应答失败信息响应单元,用于所述第一客户端根据所述应答失败消息,向所述内容分发网络发起第二补片请求,以获得所述目标缓存数据。
请参阅图9,本申请还提供一种视频直播的设备,所述视频直播的设备包括处理器和存储器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,可以实现上述的视频直播的方法。
请参阅图3,本申请还提供一种视频直播的系统,与内容分发网络连接的盒子中可以运行有两个或两个以上的实例,每个所述实例从内容分发网络中下载一路直播子流,其中:
第一客户端订阅第一实例;
确定第一客户端当前需要缓存的直播子流的数据来源,将所述第一客户端当前需要缓存的直播子流作为目标缓存数据;
当所述数据来源为第二客户端时,向所述第二客户端请求所述目标缓存数据,所述第二客户端与所述第一客户端之间直接传递数据;
当所述第一客户端向所述第二客户端请求所述目标缓存数据失败,通过补片获取所述目标缓存数据;
整合所述目标缓存数据与历史缓存数据,以使所述第一客户进行视频直播,所述历史缓存数据为所述第一客户端已经缓存的直播子流。
在一个实施方式中,所述通过补片获取所述目标缓存数据,包括:
所述第一客户端向所述第一实例发起第一补片请求;
如果所述第一实例没有所述目标缓存数据,则所述第一实例向第二实例请求所述目标缓存数据,所述第二实例为与所述第一实例属于同一盒子的其他实例;
当所述第二实例缓存有所述目标缓存数据,则向所述第一实例提供所述目标缓存数据;
当所述第二实例未有所述目标缓存数据,则向所述第一实例发回应答失败信息。
在一个实施方式中,所述向所述第一实例发回应答失败信息之后,还包括:
所述第一客户端根据所述应答失败信息,向内容分发网络请求所述目标缓存数据。
本申请提供的技术方案,可以将内容分发网络、盒子(包括多个实例)和P2P技术相结合,从而通过结合后的系统解决彼此的缺陷。具体地,与内容分发网络连接的盒子中可以运行有两个或两个以上的实例,每个实例从内容分发网络中下载一路直播子流。当客户端需要缓存一段直播子流时,确定所述直播子流的来源,当所述直播子流的来源为其他客户端(P2P方式)时,向其他客户端请求所述数据。当无法从其他客户端获得所述直播子流时,客户端会向其订阅的盒子中的第一实例发起补片请求。盒子里的实例之间可以通信与数据共享,以获取所述客户端的补片请求需要的直播子流。当所述第一实例从其他实例中也无法获得符合补片请求的直播子流时,所述第一实例向所述客户端发回应答失败信息。客户端接收到所述应答失败信息后,向内容分发网络发起补片请求。从而使得客户端可以获得多段直播子流,并将所述直播子流拼接为一段完整的直播视频流,以使客户可以进行视频直播。
经过上述的处理方式,当一个客户端无法从其他客户端获得直播子流时,不会直接向内容分发网络发起补片请求,而是会先向其订阅的第一实例发起补片请求,所述第一实例会向盒子里的其他实例请求所述直播子流。只有当其他实例也无法提供所述直播子流时,客户端才会向内容分发网络发起补片请求。这样的方式分散了接收补片请求的主体,分散了内容分发网络带宽的压力。
此外,本申请提供的技术方案,不仅仅对响应补片请求的主体进行了优化,同时针对每一个客户端还设计了不同的窗口,根据窗口来选择向其他客户端、实例或者内容分发网络发起补片请求。在分散内容分发网络带宽压力的同时,还确保了客户端在直播过程中不会出现卡顿的现象。
本说明书中的各个实施方式均采用递进的方式描述,各个实施方式之间相同相似的部分互相参见即可,每个实施方式重点说明的都是与其他实施方式的不同之处。尤其,针对系统和设备的实施方式来说,均可以参照前述方法的实施方式的介绍对照解释。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种视频直播的方法,其特征在于,与内容分发网络连接的盒子中运行有两个或两个以上的实例,每个所述实例从内容分发网络中下载一路直播子流,第一客户端在所述盒子中订阅第一实例,所述方法包括:
确定目标缓存数据的数据来源,所述目标缓存数据为第一客户端需要缓存的直播子流;
当所述数据来源为第二客户端时,向所述第二客户端请求所述目标缓存数据,所述第二客户端与所述第一客户端之间直接进行数据传递;
当向所述第二客户端请求所述目标缓存数据失败,则确定所述第二客户端无法提供完整的目标缓存数据,所述第一客户端向其订阅的第一实例发起第一补片请求,并由所述第一实例向第二实例查询所述目标缓存数据,以获取所述目标缓存数据;其中,所述第二实例为与所述第一实例属于同一盒子的其他实例;
整合所述目标缓存数据与历史缓存数据,以使所述第一客户进行视频直播,所述历史缓存数据为所述第一客户端已经缓存的直播子流。
2.根据权利要求1所述的方法,其特征在于,与内容分发网络连接的盒子中运行有两个或两个以上的实例,每个所述实例从内容分发网络中下载一路直播子流,所述方法还包括:
当所述数据来源为盒子时,确定所述第一客户端在所述盒子中订阅的实例作为第一实例;
接收所述第一实例推送的直播子流。
3.根据权利要求1所述的方法,其特征在于,所述当向所述第二客户端请求所述目标缓存数据失败,则获取所述目标缓存数据,包括:
若所述第一补片请求被所述第一实例成功响应,所述第一客户端通过所述第一实例获取所述目标缓存数据;
若所述第一补片请求未被所述第一实例成功响应,所述第一客户端向所述内容分发网络发起第二补片请求,以获得所述目标缓存数据。
4.根据权利要求1-3任一所述的方法,其特征在于,所述向所述第二客户端请求所述目标缓存数据失败,包括:
确定第一窗口,所述第一窗口为所述第一客户端用于从第二客户端接收所述目标缓存数据的时间段;
当在所述第一窗口内,第二客户端无法提供完整的目标缓存数据,确定所述第一客户端向所述第二客户端请求所述目标缓存数据失败。
5.根据权利要求3所述的方法,其特征在于,所述第一补片请求未被所述第一实例成功响应,包括:
确定第二窗口,所述第二窗口为所述第一客户端用于从所述第一实例接收所述目标缓存数据的时间段;
当在所述第二窗口内,所述第一实例无法提供完整的目标缓存数据,确定所述第一补片请求未被所述第一实例成功响应。
6.根据权利要求3所述的方法,其特征在于,所述第一补片请求被所述第一实例成功响应,所述第一客户端通过所述第一实例获取所述目标缓存数据,包括:
所述第一实例接收所述第一客户端发起的第一补片请求;
所述第一实例向第二实例请求所述目标缓存数据,所述第二实例为所述盒子中的其他实例;
所述第一实例接收所述第二实例发回的目标缓存数据;
所述第一实例将所述目标缓存数据发送给所述第一客户端。
7.根据权利要求3所述的方法,其特征在于,所述第一补片请求未被所述第一实例成功响应,所述第一客户端向所述内容分发网络发起第二补片请求,以获得所述目标缓存数据,包括:
所述第一实例接收所述第一客户端发起的第一补片请求;
所述第一实例向第二实例请求所述目标缓存数据,所述第二实例为所述盒子中的其他实例;
所述第一实例接收所述第二实例发回的应答失败信息,所述应答失败信息表示所述第二实例未缓存有所述目标缓存数据;
所述第一实例将所述应答失败信息发送给所述第一客户端;
所述第一客户端根据所述应答失败消息,向所述内容分发网络发起第二补片请求,以获得所述目标缓存数据。
8.一种视频直播的装置,其特征在于,所述装置包括:
数据来源确定模块,用于确定目标缓存数据的数据来源,所述目标缓存数据为第一客户端需要缓存的直播子流;
客户端请求模块,用于当所述数据来源为第二客户端时,向所述第二客户端请求所述目标缓存数据,所述第二客户端与所述第一客户端之间直接进行数据传递;
补片操作模块,用于当向所述第二客户端请求所述目标缓存数据失败,则确定所述第二客户端无法提供完整的目标缓存数据,所述第一客户端向其订阅的第一实例发起第一补片请求,并由所述第一实例向第二实例查询所述目标缓存数据,以获取所述目标缓存数据;其中,与内容分发网络连接的盒子中运行有两个或两个以上的实例,每个所述实例从内容分发网络中下载一路直播子流,第一客户端在所述盒子中订阅第一实例,所述第二实例为与所述第一实例属于同一盒子的其他实例;
数据整合模块,用于整合所述目标缓存数据与历史缓存数据,以使所述第一客户进行视频直播,所述历史缓存数据为所述第一客户端已经缓存的直播子流。
9.一种视频直播的设备,其特征在于,所述视频直播的设备包括处理器和存储器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现如权利要求1至7中任一所述的方法。
10.一种视频直播的系统,其特征在于,与内容分发网络连接的盒子中运行有两个或两个以上的实例,每个所述实例从内容分发网络中下载一路直播子流,所述系统包括:
第一客户端订阅第一实例;
确定第一客户端当前需要缓存的直播子流的数据来源,将所述第一客户端当前需要缓存的直播子流作为目标缓存数据;
当所述数据来源为第二客户端时,向所述第二客户端请求所述目标缓存数据,所述第二客户端与所述第一客户端之间直接传递数据;
当所述第一客户端向所述第二客户端请求所述目标缓存数据失败,则确定所述第二客户端无法提供完整的目标缓存数据,所述第一客户端向其订阅的第一实例发起第一补片请求,并由所述第一实例向第二实例查询所述目标缓存数据,以获取所述目标缓存数据;其中,所述第二实例为与所述第一实例属于同一盒子的其他实例;
整合所述目标缓存数据与历史缓存数据,以使所述第一客户进行视频直播,所述历史缓存数据为所述第一客户端已经缓存的直播子流。
11.根据权利要求10所述的系统,其特征在于,所述获取所述目标缓存数据,包括:
当所述第二实例缓存有所述目标缓存数据,则向所述第一实例提供所述目标缓存数据;
当所述第二实例未缓存有所述目标缓存数据,则向所述第一实例发回应答失败信息。
12.根据权利要求11所述的系统,其特征在于,所述向所述第一实例发回应答失败信息之后,还包括:
所述第一客户端根据所述应答失败信息,向内容分发网络请求所述目标缓存数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010263857.8A CN111556324B (zh) | 2020-04-04 | 2020-04-04 | 一种视频直播的方法、装置、设备及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010263857.8A CN111556324B (zh) | 2020-04-04 | 2020-04-04 | 一种视频直播的方法、装置、设备及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111556324A CN111556324A (zh) | 2020-08-18 |
CN111556324B true CN111556324B (zh) | 2022-05-10 |
Family
ID=72007334
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010263857.8A Expired - Fee Related CN111556324B (zh) | 2020-04-04 | 2020-04-04 | 一种视频直播的方法、装置、设备及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111556324B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115022667A (zh) * | 2022-06-28 | 2022-09-06 | 武汉斗鱼鱼乐网络科技有限公司 | 一种直播播放控制方法及相关设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102281474A (zh) * | 2011-09-02 | 2011-12-14 | 乐视网信息技术(北京)股份有限公司 | 一种网络直播及录制方法 |
CN105635755A (zh) * | 2015-12-30 | 2016-06-01 | 合一网络技术(北京)有限公司 | 直播流传输方法和装置 |
CN105848011A (zh) * | 2016-03-31 | 2016-08-10 | 乐视控股(北京)有限公司 | 一种视频直播方法及装置 |
CN105898388A (zh) * | 2016-04-05 | 2016-08-24 | 合网络技术(北京)有限公司 | 一种节点下载调度方法和装置 |
CN107277013A (zh) * | 2017-06-19 | 2017-10-20 | 网宿科技股份有限公司 | 对等网络中的直播系统及节点管理方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ES2429222B1 (es) * | 2011-05-12 | 2014-06-05 | Telefónica, S.A. | Método y nodo de extremo para distribuir flujo continuo de contenido en tiempo real en una red de distribución de contenido |
-
2020
- 2020-04-04 CN CN202010263857.8A patent/CN111556324B/zh not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102281474A (zh) * | 2011-09-02 | 2011-12-14 | 乐视网信息技术(北京)股份有限公司 | 一种网络直播及录制方法 |
CN105635755A (zh) * | 2015-12-30 | 2016-06-01 | 合一网络技术(北京)有限公司 | 直播流传输方法和装置 |
CN105848011A (zh) * | 2016-03-31 | 2016-08-10 | 乐视控股(北京)有限公司 | 一种视频直播方法及装置 |
CN105898388A (zh) * | 2016-04-05 | 2016-08-24 | 合网络技术(北京)有限公司 | 一种节点下载调度方法和装置 |
CN107277013A (zh) * | 2017-06-19 | 2017-10-20 | 网宿科技股份有限公司 | 对等网络中的直播系统及节点管理方法 |
WO2018232798A1 (zh) * | 2017-06-19 | 2018-12-27 | 网宿科技股份有限公司 | 对等网络中的直播系统及节点管理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111556324A (zh) | 2020-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3595268B1 (en) | Streaming media resource distribution method, system, edge node and central dispatching system | |
US10516717B2 (en) | Network-initiated content streaming control | |
US10033548B2 (en) | Method, system, service selection entity, and service management entity for selecting service provision entity | |
US20110246608A1 (en) | System, method and device for delivering streaming media | |
US8578042B2 (en) | Method, system and device for playing streaming media | |
CN102355448B (zh) | 云流媒体数据传输方法及系统 | |
JP5464423B2 (ja) | ピアツーピア間のファイル転送モデル及びクライアント−サーバ間のファイル転送モデルを用いてクライアントへファイルを転送するための方法及び装置 | |
US8756296B2 (en) | Method, device and system for distributing file data | |
EP2288085B1 (en) | P2p based method, device and system for playing media | |
EP2290912A1 (en) | Content distributing method, service redirecting method and system, node device | |
US20130219441A1 (en) | Method, server and terminal for audio and video on demand | |
KR20030056701A (ko) | P2p 방식을 이용한 멀티미디어 스트리밍 장치 및 방법 | |
CN111556324B (zh) | 一种视频直播的方法、装置、设备及系统 | |
US20130238683A1 (en) | Method, system and computer program product for providing files to a client | |
CN111478977B (zh) | 一种多流媒体网络流量分析系统的工作方法 | |
WO2024032363A1 (zh) | 回源处理方法、装置、计算设备及存储介质 | |
Sayit et al. | Adaptive, incentive and scalable dynamic tree overlay for P2P live video streaming | |
US20140161125A1 (en) | Method, duplication point device, and system for data flow reuse transmission | |
Koren et al. | Peer-to-peer video streaming in html5 with webtorrent | |
CN110730388B (zh) | 一种p2p视频点播系统中节点连接方法 | |
US20080240138A1 (en) | Tree type broadcast system, connection target determination method, connection management device, connection management process program, and the like | |
Muscat et al. | A Hybrid CDN-P2P Architecture for Live Video Streaming | |
CN112565796A (zh) | 一种视频内容去中心化存取方法和系统 | |
Ghettas et al. | An Efficient Hybrid Push-Pull Based Protocol for VOD In Peer-to-Peer network | |
CN115834597A (zh) | 一种内容分发方法及客户端、电子设备、存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20220510 |