CN101588468A - 一种基于p2p的媒体播放方法、装置和*** - Google Patents

一种基于p2p的媒体播放方法、装置和*** Download PDF

Info

Publication number
CN101588468A
CN101588468A CNA2008100978926A CN200810097892A CN101588468A CN 101588468 A CN101588468 A CN 101588468A CN A2008100978926 A CNA2008100978926 A CN A2008100978926A CN 200810097892 A CN200810097892 A CN 200810097892A CN 101588468 A CN101588468 A CN 101588468A
Authority
CN
China
Prior art keywords
node
service
demand
live
telecommunication
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.)
Granted
Application number
CNA2008100978926A
Other languages
English (en)
Other versions
CN101588468B (zh
Inventor
戴芬
王铁英
严哲峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=41339753&utm_source=***_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=CN101588468(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN2008100978926A priority Critical patent/CN101588468B/zh
Priority to PCT/CN2009/070375 priority patent/WO2009140868A1/zh
Priority to EP09749411.6A priority patent/EP2288085B1/en
Publication of CN101588468A publication Critical patent/CN101588468A/zh
Priority to US12/950,778 priority patent/US9497035B2/en
Application granted granted Critical
Publication of CN101588468B publication Critical patent/CN101588468B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1813Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
    • H04L12/1827Network arrangements for conference optimisation or adaptation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4331Caching operations, e.g. of an advertisement for later insertion during playback
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network 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/63Control 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/632Control 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47202End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting content on demand, e.g. video on demand

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明实施例公开了一种基于P2P的媒体播放方法,包括:登录网络;选择直播业务或点播业务,并接收是否对所述直播业务或点播业务对应的数据流进行缓存的判断结果;根据所述选择结果获取所述对应的数据流,并在所述判断结果为是时,对所述数据流进行缓存;所述缓存的对应数据流分别作为点播业务或直播业务的数据源提供给点播节点或直播节点。通过应用本发明,将直播和点播视频服务进行融合,实现了直播到点播的自由切换,并将节点磁盘缓存的数据用于点播,并根据资源分布情况,判断是否对当前收看节目进行缓存,在保证有足够内容用于网络应用的情况下,避免了过多重复存储内容而造成浪费,提高了网络资源利用率,改善了用户使用体验。

Description

一种基于P2P的媒体播放方法、装置和***
技术领域
本发明涉及多媒体传输领域,特别是涉及一种基于P2P的媒体播放的方法、装置和***。
背景技术
随着因特网技术的普及,90年代后期,以Napster为代表的p2p应用开始在因特网上流行。P2P即对等计算或对等网络,节点通过直接交换来共享资源和服务,每个节点既可以是服务器,也可以是客户端。
一般说来,基于P2P的视频服务包括直播和点播两种。
视频直播是指由服务器定时播放节目,用户在终端收看节目,如同电视的播放模式一般。其拓扑构架具有如下特点:以服务器为中心构建拓扑,每一个直播边缘服务器负责管理一部分节目,与Peer(节点)进行交互,提供节目数据缓冲,并负责将新加入节点***拓扑的某个位置。
视频点播是指能在用户需要时随时提供交互式视频服务的业务。其拓扑架构具有如下特点:以服务器为中心构建的点播拓扑架构,具体实现可以为网状、树形等方式,以SN(Super Node,超级节点)为构成主干网络,每个SN负责管理某一个区域,与Peer进行交互,提供可连接的节点列表。
发明人在实现本发明的过程中发现现有技术中至少存在如下缺点:基于P2P的视频服务***中的直播和点播的功能的实现是相对独立的,没有做到这两种播放方式的融合,且各自存在着一些问题:直播节目顺畅清晰,但不能拖动;点播节目满足用户能随时播放的意愿,但是需要用户查询相关的节目,拖动延迟大,缓冲时间长,节目流畅度有待提高。且各个终端节点都有一个磁盘缓存用户已经收看的数据,但这些被缓存的数据没有被充分利用。
发明内容
有鉴于此,有必要提出一种基于P2P的媒体播放方法,可以实现直播和点播业务的融合和两种播放模式的自由切换。
一种基于点对点P2P的媒体播放方法,包括以下步骤:
登录网络;
选择直播业务或点播业务,并接收是否对所述直播业务或点播业务对应的数据流进行缓存的判断结果;
根据所述选择结果获取所述对应的数据流,并在所述判断结果为是时,对所述数据流进行缓存;
所述缓存的对应数据流分别作为点播业务或直播业务的数据源提供给点播节点或直播节点。
另一方面,本发明实施例还提供了一种节点,包括:
登录模块,用于登录网络;
模式选择模块,用于选择直播业务或点播业务;
信息获取模块,用于接收所述模式选择模块所选择的直播业务或点播业务所需的网络信息和是否对所述直播业务或点播业务对应的数据流进行缓存的判断结果;
存储模块,用于根据所述模式选择模块的选择结果获取所述数据流,并根据所述信息获取模块所获取的判断结果为进行缓存时对所述数据流进行缓存。
另一方面,本发明实施例还提供了一种用户请求路由***RRS,包括:
用户管理模块,用于管理节点信息;
拓扑管理模块,用于管理***内直播和点播拓扑结构信息;
服务器管理模块,用于管理各边缘服务器的信息。
另一方面,本发明实施例还提供了一种核心服务器CS,包括:
信息索引模块,用于对所述内容源进行元数据提取,生成索引信息。
内容分块模块,用于对所述内容源进行分块,确定编码格式;
内容分发模块,用于将所述信息索引模块生成的索引信息和所述内容分块模块分块的内容分发到相应的边缘服务器。
另一方面,本发明实施例还提供了一种直播业务边缘服务器Live_ES,包括:
内容管理模块,用于管理本地存放的数据;
内容通信模块,用于获取本地需要的内容,并处理接收的请求;
内容分块管理模块,用于所述获取的内容的进行分块编码。
另一方面,本发明实施例还提供了一种点播业务边缘服务器VOD_ES,包括:
内容管理模块,用于管理本地存放的数据;
内容通信模块,用于获取本地需要的内容,并处理接收的请求;
SN管理模块,用于根据所述内容管理模块所管理的数据,管理所述数据相对应的超级节点SN;
簇管理模块,用于对接入的节点进行SN选择与注销。
另一方面,本发明实施例还提供了一种SN,包括:
节点状态记录模块,用于记录域内的各节点的状态信息;
判断模块,用于根据所述节点状态记录模块所记录的域内各节点状态信息判断直播业务或者点播业务对应的数据流的内容分块的缓存节点数量是否低于设置的内容分块级阈值。
另一方面,本发明实施例还提供了一种基于P2P的媒体播放***,包括核心服务器CS和至少一个Live_ES、VOD_ES、RRS、SN和节点:
所述CS,用于对内容源进行统一编码的处理,并将所述处理后的内容源发送给对应的Live_ES或VOD_ES;
所述Live_ES,用于提供直播业务所需的数据流;
所述VOD_ES,用于提供点播业务所需的数据流;
所述RRS,用于管理网络中的所述Live_ES、VOD_ES和节点;
所述SN,用于管理域内各节点和内容;
所述节点,用于接收、传输和存储直播或点播业务所对应的数据流。
本发明实施例的技术方案具有以下优点,因为充分利用了直播和点播视频服务的特点,将二者进行融合,实现了直播到点播的自由切换,同时改进磁盘缓存方法,使节目资源均衡分布并增加可连接节点,并将用户节点磁盘缓存的数据用于点播,此外,***根据资源分布情况,判断是否对当前收看节目进行缓存,从而,在保证有足够内容用于网络应用的情况下,避免了过多重复存储内容而造成浪费,提高了网络资源利用率,改善了用户使用体验。
附图说明
图1为本发明实施例中一种基于点对点P2P的媒体播放***的结构示意图;
图2为本发明实施例中核心服务器CS的结构示意图;
图3为本发明实施例中直播业务边缘服务器Live_ES的结构示意图;
图4为本发明实施例中点播业务边缘服务器VOD_ES的结构示意图;
图5为本发明实施例中点播业务边缘服务器VOD_ES中存储的数据结构示意图;
图6为本发明实施例中用户请求路由***RRS的结构示意图;
图7为本发明实施例中超级节点SN的结构示意图;
图8为本发明实施例中终端节点的结构示意图;
图9为本发明实施例中一种基于P2P的媒体播放***的拓扑示意图;
图10为本发明实施例中直播节点后续加入点播的拓扑示意图;
图11为本发明实施例中节点从直播切入点播模式的拓扑示意图;
图12为本发明实施例中一种基于P2P的媒体播放方法的客户端流程示意图;
图13为本发明实施例中节点登录流程示意图;
图14为本发明实施例中直播模式的操作流程的示意图;
图15本发明实施例中直播模式下RRS反馈的数据结构列表;
图16为本发明实施例中点播模式的操作流程的示意图;
图17为本发明实施例中是否缓存内容的判断流程示意图;
图18为本发明实施例中通过直播节点拖动,实现直播模式到点播模式切换的操作流程示意图;
图19为本发明实施例中节点退出直播的流程示意图。
具体实施方式
本发明实施例提出一种基于点对点P2P的媒体播放方法,在实现直播和点播功能的基础上,将二者有机地结合起来,实现了直播到点播的自由切换,同时改进磁盘缓存方法,使节目资源均衡分布并增加可连接节点,并将用户节点磁盘缓存的数据用于点播,视频服务***中的节点处于点播和直播共生的状态中。此外,***根据资源分布情况,判断是否对当前收看节目进行缓存,从而,在保证有足够内容用于网络应用的情况下,避免过多重复存储内容而造成浪费,提高了网络资源利用率,改善了用户使用体验。
如图1所示,本发明实施例提出的一种基于点对点P2P的媒体播放***结构示意图,包括至少一个核心服务器CS 1、直播业务边缘服务器Live_ES 2、点播业务边缘服务器VOD_ES 3、用户请求路由***RRS 4、超级节点SN 5和节点6。
其中CS 1,即为核心服务器Core Server,每一个节目内容作为数据源,加入到***,都需要首先由CS进行处理,保证节目内容不管是处于直播还是点播中,都具有同样的编码模式。也就是说,具有同一个Content ID的节目内容具有相同的分块编码方式,该内容在直播***和点播***中对应的分块是一致的。经CS处理后的具有相同分块编码方式的节目内容被传送至直播业务边缘服务器Live_ES 2和点播业务边缘服务器VOD_ES 3中,为直播和点播业务提供节目源。具体的传送方式包括根据边缘服务器(包括Live_ES 2和VOD_ES 3)的请求进行传送,或者是CS 1主动推送,即CS 1将分块后的内容传送给Live_ES 2和VOD_ES 3。
RRS 4负责整个***的节目管理,对Live_ES 2和VOD_ES 3上的内容进行登记和管理,为***内的资源优化提供依据,具体的实现方式可以是CS 1主动向RRS 4进行节目内容的汇报,也可以是RRS 4进行内容检测,检测到CS 1发送给Live_ES 2和VOD_ES 3的节目内容。进一步的,内容检测还可以发现Live_ES 2和VOD_ES 3内容的变化,从而更新RRS 4上的相应内容记录。此外,RRS 4还可以实现对***内的拓扑结构的登记和管理。。
SN 5作为点播业务边缘服务器VOD_ES 3的一个域的管理者,其负责登记和管理域内各节点中的内容分块,并且,可以进一步的通过VOD_ES登记直播网络中进行直拨业务的节点中所缓存的内容分块。通过上述内容分块的等级和管理,为节点6接入***后选择最优的点播内容提供节点,为节点6提供点播业务资源。
节点6通过RRS 4登录网络,并通过RRS 4获知节点6需要的内容位于哪个边缘服务器,从而进行相应的直播或点播业务。
如图2所示,为核心服务器CS 1的结构示意图,具体包括:
信息索引模块21,用于对内容源进行元数据提取,生成索引信息。索引信息是一个节目的元数据信息,包含节目的关键帧等信息。
内容分块模块22,采用一定的编码格式对内容源进行分块。
内容分发模块23,用于将信息索引模块21生成的索引信息和内容分块模块22分块后的内容分发到相应的边缘服务器。
上述索引信息随处理后的内容一并发送给边缘服务器,节点进行媒体播放业务前首先从边缘服务器上获取节目的元数据信息,之后,根据元数据获取具体的数据块。
此外,CS 1保存了分块后的内容与边缘服务器的对应关系和经过CS 1处理的内容推送到边缘服务器的信息记录,其数据结构可以采用表1的方式,请参见表1所示:
表1CS中数据结构列表
  Content ID   ES_1   ES_2 …… ES_N
具体的,表1表示在边缘服务器ES_1、ES_2...直到ES_N这些边缘服务器上都有对应Content ID的节目内容,当然,也可以进一步指出边缘服务器是用于直播还是点播。
上述的数据结构所体现的ES和内容的对应关系用于保证CS 1不会对相同的内容做出重复的或矛盾的处理,保证了内容处理的效率,同时,如果CS1主动向RRS 4进行节目内容的汇报,上述的数据结构同样可以作为汇报内容,为RRS 4提供内容管理依据。
直播业务边缘服务器Live_ES 2用于提供直播业务所需的数据流,Live_ES 2保存了从CS 1获取的分块处理后的节目内容,Live_ES 2成为***中分块数据的提供者,为节点提供存储有该节点所请求内容的相关节点信息,当然为了保证用户的服务质量QoS,如果节点不能从与其连接的节点中获取所需要的数据,也可以从Live_ES 2中获取需要的数据流,其中,
Live_ES 2的结构可以参考图3,具体包括:
内容管理模块31,用于管理本地存放的数据,即用于管理再次分块处理后的内容;
内容通信模块32,用于向核心服务器CS 1获取本地需要的内容,并处理其他节点发送的获取请求;
内容分块管理模块33,用于对核心服务器CS 1所生成的内容分块进行再次分块编码。
在内容分发过程中,需要对内容进行编码处理,形成N+R的块,即对于由CS分发到边缘服务器ES中的块,当需要把这些块分发给其他节点即其他客户端的时候,Live_ES需要再次对这些分块进行分块编码处理,形成N原始的小块和R个编码块,在N+R个编码块中任意选择N块,客户端都可以将其还原成原始的内容分块。
点播业务边缘服务器VOD_ES 3用于提供点播业务所需的数据流。
VOD_ES 3保存了从CS 1获取的分块处理后的节目内容,成为***中分块数据的提供者,为节点提供存储有该节点所请求内容的相关节点信息。当然,为了保证用户的服务质量QoS,如果节点不能从与其连接的节点中获取所需要的数据,也可以从VOD_ES 3中获取需要的数据流。其中,VOD_ES 3还可以进一步兼作超级节点SN 5进行内容的管理和分配,当然进行内容的管理和分配的超级节点SN 5也可以单独设置,但超级节点SN 5必须由VOD_ES3进行确定的,其接受VOD_ES 3的管理。在RRS 4将CS 1中的内容指派给VOD_ES 3时,超级节点SN 5也是由VOD_ES 3进行选取和管理的。
点播业务边缘服务器VOD_ES 3的结构可以参考图4,具体包括:
内容管理模块41,用于管理本地存放的数据,即内容分块,该数据可以归属于不同的SN,也可以归属于同一个SN;
内容通信模块42,用于获取本地需要的内容,并处理其他节点发送的获取请求;
SN管理模块43,用于管理不同域的SN节点,为用户查询SN提供接口,其数据结构如图5所示:
其中:
Content ID表示某节目内容的ID;
SN List表示VOD_ES管理该内容的SN列表;
SN_ID表示SN List中的某个SN的ID;
PeerAddr表示与SN_ID对应的SN的地址;
PeerNum表示该SN目前拥有多少个登记内容的节点;
SN_Resource表示目前该SN的性能使用状况。
簇管理模块44,用于对接入的节点进行SN选择。具体为:簇管理模块44的主要作用是针对整个VOD_ES登录的节点进行SN的选择和划分,从VOD_ES 3所控制的节点中选择或注销SN。。
RRS 4,用于管理网络中的Live_ES 2、VOD_ES 3和节点6。
无论用户是选择点播还是直播,用户所对应的节点都需要到RRS 4上进行登记,RRS4上管理点播和直播两套***:每一个新加入的直播节点到RRS4进行登记的时候,RRS 4会反馈给该节点在直播拓扑中的位置,并把该位置的附近节点反馈给该节点,同时分配给该节点一个Live_ES 2,保证用户体验的QoS;每一个新加入的点播节点,会从RRS 4处获得VOD_ES 3,同时,RRS 4管理着点播同一节目的所有节点,并根据播放时间点进行排序,因此,新加入节点还会获得一个该播放点附近的节点集合。
节点6在登录RRS 4的时候,无论是加入直播还是点播***,都需要RRS4反馈回该节目内容的VOD_ES 3,通过该VOD_ES 3获取节目内容的SN5,然后进行登记,目的是使节点6后续下载存储的内容文件块可以为点播节点使用。
如图6所示,RRS 4的结构具体包括:
用户管理模块61,用于管理网络中各节点的信息,并为每一个登录的节点分配一个Peer ID,具体包括:
判断子模块611,用于判断直播业务或者点播业务对应的数据流内容缓存节点数量是否低于设置的文件级阈值。
拓扑管理模块62,用于用于管理***内直播和点播拓扑结构信息,具体包括:
直播拓扑管理子模块621,用于管理直播业务对应的拓扑结构信息;
点播拓扑管理子模块622,用于管理点播业务对应的拓扑结构信息。
其中RRS 4上的拓扑管理模块管理的数据结构可以采用表2所示的格式,如表2所示:
表2RRS中数据结构列表
  ContentID   MetaData   Live_ESList   VoD_ESList   直播拓扑结构   点播节点列表  VoD PeerNum   Live PeerNum
ContentID表示某一个节目内容的ID;
MetaData表示该内容的元数据,包括,内容时长、码率等表示内容的信息;
Live_ES List表示此节目内容的直播ES列表;
VOD_ES List表示此节目内容的点播ES列表;
直播拓扑结构记录了正在收看此节目的直播节点,以及节点之间的连接关系;
点播节点列表记录了正在收看此节目的点播节点,并按播放时间点进行排序;
Live PeerNum和VOD PeerNum分别表示目前正在观看直播和点播的节点数量,通过这些数量,RRS可以反馈给新加入的一个节点关于是否存储接收到数据的消息。
直播拓扑管理子模块管理加入直播***中每一个节点所处在直播拓扑图中的位置,当一个新节点加入直播***的时候,会反馈给该节点其相应的邻居节点的信息;点播拓扑管理子模块主要是用于记录每一加入点播***中的节点的信息,当一个新节点加入到点播***中,节点就会把播放时间点附近的节点反馈给这个新节点。
服务器管理模块63,用于管理各边缘服务器的信息。
具体为,服务器管理模块63管理***中各边缘服务器的信息,可以均衡***中各边缘服务器之间的负载。当有节点加入的时候,通过服务器管理模块63可以选择一些性能比较好的边缘服务器传递给该节点。
SN 5的结构如图7所示,包括:
节点状态记录模块71,用于记录一个域内的各节点的状态信息;
判断模块72,用于根据节点状态记录模块71所记录的域内各节点状态信息判断直播业务或者点播业务对应的数据流的内容分块的缓存节点数量是否低于设置的内容分块级阈值。
SN存在于点播***中,由点播边缘服务器VOD_ES从众多普通节点中选择的性能良好节点,保存一个数据结构,统计出其管理区域内,每一个内容的每一个块的节点分布情况,并统计域内可以为其他节点提供所需要的数据的节点信息,并对节点所请求的内容分块是否缓存进行判断,SN 5的数据结构RegInfo的示意图可以参考表3,其中的PeerList和BlockInfo字段具体如表4和表5所示:
表3数据结构RegInfo的结构示意列表
  ContentID
  PeerList
  BlockInfo
表4PeerList的结构示意列表
  PeerID   PeerAddr   BlockBitmap   PeerState
表5BlockInfo的结构示意列表
  BlockID   BlockNum
其中:
ContentID表示某节目内容的ID;
PeerList表示该SN管理的该节目内容的节点列表以及这些节点拥有的内容分块信息;
BlockInfo表示该节目内容分块信息以及对应分块的数量;
PeerID表示每个节点对应的一个ID;
PeerAddr表示每个节点对应的地址信息;
BlockBitmap表示该节点拥有的内容分块信息;
PeerState表示节点所处在的状态,可以是:点播、直播和闲置(即既没有点播也没有直播),当节点状态改变的时候,就会通知所有本地缓存内容的SN节点,要求它们改变对应的PeerState;
BlockID表示节目内容的某块的ID;
BlockNum表示与BlockID对应的块在该SN管理域内的数量;
每一个内容分块在SN 5进行一次登记,在修改PeerID对应的BlockBitmap对应的bit位的同时,还需要修改登记块BlockID对应的BlockNum,如果需要登记,则标记为BlockNum++;否则,如果节点写磁盘操作失败,则回滚,修改bit位,并标记为BlockNum--。
此外,某个用户终端的磁盘空间有限,涉及数据替换,当新下载的内容分块将原来的数据块替换时,节点发送信息通知SN 5保持更新,使得SN 5拥有的统计数据和内容分布情况较真实,节点得到的可连接节点集更可靠,进行连接时的命中率比较高。
SN 5记录了节点当前所处的状态,当节点状态发生改变时,比如节点由直播切入点播,由闲置状态转入点播模式收看节目等,涉及节点状态的改变,就需要通知其登记到的SN,告知其状态的改变,保持SN所持有的数据最新。
SN 5收到节点请求时,按照优先级选择规则,在域内所有节点中选择至少一个可连接节点组成可连接的节点集,并发送节点集的信息给相应的请求节点,优先级选择规则包括但不仅限于按照闲置节点、点播节点、直播节点的优先级顺序进行选择。
节点6,用于接收直播或点播业务所对应的数据流,其结构如图8所示,具体包括:
登录模块81,用于登录网络,可以进一步包括:
缓存判断子模块811,用于判断节点上是否存在缓存数据;
登记子模块812,用于当缓存判断子模块811判断出节点上存在缓存数据时,从RRS 4获取缓存数据对应的点播业务信息,并根据点播业务信息进行缓存数据的信息登记。
模式选择模块82,用于选择直播业务或点播业务,上报给相关的边缘服务器;
信息获取模块83,用于接收模式选择模块82所选择的直播业务或点播业务所需的直播网络拓扑信息或点播网络拓扑信息,以及是否对直播业务或点播业务对应的数据流进行缓存的判断结果;
存储模块84,用于根据模式选择模块82的选择结果获取数据流,并根据信息获取模块83所获取的判断结果对数据流进行缓存,具体包括:
下载子模块841,用于根据模式选择模块82的选择结果获取相对应的数据流;
缓存子模块842,用于根据信息获取模块841所获取的判断结果对数据流进行缓存。
如图9所示,为本发明所提供的一种基于点对点P2P的媒体播放***的拓扑示意图,其中左边部分为收看直播节目的节点,右边部分为点播模式及闲置状态节点。
实线连接了直播拓扑,虚线连接了与点播有关的节点,构成了点播拓扑网络。
节点E、F、G在***中,有双重角色:自身的应用为直播模式,处在直播模式的网络拓扑中;其磁盘缓存的数据,被点播模式的节点利用,因而在点播拓扑中也扮演供流的角色。
节点A、B、C、D以直播模式收看节目,一般来说,是因为首次进入***,其磁盘缓存为空,没有数据块可供点播利用,因而只存在直播应用中,但其已经向该节目的点播SN进行注册,一旦缓存数据块下载完成即进行汇报,加入点播拓扑。
节点I、J表示点播拓扑中的SN,节点O为没有参与节目收看的闲置节点,但是其磁盘有缓存数据,进入了点播拓扑结构。节点H、K、L、M、N表示点播模式中的普通节点。
节点H、I、J、K、L、M、N以点播模式收看节目,有三种方式获得视频流:从点播ES获取;从点播拓扑结构(点播模式(如H),或者直播模式(如F))的节点中获取;也有可能从并没有收看节目,但是其磁盘缓存中有数据的闲置节点(如O)获取。
基于上述的网拓扑结构,可以实现节点的直播模式与点播模式的切换:
在图9中,处于直播模式的A节点,一段时间后缓存了视频数据,加入点播拓扑,以内容提供者的身份为节点H和L供流,而自身仍然在以直播模式收看节目,在直播中的拓扑保持不变,如图10所示。
图9中的节点F,此时节目收看模式由直播切入点播,这时,它需要从直播拓扑中退出,只存在于点播拓扑图中,变成点播节点。退出直播拓扑,必然导致拓扑图的节点关系变化,这时直播拓扑需要感知F的退出对其它节点的影响,并迅速采取措施:比如F从直播拓扑中的退出会导致G在直播拓扑中的孤立,无法获取直播视频流。这时,G与直播拓扑中的其它节点关联,比如和节点A建立连接,保证数据获取的正常进行,如图11所示。
具体的,如图12所示,为本发明实施例所提出的技术方案的详细流程图,
节点进入***,通过RRS登录网络;
节点判断自身是否有相关内容的缓存,如果有,则获取与缓存内容相应的VOD_ES,并进一步通过VOD_ES获取相对应的SN,向该SN登记缓存内容的信息;
登记完成后,或判断自身无相关内容的缓存时,节点选择希望获取的节目内容,并决定是通过直播模式或点播模式进行上述内容的获取;
如果选择直播模式,则从RRS获取相应的Live_ES、VOD_ES、邻居节点信息以及是否缓存内容的标识,然后,通过上述信息获取数据流;
如果选择点播模式,则从RRS获取相应的VOD_ES、邻近节点的集合信息以及是否缓存内容的标识,然后,通过上述信息获取数据流;
当获取足够的数据内容后还包括根据上述是否缓存内容的标识进行是否缓存的判断,具体包括是否缓存文件级内容的判断,如果进行文件级缓存,则存储相应的文件级内容,如果不进行文件级缓存,则可以进一步判断是否进行内容分块级的缓存,如果缓存,则缓存该内容分块,如果不缓存,则放弃缓存该内容分块,当节点进行了缓存之后可以进一步作为点播的内容源,为其他选择点播的节点提供内容。
同时,在本流程中还包含直播模式与点播模式之间的切换。
为方便说明,本发明实施例通过将全过程划分为五个部分,并结合附图进行说明,具体描述如下:
第一部分,如图13所示,为节点登录流程,其中,节点进入***,首先和RRS取得联系登录网络。如果是第一次打开终端使用***,其磁盘缓冲为空,则不向RRS汇报数据,只登录。否则,向RRS汇报数据,RRS返回与磁盘所缓存内容相对应的VOD_ES信息,继而获得对应的SN,SN登记该节点所缓存的内容分块信息。
需要进一步指出的是,有可能节点只走到这一步,即只打开终端,但不再继续选择直播或者点播模式。这种情况尤其适应于机顶盒应用,这样,节点所拥有的磁盘缓存文件就能被拓扑中的点播节点利用,为点播节点供流。
相应的,图13所示的是用户登录时的流程示意图,与后续用户是进入直播、点播还是保持现有闲置状态无关,具体包括以下步骤:
步骤S1301、节点打开登录页面。
步骤S1302、节点从RRS登录、汇报所缓存内容数据。
步骤S1303、RRS返回一系列与该缓存内容有关的VOD_ES。
如果节点磁盘没有缓存数据,则RRS只用于登录,不会返回VOD_ES信息。
步骤S1304、节点获得VOD_ES信息之后,与VOD_ES进行连接。
步骤S1305、VOD_ES返回每一个内容的SN信息。
步骤S1306、节点再向SN汇报内容分块信息。
步骤S1307、SN据此修改其内部数据结构RegInfo,记录新加入节点及其内容分块信息。
步骤S1308、返回登记结果。
其中,不同的内容可能登记在同一个SN,也可能在不同的SN中,且VOD_ES也可以作为一个SN。
第二部分,如图14所示,为直播模式的操作流程,在直播模式中,节点与RRS取得联系,获得Live_ES信息以及邻居节点的信息,之后与Live_ES和邻居节点之间建立连接,完成了节点加入直播拓扑。同时从RRS上获取直播内容的VOD_ES,并与VOD_ES建立连接获取SN信息;
然后,从这些直播邻居节点获取或者接收直播数据流。其中,RRS根据该节目的热度反馈是否进行数据存储,决定该新加入节点是否对获取的数据流进行缓存,如一个新节点加入该节目时,如果当前正在使用该内容的节点用户多于设定的文件级阈值N1,那么就返回给该节点一个存储标志信息Flag=0(不缓存),否则返回Flag=1(缓存)。
当直播节点获取到一部分完整的内容分块的时候,联系SN进行该内容分块的登记(SN设定其管理的域内该内容的内容分块级阈值N2,如果该部分内容分块BlockID对应的PeerNum大于内容分块级阈值N2,那么返回不需要存储该内容分块,Flag1=0,否则,Flag1=1)。
节点在后续节目收看中,会获得节目的新的下载文件,因此,节点定期检测是否有内容分块(如4M为一Block)已经下载完成,向SN登记汇报信息,确定是否对下载的内容分块进行磁盘存储。此时,直播模式的节点如果缓存了新内容,可以加入该内容的点播拓扑,为点播节点供流。
处于直播状态的节点,可能处于双重结构中:在直播拓扑结构中,自己受惠也服务其它直播节点;在点播拓扑中,提供已缓存的数据给点播模式的节点。如果点播模式的某节点缓存了某直播节目的内容,该点播模式的节点也可以作为直播模式的节点,直播相对点播来说,拓扑结构和供流都比较稳定,直播的质量可以得到保障,也可以不需要该点播模式的节点来为收看直播的节点来提供流支持。因而登录的闲置节点也可以不考虑加入直播拓扑。
具体的,直播模式信令交互流程如图14所示,包括以下步骤:
步骤S1401、节点选择内容进入直播模式。
步骤S1402、节点与RRS建立连接,进行交互。
步骤S1403、从RRS处获取边缘服务器信息(包括该内容对应的Live_ES和VOD_ES)及其邻居节点。
RRS根据该节目的直播拓扑情况,决定是否该新加入节点对直播内容进行缓存(即文件级的缓存)。
步骤S1404、与Live_ES建立连接,进行交互。
步骤S1405、从Live_ES处获取快速视频数据缓冲,该步骤为可选步骤。
步骤S1406、与该内容的VOD_ES建立连接,进行交互。
步骤S1407、获得该内容SN信息。
步骤S1408、与SN信息中指出的Peers进行交互,获得需要内容数据。
节点加入直播拓扑中的适当位置,与邻居节点建立连接观看节目,从邻居节点或Live_ES处下载数据。
步骤S1409、检测是否已经下载了一部分完整的内容分块,如果是则登记该内容分块,进入步骤S1410,否则,返回步骤S1408,继续获取数据。
步骤S1410、向SN登记文件块信息。SN根据文件缓存结果和其所管理域内该内容分块的存储情况,决定该块是否缓存(此处为针对内容分块的缓存,如果文件级缓存判断结果为真,则此处不用判断,直接存储并向SN登记)。
步骤S1411、SN修改其数据结构RegInfo,保持数据同步更新。
步骤S1412、返回登记结果。
进一步需要指出的是,用户登记和获取数据是同步的,只有到最后完成整个内容下载的时候,上述的整个流程才结束。
RRS交互返回给直播用户的数据结构如图15所示:
其中,VOD_ES表示该直播节目的点播边缘服务器;
Live_ES表示该直播节目的直播边缘服务器;
Flag表示是否对该节目进行缓存的标志位,1表示存储,0表示不存储。
NeighborList表示该节目在直播拓扑中的邻居节点;其中该List中存在一个数据结构,PeerID表示节点在该***中的唯一标识,PeerAddr表示该节点的IP地址;Relation表示该节点与请求节点之间的关系,包括该节点是请求节点的祖父节点、父亲节点、孩子节点,孙子节点。请求节点只连接父亲节点和孩子节点。从父亲节点获取数据,并把数据传给孩子节点。当其中有一类节点掉线,那么存在其他节点通知并获取替换的该类节点。
第三部分,如图16所示,为点播模式的操作流程。
节点从RRS上获取的是节点所需要的同一节目点播时间点临近的节点信息。且根据***状况,判断是否该加入节点对下载数据进行磁盘存储,即文件级的存储。如果当前正在使用该内容的节点用户多于设定的文件级阈值N1,那么就返回给该节点一个存储标志信息Flag=0(不存储),否则返回Flag=1(存储)。
节点向VOD_ES发送获取内容的请求,得到与请求内容相关的SN信息。同时,通过VOD_ES获取快速缓存数据(该步骤为可选步骤),并与获取的节点选择性的建立连接,获得内容数据。
如果节点初次加入该内容的点播***或者当前拥有的可用节点不足,则向SN发起节点查询请求,取得节点,SN根据每一个节点在本地登记的状态,(点播模式、直播模式或者闲置状态),根据策略:优先选择闲置状态的节点,然后是点播模式的节点,最才是直播模式节点,反馈给节点——选择的原因:闲置节点拥有足够多的空闲资源,直播节点在拓扑架构中稳定持续获取/传递数据,消耗带宽。
当点播节点获取到一部分完整的内容分块的时候,联系SN进行该内容分块登记(SN设定其管理的域内该内容的内容分块级阈值为N2,如果该部分内容分块BlockID对应的PeerNum大于N2,那么返回不需要存储该块,Flag1=0,否则,Flag1=1)。
具体的,点播模式流程示意图如图16所示,包括以下步骤:
步骤S1601、用户选择点播节目进入点播模式
步骤S1602、首先节点与RRS取得联系
步骤S1603、从RRS处获取VOD_ES信息,并得到元数据信息、目前使用该内容的节点数量(或者标识是否进行该节目内容文件级缓存)、以及临近播放点节点的信息。
步骤S1604、与VOD_ES建立连接,进行交互
步骤S1605、获取该节目内容快速数据缓冲(为可选)和SN的信息
步骤S1606、与SN建立连接
步骤S1607、从SN获取可连接节点列表,以供建立连接。
步骤S1608、与SN信息中指出的Peers进行交互,获得需要的数据。
节点从获知的节点列表中选择的节点或者VOD_ES,建立连接下载数据,这时SN,可以依照节点附带的标志位信息作为参考,将下行带宽比较大的节点返回。
步骤S1609、检测是否已经下载了一部分完整的内容分块,如果是则登记该内容分块,进入步骤S1610,否则,返回步骤S1608,继续获取数据。
步骤S1610、一旦内容分块完成下载,向SN进行内容登记,SN根据其所管理域内该内容分块的存储情况,决定是否该块是否缓存(如果文件级缓存判断结果为真,则此处可以不用判断,直接存储并向SN登记)。
步骤S1611、SN修改其内部数据结构,保持更新。
步骤S15612、返回登记结果。
RRS交互返回给点播用户的数据结构如表6所示:
表6点播模式下RRS反馈的数据结构列表
  VOD_ES   Playpoint Nodes   Flag
其中,VOD_ES:表示该节目的点播边缘服务器;
Playpoint Nodes:表示该节点即将要播放的时间点附近的节点;
Flag:表示是否对节目进行缓存的标志位,0表示不存,1表示进行缓存。
第四部分,如图17所示,为是否缓存内容的判断流程。
不管是在直播还是在点播中,收看热门节目的节点都会很多。在节目内容磁盘缓存这个问题上,有一个比较判断过程。没有必要对所有节点收看的每一个节目都作为最新的内容存储起来,因为磁盘空间有限,新存储内容会导致以前的内容被替换掉,而且拓扑中的每个节点或者绝大多数节点都存储同一个内容同样没有必要。
具体的比较判断过程如图17所示,包括以下步骤:
步骤S1701、设定业务需要的缓存节点数量为文件级阈值,设定业务需要的缓存内容分块数量为内容分块级阈值。
步骤S1702、比较RRS中记录的已有的缓存节点是否高于文件级阈值。
当RRS中记录的已有的对直播业务或点播业务对应的数据流进行缓存的节点数量低于文件级阈值时,转入步骤S1703;
当RRS中记录的已有的对直播业务或点播业务对应的数据流进行缓存的节点数量高于文件级阈值时,转入步骤S1704。
步骤S1703、判断对直播业务或点播业务对应的数据流进行文件级缓存。
判断进行文件级缓存时,肯定对当前内容分块进行磁盘缓存。此时,节点每下载一个文件块,放在内存中,不立即写入磁盘,向SN登记,待到SN返回结果后,将内容从内存写入磁盘,默认情况下是写成功,不再进行交互;如果没有写成功,则节点向SN发出消息,SN将相应的内容分块的统计信息进行修改。
步骤S1704、不进行文件级缓存,比较SN中记录的进行缓存的内容分块数量是否高于内容分块级阈值。
节点向该内容的点播SN进行登记(以块为单位),SN返回登记结果,显示其管理的节点中拥有的该内容分块信息,节点根据SN返回的结果决定对下载的块是否缓存,具体为:
当SN中记录的进行缓存的内容分块数量低于内容分块级阈值时,转入步骤S1705;
当SN中记录的进行缓存的内容分块数量高于内容分块级阈值时,转入步骤S1706。
步骤S1705、判断对当前内容分块进行内容分块缓存
步骤S1706、判断对该数据流和当前内容快均不进行缓存。
即当文件级的比较(拓扑中该节目收看节点)超过门限值且微观的内容分块比较(该文件块在SN管理的域内的存储量)超过门限值,两个条件都成立时,不对文件及内容分块进行存储。
第五部分,如图18所示,为通过直播节点拖动,实现直播模式到点播模式切换的操作流程。
节点播放节目过程中可能会随时的切换节目或者切换模式:直播节点拖动进入点播模式、点播节点拖动或者切换节目。对于由直播模式切换入点播模式,节点从直播拓扑中退出,保持其在点播拓扑中的位置,再向点播内容的Vod_ES获取SN信息和快速数据缓冲,从SN节点获取拖动点的可连接节点集合,后续操作与进入点播的操作相同。
节点由直播模式切入点播模式,其视频流的获取模式一般来说会发生变化。这时,节点需要从直播拓扑图退出,加入点播拓扑图;或者保留在直播拓扑中的位置,避免直播拓扑结构的频繁变化,减少扰动。后种情况下,点播节点在直播拓扑中,作为中间节点转发视频流。优点是,稳定直播拓扑结构,避免退出操作;缺点是直播拓扑结构可能变得异常庞大,许多中间节点并不直接需要直播模式提供播放流,因此,我们选择将节点从直播拓扑中退出,如图11所示。一般说来,一个节点进入点播模式后,在某个时间后与直播同步的概率极小,可以不考虑某节目点播节点后续进入该节目直播模式的情况。
节点通过拖动直播点进入点播模式信令交互示意图如图18所示,从直播模式切入点播模式,该节点需要从直播拓扑中退出,并获取拖动后的播放时间点的节点信息,具体包括以下步骤:
步骤S1801、用户在直播模式下对直播点进行拖动。
步骤S1802、向RRS登记退出直播模式,将要切入点播模式和切入的播放点,这时节点通知RRS退出直播列表,进入点播列表,RRS据此更改其保存的数据,符合节点当前的实际情况。
节点向RRS发送的数据结构如表7所示:
表7直播至点播模式切换过程中节点向RRS发送的数据结构列表
 ContentID   PeerID   SwitchFlag   SwitchPoint
其中,ContentID表示节目内容ID;
PeerID表示节点ID;
SwitchFlag表示节点从直播模式切入点播模式的标志位;
SwitchPoint表示节点切入点播后的播放时间点。
步骤S1803、从RRS处返回拖动后的播放时间点的节点信息,可供建立连接时选择节点.
步骤S1804、查看本地是否拥有足够的数据,如果没有那么就节点向VOD_ES请求快速数据缓冲。
步骤S1805、VOD_ES返回数据给节点,以减小拖动延迟。
步骤S1806、节点向SN请求登记有请求数据的节点。
步骤S1807、从SN获取节点列表。
步骤S1808、与Peers进行交互,获得需要的数据。
步骤S1809、检测是否已经下载了一部分完整的内容分块,如果是那就登记该内容分块,进入步骤S1810,否则,返回步骤S1808,继续获取数据。
步骤S1810、待到某些内容分块下载完成,向SN登记信息SN根据其所管理域内该内容分块的存储情况,决定是否该块是否缓存。(如果文件级缓存Num_File<N1判断为真,则不用判断,直接存储,向SN登记)。
步骤11、SN修改其数据结构RegInfo。
步骤12、返回登记结果。
进一步需要指出的是,对于原来的直播拓扑,即将退出的节点可以有两种选择:主动发起退出请求,比如向直播ES或者其邻居节点发起退出通知,这样,自组织网络可以主动应对拓扑结构的变化;另一种方法是被动的,不主动通知其在直播拓扑中的节点,而是直接离开,由其邻居节点探测到他的离开,再采取策略,自适应。
其中,第一种退出方案的流程示意图如图19所示,与直播ES举行交互,通知其即将切入点播模式,包括以下步骤:
步骤S1901、用户选择切换模式,进入点播。
步骤S1902、节点退出时主动发出通知,通知Live_ES。
步骤S1903、Live_ES向其它节点发出通知。
步骤S1904、该网络自组织动态调整,以应对网络中的节点变化。
另一方面,除了上述的直播至点播的模式切换过程,本发明技术方案还包括其他的切换流程,具体为:
1、直播节点切换节目流程:
直播节点切换节目的过程与第一次选择节目的过程相似,只是要保持其在点播拓扑中的位置,通知相应的SN修改节点状态信息,且退出其在上一个节目中的直播拓扑。
2、点播节点切换流程:
点播节点可切换进入直播模式、切换节目进入点播或直播。
切换进入直播模式,与第一次进入直播模式相同,其在点播拓扑中的位置仍然要保持,SN修改节点的状态信息,进入新节目的直播拓扑;切换节目进入点播或者直播,与第一次进入点播和直播的交互是相同的,其在原来点播拓扑图的位置也要保持,并通知具有缓存数据登记的SN修改节点的状态。
上述的切换过程同样属于本发明的保护范围。
本发明实施例的技术方案具有以下优点,因为充分利用了直播和点播视频服务的特点,将二者进行融合,实现了直播到点播的自由切换,同时改进磁盘缓存方法,使节目资源均衡分布并增加可连接节点,并将用户节点磁盘缓存的数据用于点播,此外,***根据资源分布情况,判断是否对当前收看节目是否进行缓存,从而,在保证有足够内容用于网络应用的情况下,避免了过多重复存储内容而造成浪费,提高了网络资源利用率,改善了用户使用体验。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以可借助软件加必要的通用硬件平台的方式来实现基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。

Claims (23)

1、一种基于点对点P2P的媒体播放方法,其特征在于,包括以下步骤:
登录网络;
选择直播业务或点播业务,并接收是否对所述直播业务或点播业务对应的数据流进行缓存的判断结果;
根据所述选择结果获取所述对应的数据流,并在所述判断结果为是时,对所述数据流进行缓存;
所述缓存的对应数据流分别作为点播业务或直播业务的数据源提供给点播节点或直播节点。
2、如权利要求1所述基于P2P的媒体播放方法,其特征在于,所述登录网络之前,还包括:
由核心服务器对所述直播业务或点播业务的内容源进行统一编码的处理,并将所述处理后的内容源发送给对应的直播业务边缘服务器Live_ES或点播业务边缘服务器VOD_ES,用户通过所述直播业务边缘服务器Live_ES选择直播业务,通过所述点播业务边缘服务器VOD_ES选择点播业务。
3、如权利要求1所述基于P2P的媒体播放方法,其特征在于,所述登录网络,具体包括:
登录用户请求路由***RRS;
判断本地磁盘是否存在缓存数据;
当存在所述缓存数据时,从所述RRS获取所述缓存数据对应的点播业务信息,并根据所述点播业务信息进行所述缓存数据的信息登记。
4、如权利要求3所述基于P2P的媒体播放方法,其特征在于,所述缓存数据对应的点播业务信息,具体包括:
所述缓存数据对应的VOD_ES和超级节点SN的信息;
所述缓存数据的信息登记为向所述SN进行信息登记。
5、如权利要求2所述基于P2P的媒体播放方法,其特征在于,所述选择直播业务具体为:
获取所述直播业务对应的Live_ES信息、VOD_ES信息和直播邻居节点信息。
6、如权利要求5所述基于P2P的媒体播放方法,其特征在于,所述根据所述选择结果获取所述对应的数据流,并在所述判断结果为是时,对所述数据流进行缓存具体为:
通过所述VOD_ES获取所述直播业务对应的SN;
从所述Live_ES或所述直播邻居节点下载所述直播业务对应的数据流;
向所述SN进行所述直播业务的内容登记。
7、如权利要求1所述基于P2P的媒体播放方法,其特征在于,所述选择点播业务,并接收是否对所述点播业务对应的数据流进行缓存的判断结果,具体为:
获取所述点播业务对应的VOD_ES信息、邻近所述点播业务播放点的播放节点信息和是否缓存所述点播业务对应的数据流的信息;
8、如权利要求7所述基于P2P的媒体播放方法,其特征在于,所述根据所述选择结果获取所述对应的数据流,并在所述判断结果为是时,对所述数据流进行缓存,具体为:
通过所述VOD_ES获取所述点播业务对应的SN和数据;
向所述SN请求可连接的节点集;
从所述VOD_ES或所述节点集中的节点下载所述点播业务对应的数据流;
向所述SN进行所述点播业务的内容登记。
9、如权利要求6或8所述基于P2P的媒体播放方法,其特征在于,所述对所述直播业务或点播业务对应的数据流进行缓存的判断,具体为:
判断所述直播业务或者所述点播业务对应的数据流内容缓存节点数量是否低于设置的文件级阈值,如果低于,则对所述直播业务或者所述点播业务对应的数据流进行缓存。
10、如权利要求9所述基于P2P的媒体播放方法,其特征在于,进一步包括:
判断所述直播业务或者所述点播业务对应的数据流的内容分块的缓存节点数量是否低于设置的内容分块级阈值,如果低于,则对所述直播业务或者所述点播业务对应的数据流进行缓存。
11、如权利要求1所述基于P2P的媒体播放方法,其特征在于,还包括:
当所选择业务为直播时,拖动播放点;
在所述播放点被拖动后,向用户请求路由***RSS登记,退出所述直播模式;
从所述RRS获取点播节点信息;
通过所述VOD_ES获取所述点播业务对应的超级节点SN进行点播。
向所述SN请求可连接的节点集;
从所述VOD_ES或所述节点集中的节点下载所述点播业务对应的数据流;
向所述SN进行所述点播业务的内容登记。
12、如权利要求11所述基于P2P的媒体播放方法,其特征在于,进一步包括:
向所述RRS获取是否缓存所述点播业务对应的数据流的判断结果;
当判断结果为是时,向所述SN请求可连接的节点集;
从所述VOD_ES或所述节点集中的节点下载所述点播业务对应的数据流;
向所述SN进行所述点播业务的内容登记。
13、一种节点,其特征在于,包括:
登录模块,用于登录网络;
模式选择模块,用于选择直播业务或点播业务;
信息获取模块,用于接收所述模式选择模块所选择的直播业务或点播业务所需的网络信息和是否对所述直播业务或点播业务对应的数据流进行缓存的判断结果;
存储模块,用于根据所述模式选择模块的选择结果获取所述数据流,并根据所述信息获取模块所获取的判断结果为进行缓存时对所述数据流进行缓存。
14、如权利要求13所述节点,其特征在于,所述登录模块,具体包括:
缓存判断子模块,用于判断本地是否存在缓存数据;
登记子模块,用于当所述缓存判断子模块判断本地存在缓存数据时,获取所述缓存数据对应的点播业务信息,并根据所述点播业务信息进行所述缓存数据的信息登记。
15、如权利要求13所述节点,其特征在于,所述存储模块,进一步包括:
下载子模块,用于根据所述模式选择模块的选择结果获取所述数据流
缓存子模块,用于根据所述信息获取模块所获取的判断结果为进行缓存时对所述数据流进行缓存。
16、一种用户请求路由***RRS,其特征在于,包括:
用户管理模块,用于管理节点信息;
拓扑管理模块,用于管理***内直播和点播拓扑结构信息;
服务器管理模块,用于管理各边缘服务器的信息。
17、如权利要求16所述RRS,其特征在于,所述用户管理模块,具体包括:
判断子模块,用于判断直播业务或者点播业务对应的数据流内容缓存节点数量是否低于设置的文件级阈值。
18、如权利要求16所述RRS,其特征在于,所述拓扑管理模块,具体包括:
直播拓扑管理子模块,用于管理直播业务对应的拓扑结构信息;
点播拓扑管理子模块,用于管理点播业务对应的拓扑结构信息。
19、一种核心服务器CS,其特征在于,包括:
信息索引模块,用于对所述内容源进行元数据提取,生成索引信息。
内容分块模块,用于对所述内容源进行分块,确定编码格式;
内容分发模块,用于将所述信息索引模块生成的索引信息和所述内容分块模块分块的内容分发到相应的边缘服务器。
20、一种直播业务边缘服务器Live_ES,其特征在于,包括:
内容管理模块,用于管理本地存放的数据;
内容通信模块,用于获取本地需要的内容,并处理接收的请求;
内容分块管理模块,用于所述获取的内容的进行分块编码。
21、一种点播业务边缘服务器VOD_ES,其特征在于,包括:
内容管理模块,用于管理本地存放的数据;
内容通信模块,用于获取本地需要的内容,并处理接收的请求;
SN管理模块,用于根据所述内容管理模块所管理的数据,管理所述数据相对应的超级节点SN;
簇管理模块,用于对接入的节点进行SN选择与注销。
22、一种SN,其特征在于,包括:
节点状态记录模块,用于记录域内的各节点的状态信息。
判断模块,用于根据所述节点状态记录模块所记录的域内各节点状态信息判断直播业务或者点播业务对应的数据流的内容分块的缓存节点数量是否低于设置的内容分块级阈值。
23、一种基于P2P的媒体播放***,其特征在于,包括核心服务器CS和至少一个直播业务边缘服务器Live_ES、点播业务边缘服务器VOD_ES、用户请求路由***RRS、超级节点SN和节点:
所述CS,用于对内容源进行编码处理,并将所述处理后的内容源发送给对应的Live_ES或VOD_ES;
所述Live_ES,用于向所述CS获取直播业务所需的数据流并提供给所述节点;
所述VOD_ES,用于向所述CS获取点播业务所需的数据流并提供给所述节点;
所述RRS,用于管理网络中的所述Live_ES、VOD_ES和节点;
所述SN,用于管理域内各节点和内容;
所述节点,用于获取、传输和存储所述直播业务或点播业务所对应的数据流。
CN2008100978926A 2008-05-20 2008-05-20 一种基于p2p的媒体播放方法、装置和*** Expired - Fee Related CN101588468B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN2008100978926A CN101588468B (zh) 2008-05-20 2008-05-20 一种基于p2p的媒体播放方法、装置和***
PCT/CN2009/070375 WO2009140868A1 (zh) 2008-05-20 2009-02-06 一种基于p2p的媒体播放方法、装置和***
EP09749411.6A EP2288085B1 (en) 2008-05-20 2009-02-06 P2p based method, device and system for playing media
US12/950,778 US9497035B2 (en) 2008-05-20 2010-11-19 Method, device, and system for playing media based on P2P

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008100978926A CN101588468B (zh) 2008-05-20 2008-05-20 一种基于p2p的媒体播放方法、装置和***

Publications (2)

Publication Number Publication Date
CN101588468A true CN101588468A (zh) 2009-11-25
CN101588468B CN101588468B (zh) 2013-08-07

Family

ID=41339753

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008100978926A Expired - Fee Related CN101588468B (zh) 2008-05-20 2008-05-20 一种基于p2p的媒体播放方法、装置和***

Country Status (4)

Country Link
US (1) US9497035B2 (zh)
EP (1) EP2288085B1 (zh)
CN (1) CN101588468B (zh)
WO (1) WO2009140868A1 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102307218A (zh) * 2011-03-15 2012-01-04 *** 多媒体电话p2p点播的流媒体数据请求传输方法
CN103051979A (zh) * 2011-10-13 2013-04-17 中兴通讯股份有限公司 流媒体处理方法及***
CN103096177A (zh) * 2012-10-11 2013-05-08 北京邮电大学 一种视频点播方法、***、代理节点及媒体服务器
CN103167358A (zh) * 2011-12-09 2013-06-19 深圳市快播科技有限公司 一种机顶盒、媒体播放处理及媒体恢复播放方法
CN102118405B (zh) * 2009-12-31 2014-07-30 比亚迪股份有限公司 一种应用于实时视频数据传输的p2p网络***
CN104298467A (zh) * 2013-07-17 2015-01-21 合一网络技术(北京)有限公司 一种p2p缓存文件管理方法和装置
CN104394221A (zh) * 2014-11-28 2015-03-04 合一网络技术(北京)有限公司 利用边缘服务节点为流媒体应用进行加速处理方法和***
CN107277561A (zh) * 2016-04-08 2017-10-20 北京优朋普乐科技有限公司 内容分发网络

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120297405A1 (en) * 2011-05-17 2012-11-22 Splendorstream, Llc Efficiently distributing video content using a combination of a peer-to-peer network and a content distribution network
US9461759B2 (en) 2011-08-30 2016-10-04 Iheartmedia Management Services, Inc. Identification of changed broadcast media items
CN102917028B (zh) * 2012-09-26 2016-02-03 深圳好视网络科技有限公司 网络视频直播的缓存方法及装置
CN103747285A (zh) * 2013-12-27 2014-04-23 乐视网信息技术(北京)股份有限公司 一种节目播放方法和服务端、客户端
CN105100887A (zh) * 2014-05-15 2015-11-25 中兴通讯股份有限公司 节目播放控制方法及装置
CN105100956A (zh) * 2015-08-21 2015-11-25 深圳中兴网信科技有限公司 数据获取方法与数据获取***
CN111083094B (zh) * 2018-10-22 2022-06-07 ***通信有限公司研究院 一种流媒体的码流切换方法及装置、计算机存储介质
CN110366047B (zh) * 2019-06-04 2022-02-11 北京奇艺世纪科技有限公司 一种视频共享方法和装置及计算机可读存储介质
CN115022110B (zh) * 2022-08-08 2022-12-27 广州市千钧网络科技有限公司 消息分发方法、可读介质以及电子设备

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5945987A (en) * 1995-05-05 1999-08-31 Microsoft Corporation Interactive entertainment network system and method for providing short sets of preview video trailers
US6314110B1 (en) * 1998-03-06 2001-11-06 Cisco Technology, Inc. Method and apparatus for distributed bandwidth allocation for a bi-directional ring media with spatial and local reuse
US20020124262A1 (en) * 1999-12-01 2002-09-05 Andrea Basso Network based replay portal
US7107606B2 (en) * 2000-08-30 2006-09-12 The Chinese University Of Hong Kong System and method for highly scalable video on demand
JP4311547B2 (ja) * 2001-10-24 2009-08-12 ザ ファンタスティック アイピー ゲゼルシャフト ミット ベシュレンクテル ハフツング コンテンツをマルチキャストする方法
KR20030056701A (ko) * 2001-12-28 2003-07-04 한국전자통신연구원 P2p 방식을 이용한 멀티미디어 스트리밍 장치 및 방법
WO2003096669A2 (en) * 2002-05-10 2003-11-20 Reisman Richard R Method and apparatus for browsing using multiple coordinated device
AU2005232349B2 (en) * 2004-04-16 2010-03-25 Etiip Holdings Inc Method and apparatus for delivering consumer entertainment services accessed over an IP network
CN1314250C (zh) * 2004-10-29 2007-05-02 清华大学 一种鲁棒的基于点对点的流调度方法
US7920572B2 (en) * 2005-09-20 2011-04-05 Cisco Technology, Inc. Modifying operation of peer-to-peer networks based on integrating network routing information
US20070130597A1 (en) * 2005-12-02 2007-06-07 Alcatel Network based instant replay and time shifted playback
US20070183342A1 (en) * 2006-02-06 2007-08-09 Mediazone.Com, Inc. Peer-to-peer broadcast management system
CN100440784C (zh) * 2006-03-03 2008-12-03 华为技术有限公司 数字用户线接入复用器和流媒体数据传输***及方法
US8707375B2 (en) * 2006-04-05 2014-04-22 At&T Intellectual Property I, L.P. Peer-to-peer video on demand techniques
US8209729B2 (en) * 2006-04-20 2012-06-26 At&T Intellectual Property I, Lp Rules-based content management
US8028319B2 (en) * 2006-05-31 2011-09-27 At&T Intellectual Property I, L.P. Passive video caching for edge aggregation devices
WO2007148300A2 (en) * 2006-06-20 2007-12-27 Gal Zuckerman Methods and systems for push-to-storage
CN100505696C (zh) * 2006-07-19 2009-06-24 华为技术有限公司 在媒体分发网络中实现视频直播的***、方法和客户端
CN100473023C (zh) * 2006-12-12 2009-03-25 中兴通讯股份有限公司 Iptv***冗余数据的清除方法
CN101005606B (zh) * 2006-12-31 2012-07-04 华为技术有限公司 一种减少媒体播放延时的方法和装置
US8832290B2 (en) * 2007-02-23 2014-09-09 Microsoft Corporation Smart pre-fetching for peer assisted on-demand media
US8244884B2 (en) * 2007-04-11 2012-08-14 The Directv Group, Inc. Method and apparatus for file sharing between a group of user devices with crucial portions sent via satellite and non-crucial portions sent using a peer-to-peer network
CN100484069C (zh) * 2007-05-21 2009-04-29 华为技术有限公司 一种文件数据分发方法及相关设备
CN100461740C (zh) * 2007-06-05 2009-02-11 华为技术有限公司 一种客户端节点网络拓扑构造方法及流媒体分发***
CN101141490B (zh) 2007-08-03 2011-11-23 中兴通讯股份有限公司 网元地址获取方法
US7975282B2 (en) * 2007-11-01 2011-07-05 Sharp Laboratories Of America, Inc. Distributed cache algorithms and system for time-shifted, and live, peer-to-peer video streaming
US7979419B2 (en) * 2007-11-01 2011-07-12 Sharp Laboratories Of America, Inc. Distributed search methods for time-shifted and live peer-to-peer video streaming
CN101179705B (zh) * 2007-11-29 2011-04-20 中兴通讯股份有限公司 伙伴资源节点选择方法和装置
EP2073503A1 (en) * 2007-12-17 2009-06-24 Alcatel Lucent Method for distributing content data packages originated by users of a super peer-to-peer network

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102118405B (zh) * 2009-12-31 2014-07-30 比亚迪股份有限公司 一种应用于实时视频数据传输的p2p网络***
CN102307218B (zh) * 2011-03-15 2014-04-16 *** 多媒体电话p2p点播的流媒体数据请求传输方法
CN102307218A (zh) * 2011-03-15 2012-01-04 *** 多媒体电话p2p点播的流媒体数据请求传输方法
CN103051979A (zh) * 2011-10-13 2013-04-17 中兴通讯股份有限公司 流媒体处理方法及***
CN103167358A (zh) * 2011-12-09 2013-06-19 深圳市快播科技有限公司 一种机顶盒、媒体播放处理及媒体恢复播放方法
CN103167358B (zh) * 2011-12-09 2017-01-11 深圳市快播科技有限公司 一种机顶盒、媒体播放处理及媒体恢复播放方法
CN103096177B (zh) * 2012-10-11 2015-11-18 北京邮电大学 一种视频点播方法、***、代理节点及媒体服务器
CN103096177A (zh) * 2012-10-11 2013-05-08 北京邮电大学 一种视频点播方法、***、代理节点及媒体服务器
CN104298467A (zh) * 2013-07-17 2015-01-21 合一网络技术(北京)有限公司 一种p2p缓存文件管理方法和装置
CN104298467B (zh) * 2013-07-17 2018-12-14 合一网络技术(北京)有限公司 一种p2p缓存文件管理方法和装置
CN104394221B (zh) * 2014-11-28 2015-12-30 合一网络技术(北京)有限公司 利用边缘服务节点为流媒体应用进行加速处理的方法和***
CN104394221A (zh) * 2014-11-28 2015-03-04 合一网络技术(北京)有限公司 利用边缘服务节点为流媒体应用进行加速处理方法和***
CN107277561A (zh) * 2016-04-08 2017-10-20 北京优朋普乐科技有限公司 内容分发网络

Also Published As

Publication number Publication date
US9497035B2 (en) 2016-11-15
EP2288085A4 (en) 2011-06-22
EP2288085B1 (en) 2015-04-29
EP2288085A1 (en) 2011-02-23
CN101588468B (zh) 2013-08-07
WO2009140868A1 (zh) 2009-11-26
US20110067074A1 (en) 2011-03-17

Similar Documents

Publication Publication Date Title
CN101588468B (zh) 一种基于p2p的媒体播放方法、装置和***
USRE49943E1 (en) System and method for a context layer switch
CN102404378B (zh) 一种流媒体分发传输网络***
CN100525288C (zh) 网络中大有效负载分布的方法和装置
JP5505009B2 (ja) 通信端末装置、コンピュータプログラムおよびコンテンツ検索方法
CN100558042C (zh) 一种基于超级节点的p2p直播方法
CN101355468B (zh) 一种p2p流媒体信息发布的方法
CN102195788B (zh) 应用层组播***及流媒体数据处理方法
CN101472166B (zh) 一种内容缓存、查询方法及点对点媒体传输***
CN101567796B (zh) 一种内容分片的多媒体网络及其业务方法
CN101677328A (zh) 一种基于内容分片的多媒体分发***和方法
CN102843420A (zh) 基于模糊划分的社交网络数据分发***
CN103096177B (zh) 一种视频点播方法、***、代理节点及媒体服务器
Naeem et al. Enabling the content dissemination through caching in the state-of-the-art sustainable information and communication technologies
CN101217565B (zh) 一种对等网络视频共享***中分类检索的网络组织方法
Zhang et al. An SDN-based caching decision policy for video caching in information-centric networking
CN107682416A (zh) 基于播存网络的雾计算架构内容协同分发方法及应用***
CN102055808A (zh) 一种降低p2p直播***中播放延迟的方法与***
Tuncer et al. Scalable cache management for ISP-operated content delivery services
Alahmri et al. Efficient pooling and collaborative cache management for NDN/IoT networks
CN102740165A (zh) 对等流媒体直播***及其中的数据传输方法
Sarkar et al. Content delivery networks: Insights and recent advancement
Li et al. A community-oriented route coordination using information centric networking approach
CN103188278A (zh) 内容数据分发的方法和***
Mykoniati et al. Scalable peer-to-peer streaming for live entertainment content

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130807

Termination date: 20190520

CF01 Termination of patent right due to non-payment of annual fee